src/hb-ft.cc | 3 +++ src/hb-iter-private.hh | 8 +++++--- src/hb-machinery-private.hh | 1 - src/hb-ot-layout-common-private.hh | 9 +++++++++ src/hb-ot-shape.cc | 3 +++ 5 files changed, 20 insertions(+), 4 deletions(-)
New commits: commit 42c183f80355fe7cadac2931a23d389285c8b98c Author: Behdad Esfahbod <beh...@behdad.org> Date: Fri Jul 27 14:55:29 2018 -0700 Minor diff --git a/src/hb-ft.cc b/src/hb-ft.cc index 1026d682..f8a6b0c4 100644 --- a/src/hb-ft.cc +++ b/src/hb-ft.cc @@ -496,8 +496,9 @@ reference_table (hb_face_t *face HB_UNUSED, hb_tag_t tag, void *user_data) return nullptr; error = FT_Load_Sfnt_Table (ft_face, tag, 0, buffer, &length); - if (error) { - free ((void*)buffer); + if (error) + { + free (buffer); return nullptr; } diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index 70c9c63c..e40a0e94 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -193,8 +193,9 @@ _hb_ot_shaper_shape_plan_data_create (hb_shape_plan_t *shape_plan, if (plan->shaper->data_create) { plan->data = plan->shaper->data_create (plan); - if (unlikely (!plan->data)) { - free ((void*)plan); + if (unlikely (!plan->data)) + { + free (plan); return nullptr; } } commit ecab6604e57ea2bb4e78250a7a400e15b3e86f7a Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Jul 25 17:37:38 2018 -0700 [serialize] Allocate for markFilteringSet diff --git a/src/hb-ot-layout-common-private.hh b/src/hb-ot-layout-common-private.hh index 7ff0dbeb..dec237c8 100644 --- a/src/hb-ot-layout-common-private.hh +++ b/src/hb-ot-layout-common-private.hh @@ -615,6 +615,14 @@ struct Lookup inline OffsetArrayOf<SubTableType>& get_subtables (void) { return CastR<OffsetArrayOf<SubTableType> > (subTable); } + inline unsigned int get_size (void) const + { + const HBUINT16 &markFilteringSet = StructAfter<const HBUINT16> (subTable); + if (lookupFlag & LookupFlag::UseMarkFilteringSet) + return (const char *) &StructAfter<const char> (markFilteringSet) - (const char *) this; + return (const char *) &markFilteringSet - (const char *) this; + } + inline unsigned int get_type (void) const { return lookupType; } /* lookup_props is a 32-bit integer where the lower 16-bit is LookupFlag and @@ -657,6 +665,7 @@ struct Lookup if (unlikely (!subTable.serialize (c, num_subtables))) return_trace (false); if (lookupFlag & LookupFlag::UseMarkFilteringSet) { + if (unlikely (!c->extend (*this))) return_trace (false); HBUINT16 &markFilteringSet = StructAfter<HBUINT16> (subTable); markFilteringSet.set (lookup_props >> 16); } commit 7f08818c441517f73c5bea0a2a88f494dfc8fa58 Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Jul 25 17:22:05 2018 -0700 Minor diff --git a/src/hb-iter-private.hh b/src/hb-iter-private.hh index a22675cd..410a50f9 100644 --- a/src/hb-iter-private.hh +++ b/src/hb-iter-private.hh @@ -50,11 +50,13 @@ template <typename T> struct Iter; +#if 0 template <typename T> struct Iter { - inline Iter (const T &c); + explicit inline Iter (const T &c); }; +#endif template <typename T> struct Iter<T *> @@ -66,7 +68,7 @@ struct Iter<T *> inline Iter (T *array_, int length_) : array (array_), length (MAX (length_, 0)) {} template <unsigned int length_> - inline Iter (T (&array_)[length_]) : + explicit inline Iter (T (&array_)[length_]) : array (array_), length (length_) {} /* Emptiness. */ @@ -138,7 +140,7 @@ m (void) s2 = s; - for (; s && t; s++, t++) + for (; s && t; ++s, ++t) { *t = *s; } diff --git a/src/hb-machinery-private.hh b/src/hb-machinery-private.hh index 649788c1..653d7c6f 100644 --- a/src/hb-machinery-private.hh +++ b/src/hb-machinery-private.hh @@ -400,7 +400,6 @@ struct hb_serialize_context_t this->start, this->end, (int) (this->head - this->start), this->ran_out_of_room ? "RAN OUT OF ROOM" : "did not ran out of room"); - } template <typename Type> commit 2e25d8f49181ab1d7fda520ae6587d293a982acf Author: prrace <philip.r...@oracle.com> Date: Fri Jul 27 13:58:27 2018 -0700 Fix unlikely leaks diff --git a/src/hb-ft.cc b/src/hb-ft.cc index 6670d9a6..1026d682 100644 --- a/src/hb-ft.cc +++ b/src/hb-ft.cc @@ -496,8 +496,10 @@ reference_table (hb_face_t *face HB_UNUSED, hb_tag_t tag, void *user_data) return nullptr; error = FT_Load_Sfnt_Table (ft_face, tag, 0, buffer, &length); - if (error) + if (error) { + free ((void*)buffer); return nullptr; + } return hb_blob_create ((const char *) buffer, length, HB_MEMORY_MODE_WRITABLE, diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index 6696ad88..70c9c63c 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -193,8 +193,10 @@ _hb_ot_shaper_shape_plan_data_create (hb_shape_plan_t *shape_plan, if (plan->shaper->data_create) { plan->data = plan->shaper->data_create (plan); - if (unlikely (!plan->data)) + if (unlikely (!plan->data)) { + free ((void*)plan); return nullptr; + } } return plan; _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/harfbuzz