[HarfBuzz] harfbuzz: Branch 'master' - 4 commits
Behdad Esfahbod
behdad at kemper.freedesktop.org
Mon Sep 24 23:43:21 UTC 2018
.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 <behdad at behdad.org>
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 <behdad at behdad.org>
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 <behdad at behdad.org>
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 <behdad at behdad.org>
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);
}
}
More information about the HarfBuzz
mailing list