[HarfBuzz] harfbuzz: Branch 'master' - 2 commits
Behdad Esfahbod
behdad at kemper.freedesktop.org
Wed Jul 25 20:58:01 UTC 2018
src/hb-shaper-private.hh | 4 ++++
src/hb-subset-plan.cc | 12 ++++++++----
2 files changed, 12 insertions(+), 4 deletions(-)
New commits:
commit bf90f35302c319ec4699ccbcd1e28b15ef2ec423
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Tue Jul 24 18:00:14 2018 -0700
[coretext] Add note
diff --git a/src/hb-shaper-private.hh b/src/hb-shaper-private.hh
index ce2d9f28..3fa53216 100644
--- a/src/hb-shaper-private.hh
+++ b/src/hb-shaper-private.hh
@@ -97,6 +97,10 @@ HB_SHAPER_DATA_ENSURE_FUNC(shaper, object) (hb_##object##_t *object) \
retry: \
HB_SHAPER_DATA_TYPE (shaper, object) *data = (HB_SHAPER_DATA_TYPE (shaper, object) *) hb_atomic_ptr_get (&HB_SHAPER_DATA (shaper, object)); \
if (likely (data) && !(condition)) { \
+ /* Note that evaluating condition above can be dangerous if another thread
+ * got here first and destructed data. That's, as always, bad use pattern.
+ * If you modify the font (change font size), other threads must not be
+ * using it at the same time. */
/* Drop and recreate. */ \
/* If someone dropped it in the mean time, throw it away and don't touch it. \
* Otherwise, destruct it. */ \
commit fb58cb4b5ca7043fa746b1a01790abf53bedfa86
Author: Garret Rieger <grieger at google.com>
Date: Wed Jul 25 13:39:17 2018 -0700
[subset] Only used reachable lookups for gsub closure.
diff --git a/src/hb-subset-plan.cc b/src/hb-subset-plan.cc
index 55c4e3f6..12566827 100644
--- a/src/hb-subset-plan.cc
+++ b/src/hb-subset-plan.cc
@@ -56,11 +56,15 @@ _add_gid_and_children (const OT::glyf::accelerator_t &glyf,
static void
_gsub_closure (hb_face_t *face, hb_set_t *gids_to_retain)
{
- // TODO(grieger): This uses all lookups, instead collect
- // the set of lookups that are relevant.
- // See fontTools implementation.
+ hb_auto_t<hb_set_t> lookup_indices;
+ hb_ot_layout_collect_lookups (face,
+ HB_OT_TAG_GSUB,
+ nullptr,
+ nullptr,
+ nullptr,
+ &lookup_indices);
hb_ot_layout_lookups_substitute_closure (face,
- nullptr,
+ &lookup_indices,
gids_to_retain);
}
More information about the HarfBuzz
mailing list