src/hb-aat-layout-morx-table.hh | 4 ++-- src/hb-open-type-private.hh | 16 ++++++++-------- src/hb-ot-cmap-table.hh | 28 ++++++++++++++-------------- src/hb-ot-glyf-table.hh | 14 +++++++------- src/hb-ot-var-avar-table.hh | 6 +++--- src/hb-set-private.hh | 14 ++++++++++++-- src/hb-set.cc | 4 ++-- 7 files changed, 48 insertions(+), 38 deletions(-)
New commits: commit 5b93f6916958e6096044372c1195501ea9f37436 Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed May 2 14:59:14 2018 -0400 Rename some X-terminated members to Z-terminated X-terminated means don't access this, it's not located correctly. Z-terminated means this is a C array with no bound checking. diff --git a/src/hb-aat-layout-morx-table.hh b/src/hb-aat-layout-morx-table.hh index 8b27d670..fce1878d 100644 --- a/src/hb-aat-layout-morx-table.hh +++ b/src/hb-aat-layout-morx-table.hh @@ -670,8 +670,8 @@ struct Chain HBUINT32 subtableCount; /* The number of subtables in the chain. */ Feature featureZ[VAR]; /* Features. */ - ChainSubtable subtableX[VAR]; /* Subtables. */ - // subtableGlyphCoverageArray if major == 3 +/*ChainSubtable subtableX[VAR];*//* Subtables. */ +/*subtableGlyphCoverageArray*/ /* Only if major == 3. */ public: DEFINE_SIZE_MIN (16); diff --git a/src/hb-open-type-private.hh b/src/hb-open-type-private.hh index efbaa7ad..1f22b182 100644 --- a/src/hb-open-type-private.hh +++ b/src/hb-open-type-private.hh @@ -1201,18 +1201,18 @@ struct BinSearchHeader { len.set (v); assert (len == v); - entrySelectorZ.set (MAX (1u, _hb_bit_storage (v)) - 1); - searchRangeZ.set (16 * (1u << entrySelectorZ)); - rangeShiftZ.set (v * 16 > searchRangeZ - ? 16 * v - searchRangeZ - : 0); + entrySelector.set (MAX (1u, _hb_bit_storage (v)) - 1); + searchRange.set (16 * (1u << entrySelector)); + rangeShift.set (v * 16 > searchRange + ? 16 * v - searchRange + : 0); } protected: HBUINT16 len; - HBUINT16 searchRangeZ; - HBUINT16 entrySelectorZ; - HBUINT16 rangeShiftZ; + HBUINT16 searchRange; + HBUINT16 entrySelector; + HBUINT16 rangeShift; public: DEFINE_SIZE_STATIC (8); diff --git a/src/hb-ot-cmap-table.hh b/src/hb-ot-cmap-table.hh index 9155b7c0..83a0b519 100644 --- a/src/hb-ot-cmap-table.hh +++ b/src/hb-ot-cmap-table.hh @@ -59,8 +59,8 @@ struct CmapSubtableFormat0 protected: HBUINT16 format; /* Format number is set to 0. */ - HBUINT16 lengthZ; /* Byte length of this subtable. */ - HBUINT16 languageZ; /* Ignore. */ + HBUINT16 length; /* Byte length of this subtable. */ + HBUINT16 language; /* Ignore. */ HBUINT8 glyphIdArray[256];/* An array that maps character * code to glyph index values. */ public: @@ -179,11 +179,11 @@ struct CmapSubtableFormat4 HBUINT16 format; /* Format number is set to 4. */ HBUINT16 length; /* This is the length in bytes of the * subtable. */ - HBUINT16 languageZ; /* Ignore. */ + HBUINT16 language; /* Ignore. */ HBUINT16 segCountX2; /* 2 x segCount. */ - HBUINT16 searchRangeZ; /* 2 * (2**floor(log2(segCount))) */ - HBUINT16 entrySelectorZ; /* log2(searchRange/2) */ - HBUINT16 rangeShiftZ; /* 2 x segCount - searchRange */ + HBUINT16 searchRange; /* 2 * (2**floor(log2(segCount))) */ + HBUINT16 entrySelector; /* log2(searchRange/2) */ + HBUINT16 rangeShift; /* 2 x segCount - searchRange */ HBUINT16 values[VAR]; #if 0 @@ -251,8 +251,8 @@ struct CmapSubtableTrimmed protected: UINT formatReserved; /* Subtable format and (maybe) padding. */ - UINT lengthZ; /* Byte length of this subtable. */ - UINT languageZ; /* Ignore. */ + UINT length; /* Byte length of this subtable. */ + UINT language; /* Ignore. */ UINT startCharCode; /* First character code covered. */ ArrayOf<GlyphID, UINT> glyphIdArray; /* Array of glyph index values for character @@ -305,9 +305,9 @@ struct CmapSubtableLongSegmented protected: HBUINT16 format; /* Subtable format; set to 12. */ - HBUINT16 reservedZ; /* Reserved; set to 0. */ - HBUINT32 lengthZ; /* Byte length of this subtable. */ - HBUINT32 languageZ; /* Ignore. */ + HBUINT16 reserved; /* Reserved; set to 0. */ + HBUINT32 length; /* Byte length of this subtable. */ + HBUINT32 language; /* Ignore. */ SortedArrayOf<CmapSubtableLongGroup, HBUINT32> groups; /* Groupings. */ public: @@ -441,7 +441,7 @@ struct CmapSubtableFormat14 protected: HBUINT16 format; /* Format number is set to 14. */ - HBUINT32 lengthZ; /* Byte length of this subtable. */ + HBUINT32 length; /* Byte length of this subtable. */ SortedArrayOf<VariationSelectorRecord, HBUINT32> record; /* Variation selector records; sorted * in increasing order of `varSelector'. */ @@ -611,8 +611,8 @@ struct cmap if (unlikely (!c.extend_min (format12))) return false; format12.format.set (12); - format12.reservedZ.set (0); - format12.lengthZ.set (16 + 12 * groups.len); + format12.reserved.set (0); + format12.length.set (16 + 12 * groups.len); if (unlikely (!format12.serialize (&c, groups))) return false; diff --git a/src/hb-ot-glyf-table.hh b/src/hb-ot-glyf-table.hh index 85cb3a37..4b02153c 100644 --- a/src/hb-ot-glyf-table.hh +++ b/src/hb-ot-glyf-table.hh @@ -56,8 +56,8 @@ struct loca } protected: - HBUINT8 dataX[VAR]; /* Location data. */ - DEFINE_SIZE_ARRAY (0, dataX); + HBUINT8 dataZ[VAR]; /* Location data. */ + DEFINE_SIZE_ARRAY (0, dataZ); }; @@ -377,13 +377,13 @@ struct glyf if (short_offset) { - const HBUINT16 *offsets = (const HBUINT16 *) loca_table->dataX; + const HBUINT16 *offsets = (const HBUINT16 *) loca_table->dataZ; *start_offset = 2 * offsets[glyph]; *end_offset = 2 * offsets[glyph + 1]; } else { - const HBUINT32 *offsets = (const HBUINT32 *) loca_table->dataX; + const HBUINT32 *offsets = (const HBUINT32 *) loca_table->dataZ; *start_offset = offsets[glyph]; *end_offset = offsets[glyph + 1]; @@ -420,7 +420,7 @@ struct glyf } while (composite_it.move_to_next()); if ( (uint16_t) last->flags & CompositeGlyphHeader::WE_HAVE_INSTRUCTIONS) - *instruction_start = ((char *) last - (char *) glyf_table->dataX) + last->get_size(); + *instruction_start = ((char *) last - (char *) glyf_table->dataZ) + last->get_size(); else *instruction_start = end_offset; *instruction_end = end_offset; @@ -485,9 +485,9 @@ struct glyf }; protected: - HBUINT8 dataX[VAR]; /* Glyphs data. */ + HBUINT8 dataZ[VAR]; /* Glyphs data. */ - DEFINE_SIZE_ARRAY (0, dataX); + DEFINE_SIZE_ARRAY (0, dataZ); }; } /* namespace OT */ diff --git a/src/hb-ot-var-avar-table.hh b/src/hb-ot-var-avar-table.hh index feaa525e..fc73527e 100644 --- a/src/hb-ot-var-avar-table.hh +++ b/src/hb-ot-var-avar-table.hh @@ -108,7 +108,7 @@ struct avar c->check_struct (this)))) return_trace (false); - const SegmentMaps *map = &axisSegmentMapsZ; + const SegmentMaps *map = axisSegmentMapsZ; unsigned int count = axisCount; for (unsigned int i = 0; i < count; i++) { @@ -124,7 +124,7 @@ struct avar { unsigned int count = MIN<unsigned int> (coords_length, axisCount); - const SegmentMaps *map = &axisSegmentMapsZ; + const SegmentMaps *map = axisSegmentMapsZ; for (unsigned int i = 0; i < count; i++) { coords[i] = map->map (coords[i]); @@ -139,7 +139,7 @@ struct avar HBUINT16 axisCount; /* The number of variation axes in the font. This * must be the same number as axisCount in the * 'fvar' table. */ - SegmentMaps axisSegmentMapsZ; + SegmentMaps axisSegmentMapsZ[VAR]; public: DEFINE_SIZE_MIN (8); commit f1f6bc0a6f28a6611a247f37b8a83e6f782d7227 Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed May 2 12:56:21 2018 -0400 [set] Fix init/fini of set on the stack to call object init/fini Part of https://github.com/harfbuzz/harfbuzz/issues/1017 diff --git a/src/hb-set-private.hh b/src/hb-set-private.hh index 4288b15b..149b89e2 100644 --- a/src/hb-set-private.hh +++ b/src/hb-set-private.hh @@ -193,18 +193,28 @@ struct hb_set_t hb_vector_t<page_map_t, 8> page_map; hb_vector_t<page_t, 1> pages; - inline void init (void) + inline void init_shallow (void) { in_error = false; population = 0; page_map.init (); pages.init (); } - inline void fini (void) + inline void init (void) + { + hb_object_init (this); + init_shallow (); + } + inline void fini_shallow (void) { page_map.fini (); pages.fini (); } + inline void fini (void) + { + hb_object_fini (this); + fini_shallow (); + } inline bool resize (unsigned int count) { diff --git a/src/hb-set.cc b/src/hb-set.cc index d5163c78..2bad1889 100644 --- a/src/hb-set.cc +++ b/src/hb-set.cc @@ -45,7 +45,7 @@ hb_set_create (void) if (!(set = hb_object_create<hb_set_t> ())) return hb_set_get_empty (); - set->init (); + set->init_shallow (); return set; } @@ -96,7 +96,7 @@ hb_set_destroy (hb_set_t *set) { if (!hb_object_destroy (set)) return; - set->fini (); + set->fini_shallow (); free (set); } _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/harfbuzz