src/hb-open-file-private.hh | 6 +- src/hb-open-type-private.hh | 47 ++++++++++++----------- src/hb-ot-layout-common-private.hh | 6 +- src/hb-ot-layout-gdef-private.hh | 24 ++++++----- src/hb-ot-layout-gpos-private.hh | 71 ++++++++++++++++++++++------------- src/hb-ot-layout-gsub-private.hh | 28 ++++++++----- src/hb-ot-layout-gsubgpos-private.hh | 37 ++++++++++-------- src/main.cc | 6 ++ 8 files changed, 136 insertions(+), 89 deletions(-)
New commits: commit bb029af943faa9905e652d58856998687e60c31d Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 15:28:52 2010 -0400 Remove SANITIZE_THIS diff --git a/src/hb-open-file-private.hh b/src/hb-open-file-private.hh index e09bd80..547cef0 100644 --- a/src/hb-open-file-private.hh +++ b/src/hb-open-file-private.hh @@ -126,7 +126,7 @@ struct TTCHeaderVersion1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (table); + return SANITIZE_WITH_BASE (this, table); } private: diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index 82f92c1..75a539b 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -229,8 +229,7 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF, #define SANITIZE(X) likely ((X).sanitize (SANITIZE_ARG)) -#define SANITIZE_THIS(X) likely ((X).sanitize (SANITIZE_ARG, CharP(this))) -#define SANITIZE_WITH_BASE(B,X) likely ((X).sanitize (SANITIZE_ARG, (B))) +#define SANITIZE_WITH_BASE(B,X) likely ((X).sanitize (SANITIZE_ARG, CharP(B))) #define SANITIZE_SELF() SANITIZE_MEM(this, sizeof (*this)) diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index 1b3e278..2c1c988 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -203,8 +203,8 @@ struct Script inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (defaultLangSys) - && SANITIZE_THIS (langSys); + return SANITIZE_WITH_BASE (this, defaultLangSys) + && SANITIZE_WITH_BASE (this, langSys); } private: diff --git a/src/hb-ot-layout-gdef-private.hh b/src/hb-ot-layout-gdef-private.hh index e5d092e..da49fac 100644 --- a/src/hb-ot-layout-gdef-private.hh +++ b/src/hb-ot-layout-gdef-private.hh @@ -69,8 +69,8 @@ struct AttachList inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (attachPoint); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, attachPoint); } private: @@ -148,7 +148,8 @@ struct CaretValueFormat3 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_SELF () && SANITIZE_THIS (deviceTable); + return SANITIZE_SELF () + && SANITIZE_WITH_BASE (this, deviceTable); } private: @@ -213,7 +214,7 @@ struct LigGlyph inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (carets); + return SANITIZE_WITH_BASE (this, carets); } private: @@ -245,8 +246,8 @@ struct LigCaretList inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (ligGlyph); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, ligGlyph); } private: @@ -267,7 +268,7 @@ struct MarkGlyphSetsFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage); + return SANITIZE_WITH_BASE (this, coverage); } private: @@ -350,10 +351,12 @@ struct GDEF inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE (version) && likely (version.major == 1) && - SANITIZE_THIS (glyphClassDef) && SANITIZE_THIS (attachList) && - SANITIZE_THIS (ligCaretList) && SANITIZE_THIS (markAttachClassDef) && - (version < 0x00010002 || SANITIZE_THIS (markGlyphSetsDef[0])); + return SANITIZE (version) && likely (version.major == 1) + && SANITIZE_WITH_BASE (this, glyphClassDef) + && SANITIZE_WITH_BASE (this, attachList) + && SANITIZE_WITH_BASE (this, ligCaretList) + && SANITIZE_WITH_BASE (this, markAttachClassDef) + && (version < 0x00010002 || SANITIZE_WITH_BASE (this, markGlyphSetsDef[0])); } private: diff --git a/src/hb-ot-layout-gpos-private.hh b/src/hb-ot-layout-gpos-private.hh index 36345cb..5f38751 100644 --- a/src/hb-ot-layout-gpos-private.hh +++ b/src/hb-ot-layout-gpos-private.hh @@ -271,8 +271,8 @@ struct AnchorFormat3 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); return SANITIZE_SELF () - && SANITIZE_THIS (xDeviceTable) - && SANITIZE_THIS (yDeviceTable); + && SANITIZE_WITH_BASE (this, xDeviceTable) + && SANITIZE_WITH_BASE (this, yDeviceTable); } private: @@ -339,7 +339,7 @@ struct AnchorMatrix unsigned int count = rows * cols; if (!SANITIZE_ARRAY (matrix, matrix[0].get_size (), count)) return false; for (unsigned int i = 0; i < count; i++) - if (!SANITIZE_THIS (matrix[i])) return false; + if (!SANITIZE_WITH_BASE (this, matrix[i])) return false; return true; } @@ -404,7 +404,7 @@ struct MarkArray inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (markRecord); + return SANITIZE_WITH_BASE (this, markRecord); } private: @@ -436,8 +436,9 @@ struct SinglePosFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_SELF () && SANITIZE_THIS (coverage) && - valueFormat.sanitize_value (SANITIZE_ARG, CharP(this), values); + return SANITIZE_SELF () + && SANITIZE_WITH_BASE (this, coverage) + && valueFormat.sanitize_value (SANITIZE_ARG, CharP(this), values); } private: @@ -478,8 +479,9 @@ struct SinglePosFormat2 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_SELF () && SANITIZE_THIS (coverage) && - valueFormat.sanitize_values (SANITIZE_ARG, CharP(this), values, valueCount); + return SANITIZE_SELF () + && SANITIZE_WITH_BASE (this, coverage) + && valueFormat.sanitize_values (SANITIZE_ARG, CharP(this), values, valueCount); } private: @@ -616,8 +618,9 @@ struct PairPosFormat1 unsigned int len1 = valueFormat1.get_len (); unsigned int len2 = valueFormat2.get_len (); - if (!(SANITIZE_SELF () && SANITIZE_THIS (coverage) && - likely (pairSet.sanitize (SANITIZE_ARG, CharP(this), len1 + len2)))) return false; + if (!(SANITIZE_SELF () + && SANITIZE_WITH_BASE (this, coverage) + && likely (pairSet.sanitize (SANITIZE_ARG, CharP(this), len1 + len2)))) return false; if (!(valueFormat1.has_device () || valueFormat2.has_device ())) return true; @@ -700,8 +703,10 @@ struct PairPosFormat2 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - if (!(SANITIZE_SELF () && SANITIZE_THIS (coverage) && - SANITIZE_THIS (classDef1) && SANITIZE_THIS (classDef2))) return false; + if (!(SANITIZE_SELF () + && SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, classDef1) + && SANITIZE_WITH_BASE (this, classDef2))) return false; unsigned int len1 = valueFormat1.get_len (); unsigned int len2 = valueFormat2.get_len (); @@ -979,8 +984,8 @@ struct CursivePosFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (entryExitRecord); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, entryExitRecord); } private: @@ -1068,9 +1073,9 @@ struct MarkBasePosFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); return SANITIZE_SELF () - && SANITIZE_THIS (markCoverage) - && SANITIZE_THIS (baseCoverage) - && SANITIZE_THIS (markArray) + && SANITIZE_WITH_BASE (this, markCoverage) + && SANITIZE_WITH_BASE (this, baseCoverage) + && SANITIZE_WITH_BASE (this, markArray) && likely (baseArray.sanitize (SANITIZE_ARG, CharP(this), classCount)); } @@ -1192,9 +1197,9 @@ struct MarkLigPosFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); return SANITIZE_SELF () - && SANITIZE_THIS (markCoverage) - && SANITIZE_THIS (ligatureCoverage) - && SANITIZE_THIS (markArray) + && SANITIZE_WITH_BASE (this, markCoverage) + && SANITIZE_WITH_BASE (this, ligatureCoverage) + && SANITIZE_WITH_BASE (this, markArray) && likely (ligatureArray.sanitize (SANITIZE_ARG, CharP(this), classCount)); } @@ -1295,9 +1300,9 @@ struct MarkMarkPosFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); return SANITIZE_SELF () - && SANITIZE_THIS (mark1Coverage) - && SANITIZE_THIS (mark2Coverage) - && SANITIZE_THIS (mark1Array) + && SANITIZE_WITH_BASE (this, mark1Coverage) + && SANITIZE_WITH_BASE (this, mark2Coverage) + && SANITIZE_WITH_BASE (this, mark1Array) && likely (mark2Array.sanitize (SANITIZE_ARG, CharP(this), classCount)); } @@ -1535,7 +1540,7 @@ struct PosLookup : Lookup TRACE_SANITIZE (); if (unlikely (!Lookup::sanitize (SANITIZE_ARG))) return false; OffsetArrayOf<PosLookupSubTable> &list = CastR<OffsetArrayOf<PosLookupSubTable> > (subTable); - return SANITIZE_THIS (list); + return SANITIZE_WITH_BASE (this, list); } }; @@ -1563,7 +1568,7 @@ struct GPOS : GSUBGPOS TRACE_SANITIZE (); if (unlikely (!GSUBGPOS::sanitize (SANITIZE_ARG))) return false; OffsetTo<PosLookupList> &list = CastR<OffsetTo<PosLookupList> > (lookupList); - return SANITIZE_THIS (list); + return SANITIZE_WITH_BASE (this, list); } }; ASSERT_SIZE (GPOS, 10); diff --git a/src/hb-ot-layout-gsub-private.hh b/src/hb-ot-layout-gsub-private.hh index 170ec96..3632c1f 100644 --- a/src/hb-ot-layout-gsub-private.hh +++ b/src/hb-ot-layout-gsub-private.hh @@ -56,7 +56,8 @@ struct SingleSubstFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) && SANITIZE (deltaGlyphID); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE (deltaGlyphID); } private: @@ -98,7 +99,8 @@ struct SingleSubstFormat2 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) && SANITIZE (substitute); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE (substitute); } private: @@ -208,8 +210,8 @@ struct MultipleSubstFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (sequence); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, sequence); } private: @@ -304,8 +306,8 @@ struct AlternateSubstFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (alternateSet); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, alternateSet); } private: @@ -456,7 +458,7 @@ struct LigatureSet public: inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (ligature); + return SANITIZE_WITH_BASE (this, ligature); } private: @@ -488,8 +490,8 @@ struct LigatureSubstFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (ligatureSet); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, ligatureSet); } private: @@ -619,10 +621,11 @@ struct ReverseChainSingleSubstFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - if (!(SANITIZE_THIS (coverage) && SANITIZE_THIS (backtrack))) + if (!(SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, backtrack))) return false; OffsetArrayOf<Coverage> &lookahead = StructAfter<OffsetArrayOf<Coverage> > (backtrack); - if (!SANITIZE_THIS (lookahead)) + if (!SANITIZE_WITH_BASE (this, lookahead)) return false; ArrayOf<GlyphID> &substitute = StructAfter<ArrayOf<GlyphID> > (lookahead); return SANITIZE (substitute); @@ -848,7 +851,7 @@ struct SubstLookup : Lookup TRACE_SANITIZE (); if (unlikely (!Lookup::sanitize (SANITIZE_ARG))) return false; OffsetArrayOf<SubstLookupSubTable> &list = CastR<OffsetArrayOf<SubstLookupSubTable> > (subTable); - return SANITIZE_THIS (list); + return SANITIZE_WITH_BASE (this, list); } }; @@ -877,7 +880,7 @@ struct GSUB : GSUBGPOS TRACE_SANITIZE (); if (unlikely (!GSUBGPOS::sanitize (SANITIZE_ARG))) return false; OffsetTo<SubstLookupList> &list = CastR<OffsetTo<SubstLookupList> > (lookupList); - return SANITIZE_THIS (list); + return SANITIZE_WITH_BASE (this, list); } }; ASSERT_SIZE (GSUB, 10); diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index 63239e5..c3a622b 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh @@ -326,7 +326,7 @@ struct RuleSet inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (rule); + return SANITIZE_WITH_BASE (this, rule); } private: @@ -358,8 +358,8 @@ struct ContextFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (ruleSet); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, ruleSet); } private: @@ -401,9 +401,9 @@ struct ContextFormat2 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (classDef) - && SANITIZE_THIS (ruleSet); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, classDef) + && SANITIZE_WITH_BASE (this, ruleSet); } private: @@ -450,7 +450,7 @@ struct ContextFormat3 unsigned int count = glyphCount; if (!SANITIZE_ARRAY (coverage, OffsetTo<Coverage>::get_size (), glyphCount)) return false; for (unsigned int i = 0; i < count; i++) - if (!SANITIZE_THIS (coverage[i])) return false; + if (!SANITIZE_WITH_BASE (this, coverage[i])) return false; LookupRecord &lookupRecord = StructAtOffset<LookupRecord> (coverage, OffsetTo<Coverage>::get_size () * glyphCount); return SANITIZE_ARRAY (&lookupRecord, LookupRecord::get_size (), lookupCount); } @@ -613,7 +613,7 @@ struct ChainRuleSet inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (rule); + return SANITIZE_WITH_BASE (this, rule); } private: @@ -645,8 +645,8 @@ struct ChainContextFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (ruleSet); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, ruleSet); } private: @@ -692,11 +692,11 @@ struct ChainContextFormat2 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS (coverage) - && SANITIZE_THIS (backtrackClassDef) - && SANITIZE_THIS (inputClassDef) - && SANITIZE_THIS (lookaheadClassDef) - && SANITIZE_THIS (ruleSet); + return SANITIZE_WITH_BASE (this, coverage) + && SANITIZE_WITH_BASE (this, backtrackClassDef) + && SANITIZE_WITH_BASE (this, inputClassDef) + && SANITIZE_WITH_BASE (this, lookaheadClassDef) + && SANITIZE_WITH_BASE (this, ruleSet); } private: @@ -754,11 +754,11 @@ struct ChainContextFormat3 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - if (!SANITIZE_THIS (backtrack)) return false; + if (!SANITIZE_WITH_BASE (this, backtrack)) return false; OffsetArrayOf<Coverage> &input = StructAfter<OffsetArrayOf<Coverage> > (backtrack); - if (!SANITIZE_THIS (input)) return false; + if (!SANITIZE_WITH_BASE (this, input)) return false; OffsetArrayOf<Coverage> &lookahead = StructAfter<OffsetArrayOf<Coverage> > (input); - if (!SANITIZE_THIS (lookahead)) return false; + if (!SANITIZE_WITH_BASE (this, lookahead)) return false; ArrayOf<LookupRecord> &lookup = StructAfter<ArrayOf<LookupRecord> > (lookahead); return SANITIZE (lookup); } @@ -918,9 +918,9 @@ struct GSUBGPOS inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); return SANITIZE (version) && likely (version.major == 1) - && SANITIZE_THIS (scriptList) - && SANITIZE_THIS (featureList) - && SANITIZE_THIS (lookupList); + && SANITIZE_WITH_BASE (this, scriptList) + && SANITIZE_WITH_BASE (this, featureList) + && SANITIZE_WITH_BASE (this, lookupList); } protected: commit 2226fc93d1427b8830bfb892fe1b25b488ea36dc Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 15:12:17 2010 -0400 Rename SANITIZE_BASE to SANITIZE_WITH_BASE diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index bb1b930..82f92c1 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -230,7 +230,7 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF, #define SANITIZE(X) likely ((X).sanitize (SANITIZE_ARG)) #define SANITIZE_THIS(X) likely ((X).sanitize (SANITIZE_ARG, CharP(this))) -#define SANITIZE_BASE(X,B) likely ((X).sanitize (SANITIZE_ARG, B)) +#define SANITIZE_WITH_BASE(B,X) likely ((X).sanitize (SANITIZE_ARG, (B))) #define SANITIZE_SELF() SANITIZE_MEM(this, sizeof (*this)) @@ -443,21 +443,24 @@ struct GenericOffsetTo : OffsetType if (!SANITIZE_SELF ()) return false; unsigned int offset = *this; if (unlikely (!offset)) return true; - return SANITIZE (StructAtOffset<Type> (*CharP(base), offset)) || neuter (SANITIZE_ARG); + Type &obj = StructAtOffset<Type> (*CharP(base), offset); + return likely (obj.sanitize (SANITIZE_ARG)) || neuter (SANITIZE_ARG); } inline bool sanitize (SANITIZE_ARG_DEF, void *base, void *base2) { TRACE_SANITIZE (); if (!SANITIZE_SELF ()) return false; unsigned int offset = *this; if (unlikely (!offset)) return true; - return SANITIZE_BASE (StructAtOffset<Type> (*CharP(base), offset), base2) || neuter (SANITIZE_ARG); + Type &obj = StructAtOffset<Type> (*CharP(base), offset); + return likely (obj.sanitize (SANITIZE_ARG, base2)) || neuter (SANITIZE_ARG); } inline bool sanitize (SANITIZE_ARG_DEF, void *base, unsigned int user_data) { TRACE_SANITIZE (); if (!SANITIZE_SELF ()) return false; unsigned int offset = *this; if (unlikely (!offset)) return true; - return SANITIZE_BASE (StructAtOffset<Type> (*CharP(base), offset), user_data) || neuter (SANITIZE_ARG); + Type &obj = StructAtOffset<Type> (*CharP(base), offset); + return likely (obj.sanitize (SANITIZE_ARG, user_data)) || neuter (SANITIZE_ARG); } private: diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index 7ecc5bd..1b3e278 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -55,7 +55,8 @@ struct Record inline bool sanitize (SANITIZE_ARG_DEF, void *base) { TRACE_SANITIZE (); - return SANITIZE_SELF () && SANITIZE_BASE (offset, base); + return SANITIZE_SELF () + && SANITIZE_WITH_BASE (base, offset); } Tag tag; /* 4-byte Tag identifier */ diff --git a/src/hb-ot-layout-gpos-private.hh b/src/hb-ot-layout-gpos-private.hh index 4fce10a..36345cb 100644 --- a/src/hb-ot-layout-gpos-private.hh +++ b/src/hb-ot-layout-gpos-private.hh @@ -137,10 +137,10 @@ struct ValueFormat : USHORT if (format & xAdvance) values++; if (format & yAdvance) values++; - if ((format & xPlaDevice) && !SANITIZE_BASE (*(OffsetTo<Device>*)values++, base)) return false; - if ((format & yPlaDevice) && !SANITIZE_BASE (*(OffsetTo<Device>*)values++, base)) return false; - if ((format & xAdvDevice) && !SANITIZE_BASE (*(OffsetTo<Device>*)values++, base)) return false; - if ((format & yAdvDevice) && !SANITIZE_BASE (*(OffsetTo<Device>*)values++, base)) return false; + if ((format & xPlaDevice) && !SANITIZE_WITH_BASE (base, *(OffsetTo<Device>*)values++)) return false; + if ((format & yPlaDevice) && !SANITIZE_WITH_BASE (base, *(OffsetTo<Device>*)values++)) return false; + if ((format & xAdvDevice) && !SANITIZE_WITH_BASE (base, *(OffsetTo<Device>*)values++)) return false; + if ((format & yAdvDevice) && !SANITIZE_WITH_BASE (base, *(OffsetTo<Device>*)values++)) return false; return true; } @@ -360,7 +360,8 @@ struct MarkRecord inline bool sanitize (SANITIZE_ARG_DEF, void *base) { TRACE_SANITIZE (); - return SANITIZE_SELF () && SANITIZE_BASE (markAnchor, base); + return SANITIZE_SELF () + && SANITIZE_WITH_BASE (base, markAnchor); } private: @@ -781,8 +782,8 @@ struct EntryExitRecord inline bool sanitize (SANITIZE_ARG_DEF, void *base) { TRACE_SANITIZE (); - return SANITIZE_BASE (entryAnchor, base) - && SANITIZE_BASE (exitAnchor, base); + return SANITIZE_WITH_BASE (base, entryAnchor) + && SANITIZE_WITH_BASE (base, exitAnchor); } OffsetTo<Anchor> commit 89da1346ec3a8dec8a368df46d61ca75356e22fa Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 15:01:45 2010 -0400 Remove SANITIZE_OBJ diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index 7f442d0..bb1b930 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -232,8 +232,7 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF, #define SANITIZE_THIS(X) likely ((X).sanitize (SANITIZE_ARG, CharP(this))) #define SANITIZE_BASE(X,B) likely ((X).sanitize (SANITIZE_ARG, B)) -#define SANITIZE_SELF() SANITIZE_OBJ (*this) -#define SANITIZE_OBJ(X) SANITIZE_MEM(&(X), sizeof (X)) +#define SANITIZE_SELF() SANITIZE_MEM(this, sizeof (*this)) #define SANITIZE_MEM(B,L) likely (_hb_sanitize_check (SANITIZE_ARG, CharP(B), (L))) commit 4d4cce96266b777a01cec03e8766dc8c0b159351 Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 14:57:55 2010 -0400 Remove SANITIZE_THIS2 diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index da2f0cd..7f442d0 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -230,8 +230,6 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF, #define SANITIZE(X) likely ((X).sanitize (SANITIZE_ARG)) #define SANITIZE_THIS(X) likely ((X).sanitize (SANITIZE_ARG, CharP(this))) -#define SANITIZE_THIS2(X,Y) (SANITIZE_THIS (X) && SANITIZE_THIS (Y)) - #define SANITIZE_BASE(X,B) likely ((X).sanitize (SANITIZE_ARG, B)) #define SANITIZE_SELF() SANITIZE_OBJ (*this) diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index 94bbff3..7ecc5bd 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -202,7 +202,8 @@ struct Script inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (defaultLangSys, langSys); + return SANITIZE_THIS (defaultLangSys) + && SANITIZE_THIS (langSys); } private: diff --git a/src/hb-ot-layout-gdef-private.hh b/src/hb-ot-layout-gdef-private.hh index c1e021b..e5d092e 100644 --- a/src/hb-ot-layout-gdef-private.hh +++ b/src/hb-ot-layout-gdef-private.hh @@ -69,7 +69,8 @@ struct AttachList inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (coverage, attachPoint); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (attachPoint); } private: @@ -244,7 +245,8 @@ struct LigCaretList inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (coverage, ligGlyph); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (ligGlyph); } private: @@ -349,8 +351,8 @@ struct GDEF inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); return SANITIZE (version) && likely (version.major == 1) && - SANITIZE_THIS2 (glyphClassDef, attachList) && - SANITIZE_THIS2 (ligCaretList, markAttachClassDef) && + SANITIZE_THIS (glyphClassDef) && SANITIZE_THIS (attachList) && + SANITIZE_THIS (ligCaretList) && SANITIZE_THIS (markAttachClassDef) && (version < 0x00010002 || SANITIZE_THIS (markGlyphSetsDef[0])); } diff --git a/src/hb-ot-layout-gpos-private.hh b/src/hb-ot-layout-gpos-private.hh index 6504077..4fce10a 100644 --- a/src/hb-ot-layout-gpos-private.hh +++ b/src/hb-ot-layout-gpos-private.hh @@ -270,7 +270,9 @@ struct AnchorFormat3 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_SELF () && SANITIZE_THIS2 (xDeviceTable, yDeviceTable); + return SANITIZE_SELF () + && SANITIZE_THIS (xDeviceTable) + && SANITIZE_THIS (yDeviceTable); } private: @@ -698,7 +700,7 @@ struct PairPosFormat2 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); if (!(SANITIZE_SELF () && SANITIZE_THIS (coverage) && - SANITIZE_THIS2 (classDef1, classDef2))) return false; + SANITIZE_THIS (classDef1) && SANITIZE_THIS (classDef2))) return false; unsigned int len1 = valueFormat1.get_len (); unsigned int len2 = valueFormat2.get_len (); @@ -976,7 +978,8 @@ struct CursivePosFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (coverage, entryExitRecord); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (entryExitRecord); } private: diff --git a/src/hb-ot-layout-gsub-private.hh b/src/hb-ot-layout-gsub-private.hh index d2890b0..170ec96 100644 --- a/src/hb-ot-layout-gsub-private.hh +++ b/src/hb-ot-layout-gsub-private.hh @@ -208,7 +208,8 @@ struct MultipleSubstFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (coverage, sequence); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (sequence); } private: @@ -303,7 +304,8 @@ struct AlternateSubstFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (coverage, alternateSet); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (alternateSet); } private: @@ -486,7 +488,8 @@ struct LigatureSubstFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (coverage, ligatureSet); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (ligatureSet); } private: @@ -616,7 +619,7 @@ struct ReverseChainSingleSubstFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - if (!SANITIZE_THIS2 (coverage, backtrack)) + if (!(SANITIZE_THIS (coverage) && SANITIZE_THIS (backtrack))) return false; OffsetArrayOf<Coverage> &lookahead = StructAfter<OffsetArrayOf<Coverage> > (backtrack); if (!SANITIZE_THIS (lookahead)) diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index d07fe25..63239e5 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh @@ -358,7 +358,8 @@ struct ContextFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (coverage, ruleSet); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (ruleSet); } private: @@ -644,7 +645,8 @@ struct ChainContextFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (coverage, ruleSet); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (ruleSet); } private: @@ -690,9 +692,11 @@ struct ChainContextFormat2 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS2 (coverage, backtrackClassDef) && - SANITIZE_THIS2 (inputClassDef, lookaheadClassDef) && - SANITIZE_THIS (ruleSet); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (backtrackClassDef) + && SANITIZE_THIS (inputClassDef) + && SANITIZE_THIS (lookaheadClassDef) + && SANITIZE_THIS (ruleSet); } private: commit 26bfcb64e473c40e439d6efbe974781dada28eca Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 14:49:45 2010 -0400 Cosmetic diff --git a/src/hb-ot-layout-gdef-private.hh b/src/hb-ot-layout-gdef-private.hh index e63ec73..c1e021b 100644 --- a/src/hb-ot-layout-gdef-private.hh +++ b/src/hb-ot-layout-gdef-private.hh @@ -348,9 +348,8 @@ struct GDEF inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - if (!SANITIZE (version)) return false; - if (unlikely (version.major != 1)) return false; - return SANITIZE_THIS2 (glyphClassDef, attachList) && + return SANITIZE (version) && likely (version.major == 1) && + SANITIZE_THIS2 (glyphClassDef, attachList) && SANITIZE_THIS2 (ligCaretList, markAttachClassDef) && (version < 0x00010002 || SANITIZE_THIS (markGlyphSetsDef[0])); } diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index f945ed9..d07fe25 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh @@ -913,10 +913,9 @@ struct GSUBGPOS inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - if (!SANITIZE (version)) return false; - if (unlikely (version.major != 1)) return false; - return SANITIZE_THIS (scriptList) - && SANITIZE_THIS (featureList) + return SANITIZE (version) && likely (version.major == 1) + && SANITIZE_THIS (scriptList) + && SANITIZE_THIS (featureList) && SANITIZE_THIS (lookupList); } commit be74284673a1944e0f1884e861c3fe8f9855172c Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 14:47:05 2010 -0400 Remove SANITIZE_THIS3 diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index 9713da0..da2f0cd 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -231,7 +231,6 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF, #define SANITIZE_THIS(X) likely ((X).sanitize (SANITIZE_ARG, CharP(this))) #define SANITIZE_THIS2(X,Y) (SANITIZE_THIS (X) && SANITIZE_THIS (Y)) -#define SANITIZE_THIS3(X,Y,Z) (SANITIZE_THIS (X) && SANITIZE_THIS (Y) && SANITIZE_THIS(Z)) #define SANITIZE_BASE(X,B) likely ((X).sanitize (SANITIZE_ARG, B)) diff --git a/src/hb-ot-layout-gpos-private.hh b/src/hb-ot-layout-gpos-private.hh index 5736a5f..6504077 100644 --- a/src/hb-ot-layout-gpos-private.hh +++ b/src/hb-ot-layout-gpos-private.hh @@ -1063,8 +1063,11 @@ struct MarkBasePosFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_SELF () && SANITIZE_THIS3 (markCoverage, baseCoverage, markArray) && - likely (baseArray.sanitize (SANITIZE_ARG, CharP(this), classCount)); + return SANITIZE_SELF () + && SANITIZE_THIS (markCoverage) + && SANITIZE_THIS (baseCoverage) + && SANITIZE_THIS (markArray) + && likely (baseArray.sanitize (SANITIZE_ARG, CharP(this), classCount)); } private: @@ -1184,8 +1187,11 @@ struct MarkLigPosFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_SELF () && SANITIZE_THIS3 (markCoverage, ligatureCoverage, markArray) && - likely (ligatureArray.sanitize (SANITIZE_ARG, CharP(this), classCount)); + return SANITIZE_SELF () + && SANITIZE_THIS (markCoverage) + && SANITIZE_THIS (ligatureCoverage) + && SANITIZE_THIS (markArray) + && likely (ligatureArray.sanitize (SANITIZE_ARG, CharP(this), classCount)); } private: @@ -1284,8 +1290,11 @@ struct MarkMarkPosFormat1 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_SELF () && SANITIZE_THIS3 (mark1Coverage, mark2Coverage, mark1Array) && - likely (mark2Array.sanitize (SANITIZE_ARG, CharP(this), classCount)); + return SANITIZE_SELF () + && SANITIZE_THIS (mark1Coverage) + && SANITIZE_THIS (mark2Coverage) + && SANITIZE_THIS (mark1Array) + && likely (mark2Array.sanitize (SANITIZE_ARG, CharP(this), classCount)); } private: diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index 2808601..f945ed9 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh @@ -400,7 +400,9 @@ struct ContextFormat2 inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE_THIS3 (coverage, classDef, ruleSet); + return SANITIZE_THIS (coverage) + && SANITIZE_THIS (classDef) + && SANITIZE_THIS (ruleSet); } private: @@ -913,7 +915,9 @@ struct GSUBGPOS TRACE_SANITIZE (); if (!SANITIZE (version)) return false; if (unlikely (version.major != 1)) return false; - return SANITIZE_THIS3 (scriptList, featureList, lookupList); + return SANITIZE_THIS (scriptList) + && SANITIZE_THIS (featureList) + && SANITIZE_THIS (lookupList); } protected: commit fbab9f9bd8ba59e7e5811f33c1dda198f95cf05a Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 14:42:10 2010 -0400 Remove SANITIZE_BASE2 diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index bc7e7be..9713da0 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -234,7 +234,6 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF, #define SANITIZE_THIS3(X,Y,Z) (SANITIZE_THIS (X) && SANITIZE_THIS (Y) && SANITIZE_THIS(Z)) #define SANITIZE_BASE(X,B) likely ((X).sanitize (SANITIZE_ARG, B)) -#define SANITIZE_BASE2(X,Y,B) (SANITIZE_BASE (X,B) && SANITIZE_BASE (Y,B)) #define SANITIZE_SELF() SANITIZE_OBJ (*this) #define SANITIZE_OBJ(X) SANITIZE_MEM(&(X), sizeof (X)) diff --git a/src/hb-ot-layout-gpos-private.hh b/src/hb-ot-layout-gpos-private.hh index a2c5a1a..5736a5f 100644 --- a/src/hb-ot-layout-gpos-private.hh +++ b/src/hb-ot-layout-gpos-private.hh @@ -779,7 +779,8 @@ struct EntryExitRecord inline bool sanitize (SANITIZE_ARG_DEF, void *base) { TRACE_SANITIZE (); - return SANITIZE_BASE2 (entryAnchor, exitAnchor, base); + return SANITIZE_BASE (entryAnchor, base) + && SANITIZE_BASE (exitAnchor, base); } OffsetTo<Anchor> commit 73c7dbf7f5433c0cdd467ef32402f52867e9798e Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 14:40:55 2010 -0400 Remove SANITIZE2 diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index 48455ec..bc7e7be 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -228,7 +228,6 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF, } #define SANITIZE(X) likely ((X).sanitize (SANITIZE_ARG)) -#define SANITIZE2(X,Y) (SANITIZE (X) && SANITIZE (Y)) #define SANITIZE_THIS(X) likely ((X).sanitize (SANITIZE_ARG, CharP(this))) #define SANITIZE_THIS2(X,Y) (SANITIZE_THIS (X) && SANITIZE_THIS (Y)) diff --git a/src/hb-ot-layout-gsub-private.hh b/src/hb-ot-layout-gsub-private.hh index 889baa7..d2890b0 100644 --- a/src/hb-ot-layout-gsub-private.hh +++ b/src/hb-ot-layout-gsub-private.hh @@ -420,7 +420,7 @@ struct Ligature public: inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); - return SANITIZE2 (ligGlyph, component); + return SANITIZE (ligGlyph) && SANITIZE (component); } private: commit c9f14687a30866181feb57ee2736a147ec9f25a1 Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 14:38:08 2010 -0400 Remove the NEUTER macro, move code to a method diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index 786c08d..48455ec 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -244,11 +244,6 @@ _hb_sanitize_edit (SANITIZE_ARG_DEF, #define SANITIZE_ARRAY(A,S,L) likely (_hb_sanitize_array (SANITIZE_ARG, CharP(A), S, L)) -#define NEUTER(Obj, Val) \ - (SANITIZE_OBJ (Obj) && \ - _hb_sanitize_edit (SANITIZE_ARG, CharP(&(Obj)), (Obj).get_size ()) && \ - ((Obj).set (Val), true)) - /* Template to sanitize an object. */ template <typename Type> @@ -454,21 +449,31 @@ struct GenericOffsetTo : OffsetType if (!SANITIZE_SELF ()) return false; unsigned int offset = *this; if (unlikely (!offset)) return true; - return SANITIZE (StructAtOffset<Type> (*CharP(base), offset)) || NEUTER (*this, 0); + return SANITIZE (StructAtOffset<Type> (*CharP(base), offset)) || neuter (SANITIZE_ARG); } inline bool sanitize (SANITIZE_ARG_DEF, void *base, void *base2) { TRACE_SANITIZE (); if (!SANITIZE_SELF ()) return false; unsigned int offset = *this; if (unlikely (!offset)) return true; - return SANITIZE_BASE (StructAtOffset<Type> (*CharP(base), offset), base2) || NEUTER (*this, 0); + return SANITIZE_BASE (StructAtOffset<Type> (*CharP(base), offset), base2) || neuter (SANITIZE_ARG); } inline bool sanitize (SANITIZE_ARG_DEF, void *base, unsigned int user_data) { TRACE_SANITIZE (); if (!SANITIZE_SELF ()) return false; unsigned int offset = *this; if (unlikely (!offset)) return true; - return SANITIZE_BASE (StructAtOffset<Type> (*CharP(base), offset), user_data) || NEUTER (*this, 0); + return SANITIZE_BASE (StructAtOffset<Type> (*CharP(base), offset), user_data) || neuter (SANITIZE_ARG); + } + + private: + /* Set the offset to Null */ + inline bool neuter (SANITIZE_ARG_DEF) { + if (_hb_sanitize_edit (SANITIZE_ARG, CharP(this), this->get_size ())) { + this->set (0); /* 0 is Null offset */ + return true; + } + return false; } }; template <typename Base, typename OffsetType, typename Type> commit 30fa2821c277df99a14089749313dfe2b541e2d0 Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 14:28:18 2010 -0400 Make internal method private diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index a3e6f4d..786c08d 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -511,11 +511,6 @@ struct GenericArrayOf inline unsigned int get_size () const { return len.get_size () + len * Type::get_size (); } - inline bool sanitize_shallow (SANITIZE_ARG_DEF) { - TRACE_SANITIZE (); - return SANITIZE_SELF() && SANITIZE_ARRAY (this, Type::get_size (), len); - } - inline bool sanitize (SANITIZE_ARG_DEF) { TRACE_SANITIZE (); if (!likely (sanitize_shallow (SANITIZE_ARG))) return false; @@ -561,6 +556,13 @@ struct GenericArrayOf return true; } + private: + inline bool sanitize_shallow (SANITIZE_ARG_DEF) { + TRACE_SANITIZE (); + return SANITIZE_SELF() && SANITIZE_ARRAY (this, Type::get_size (), len); + } + + public: LenType len; /*Type array[VAR];*/ }; commit ce5694c79671bf75990923c1da17bb611e4e7d15 Author: Behdad Esfahbod <[email protected]> Date: Tue May 4 14:10:18 2010 -0400 [main] Recognize Apple SFNTs diff --git a/src/hb-open-file-private.hh b/src/hb-open-file-private.hh index f25522e..e09bd80 100644 --- a/src/hb-open-file-private.hh +++ b/src/hb-open-file-private.hh @@ -193,8 +193,8 @@ struct OpenTypeFontFile static const hb_tag_t CFFTag = HB_TAG ('O','T','T','O'); /* OpenType with Postscript outlines */ static const hb_tag_t TrueTypeTag = HB_TAG ( 0 , 1 , 0 , 0 ); /* OpenType with TrueType outlines */ static const hb_tag_t TTCTag = HB_TAG ('t','t','c','f'); /* TrueType Collection */ - static const hb_tag_t TrueTag = HB_TAG ('t','r','u','e'); /* Apple obsolete tag */ - static const hb_tag_t Typ1Tag = HB_TAG ('t','y','p','1'); /* Apple obsolete tag */ + static const hb_tag_t TrueTag = HB_TAG ('t','r','u','e'); /* Obsolete Apple TrueType */ + static const hb_tag_t Typ1Tag = HB_TAG ('t','y','p','1'); /* Obsolete Apple Type1 font in SFNT container */ inline hb_tag_t get_tag (void) const { return u.tag; } diff --git a/src/main.cc b/src/main.cc index 2e0927a..b3b12d0 100644 --- a/src/main.cc +++ b/src/main.cc @@ -73,6 +73,12 @@ main (int argc, char **argv) case OpenTypeFontFile::TTCTag: printf ("TrueType Collection of OpenType fonts\n"); break; + case OpenTypeFontFile::TrueTag: + printf ("Obsolete Apple TrueType font\n"); + break; + case OpenTypeFontFile::Typ1Tag: + printf ("Obsolete Apple Type1 font in SFNT container\n"); + break; default: printf ("Unknown font format\n"); break; _______________________________________________ HarfBuzz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/harfbuzz
