equal
deleted
inserted
replaced
195 if (length & 0x03) { // incorrect alignment for 32 bit tables |
195 if (length & 0x03) { // incorrect alignment for 32 bit tables |
196 success = LE_MEMORY_ALLOCATION_ERROR; // as good a choice as any |
196 success = LE_MEMORY_ALLOCATION_ERROR; // as good a choice as any |
197 return; |
197 return; |
198 } |
198 } |
199 subtableHeader.addOffset(length, success); // Don't addOffset for the last entry. |
199 subtableHeader.addOffset(length, success); // Don't addOffset for the last entry. |
|
200 if (LE_FAILURE(success)) break; |
200 } |
201 } |
201 le_uint32 coverage = SWAPL(subtableHeader->coverage); |
202 le_uint32 coverage = SWAPL(subtableHeader->coverage); |
202 FeatureFlags subtableFeatures = SWAPL(subtableHeader->subtableFeatures); |
203 FeatureFlags subtableFeatures = SWAPL(subtableHeader->subtableFeatures); |
203 // should check coverage more carefully... |
204 // should check coverage more carefully... |
204 if (((coverage & scfIgnoreVt2) || !(coverage & scfVertical2)) && (subtableFeatures & flag) != 0) { |
205 if (((coverage & scfIgnoreVt2) || !(coverage & scfVertical2)) && (subtableFeatures & flag) != 0) { |
210 |
211 |
211 void MorphSubtableHeader2::process(const LEReferenceTo<MorphSubtableHeader2> &base, LEGlyphStorage &glyphStorage, LEErrorCode &success) const |
212 void MorphSubtableHeader2::process(const LEReferenceTo<MorphSubtableHeader2> &base, LEGlyphStorage &glyphStorage, LEErrorCode &success) const |
212 { |
213 { |
213 SubtableProcessor2 *processor = NULL; |
214 SubtableProcessor2 *processor = NULL; |
214 |
215 |
|
216 if (LE_FAILURE(success)) return; |
|
217 |
215 switch (SWAPL(coverage) & scfTypeMask2) |
218 switch (SWAPL(coverage) & scfTypeMask2) |
216 { |
219 { |
217 case mstIndicRearrangement: |
220 case mstIndicRearrangement: |
218 processor = new IndicRearrangementProcessor2(base, success); |
221 processor = new IndicRearrangementProcessor2(base, success); |
219 break; |
222 break; |