.circleci/config.yml | 2 +- src/hb-ot-layout-gsubgpos.hh | 12 ++++++------ src/hb-ot-map.hh | 1 + src/hb-ot-shape-complex-indic.cc | 34 +++++++++++++++++----------------- src/hb-ot-shape-complex-khmer.cc | 18 +++++++++--------- src/hb-ot-shape.cc | 3 ++- 6 files changed, 36 insertions(+), 34 deletions(-)
New commits: commit 8282e881b51363811078bce53fad6aa5b41f7b41 Author: Behdad Esfahbod <[email protected]> Date: Mon Sep 24 19:43:01 2018 -0400 Disable msan bot again Fixes https://github.com/harfbuzz/harfbuzz/issues/1175 diff --git a/.circleci/config.yml b/.circleci/config.yml index 74411778..3bf1977a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -265,7 +265,7 @@ workflows: - archlinux-debug-O0-py3 - clang-O3-O0 - clang-asan - - clang-msan + #- clang-msan # https://github.com/harfbuzz/harfbuzz/issues/1175 - clang-tsan - clang-ubsan - fedora-outoftreebuild commit 6c0e7eb6a6f3f888442c0a97ce6a771631990ed6 Author: Behdad Esfahbod <[email protected]> Date: Mon Sep 24 19:07:23 2018 -0400 Minor diff --git a/src/hb-ot-map.hh b/src/hb-ot-map.hh index b6942ca2..13bbc8fe 100644 --- a/src/hb-ot-map.hh +++ b/src/hb-ot-map.hh @@ -173,6 +173,7 @@ enum hb_ot_map_feature_flags_t F_HAS_FALLBACK = 0x0002u, /* Has fallback implementation, so include mask bit even if feature not found. */ F_MANUAL_ZWNJ = 0x0004u, /* Don't skip over ZWNJ when matching **context**. */ F_MANUAL_ZWJ = 0x0008u, /* Don't skip over ZWJ when matching **input**. */ + F_MANUAL_JOINERS = F_MANUAL_ZWNJ | F_MANUAL_ZWJ, F_GLOBAL_SEARCH = 0x0010u, /* If feature not found in LangSys, look for it in global feature list and pick one. */ F_RANDOM = 0x0020u /* Randomly select a glyph from an AlternateSubstFormat1 subtable. */ }; diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index e2fae7ae..1fec0e56 100644 --- a/src/hb-ot-shape-complex-indic.cc +++ b/src/hb-ot-shape-complex-indic.cc @@ -102,29 +102,29 @@ indic_features[] = * Basic features. * These features are applied in order, one at a time, after initial_reordering. */ - {HB_TAG('n','u','k','t'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('a','k','h','n'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('r','p','h','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('r','k','r','f'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('p','r','e','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('b','l','w','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('a','b','v','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('h','a','l','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('p','s','t','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('v','a','t','u'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('c','j','c','t'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, + {HB_TAG('n','u','k','t'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('a','k','h','n'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('r','p','h','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('r','k','r','f'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('p','r','e','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('b','l','w','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('a','b','v','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('h','a','l','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('p','s','t','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('v','a','t','u'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('c','j','c','t'), F_GLOBAL | F_MANUAL_JOINERS}, /* * Other features. * These features are applied all at once, after final_reordering. * Default Bengali font in Windows for example has intermixed * lookups for init,pres,abvs,blws features. */ - {HB_TAG('i','n','i','t'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('p','r','e','s'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('a','b','v','s'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('b','l','w','s'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('p','s','t','s'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('h','a','l','n'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, + {HB_TAG('i','n','i','t'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('p','r','e','s'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('a','b','v','s'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('b','l','w','s'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('p','s','t','s'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('h','a','l','n'), F_GLOBAL | F_MANUAL_JOINERS}, /* * Positioning features. * We don't care about the types. diff --git a/src/hb-ot-shape-complex-khmer.cc b/src/hb-ot-shape-complex-khmer.cc index 77059293..f8c0a4be 100644 --- a/src/hb-ot-shape-complex-khmer.cc +++ b/src/hb-ot-shape-complex-khmer.cc @@ -39,19 +39,19 @@ khmer_features[] = * Basic features. * These features are applied in order, one at a time, after reordering. */ - {HB_TAG('p','r','e','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('b','l','w','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('a','b','v','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('p','s','t','f'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('c','f','a','r'), F_NONE | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, + {HB_TAG('p','r','e','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('b','l','w','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('a','b','v','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('p','s','t','f'), F_NONE | F_MANUAL_JOINERS}, + {HB_TAG('c','f','a','r'), F_NONE | F_MANUAL_JOINERS}, /* * Other features. * These features are applied all at once. */ - {HB_TAG('p','r','e','s'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('a','b','v','s'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('b','l','w','s'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, - {HB_TAG('p','s','t','s'), F_GLOBAL | F_MANUAL_ZWJ | F_MANUAL_ZWNJ}, + {HB_TAG('p','r','e','s'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('a','b','v','s'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('b','l','w','s'), F_GLOBAL | F_MANUAL_JOINERS}, + {HB_TAG('p','s','t','s'), F_GLOBAL | F_MANUAL_JOINERS}, /* * Positioning features. * We don't care about the types. commit d748dc76644f28d4130f9cb1dee7a22cbe81c25d Author: Behdad Esfahbod <[email protected]> Date: Mon Sep 24 18:30:50 2018 -0400 More iter inits diff --git a/src/hb-ot-layout-gsubgpos.hh b/src/hb-ot-layout-gsubgpos.hh index 031b39b9..5dd4c3da 100644 --- a/src/hb-ot-layout-gsubgpos.hh +++ b/src/hb-ot-layout-gsubgpos.hh @@ -506,21 +506,21 @@ struct hb_ot_apply_context_t : auto_zwnj (true), auto_zwj (true), random (false), - random_state (1) {} + random_state (1) { init_iters (); } - inline void reinit_iters (void) + inline void init_iters (void) { iter_input.init (this, false); iter_context.init (this, true); } - inline void set_lookup_mask (hb_mask_t mask) { lookup_mask = mask; } - inline void set_auto_zwj (bool auto_zwj_) { auto_zwj = auto_zwj_; reinit_iters (); } - inline void set_auto_zwnj (bool auto_zwnj_) { auto_zwnj = auto_zwnj_; reinit_iters (); } + inline void set_lookup_mask (hb_mask_t mask) { lookup_mask = mask; init_iters (); } + inline void set_auto_zwj (bool auto_zwj_) { auto_zwj = auto_zwj_; init_iters (); } + inline void set_auto_zwnj (bool auto_zwnj_) { auto_zwnj = auto_zwnj_; init_iters (); } inline void set_random (bool random_) { random = random_; } inline void set_recurse_func (recurse_func_t func) { recurse_func = func; } inline void set_lookup_index (unsigned int lookup_index_) { lookup_index = lookup_index_; } - inline void set_lookup_props (unsigned int lookup_props_) { lookup_props = lookup_props_; reinit_iters (); } + inline void set_lookup_props (unsigned int lookup_props_) { lookup_props = lookup_props_; init_iters (); } inline uint32_t random_number (void) { commit d9867497d09af929554eaa89cc6fee865b018646 Author: Behdad Esfahbod <[email protected]> Date: Mon Sep 24 18:11:59 2018 -0400 Minor diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc index 6bfd2c7a..5404a5c3 100644 --- a/src/hb-ot-shape.cc +++ b/src/hb-ot-shape.cc @@ -125,7 +125,8 @@ hb_ot_shape_collect_features (hb_ot_shape_planner_t *planner, { const hb_feature_t *feature = &user_features[i]; map->add_feature (feature->tag, - (feature->start == 0 && feature->end == (unsigned int) -1) ? F_GLOBAL : F_NONE, + (feature->start == HB_FEATURE_GLOBAL_START && + feature->end == HB_FEATURE_GLOBAL_END) ? F_GLOBAL : F_NONE, feature->value); } } _______________________________________________ HarfBuzz mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/harfbuzz
