From b1e07e1e6cc7a8e5445c7aeb9491ae629029011b Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 30 Sep 2018 05:43:22 -0400 Subject: [PATCH] [indic/khmer] Remove use of global constructors Alternative woul have been to resurrect F_COMBINE that I removed in 70136a78cb9eda244767f8e8a3d30d0f3c569d01 But this does it for now. I'm not sure why check-static-inits.sh didn't catch this before. Clang -Weverything bot did: CXX libharfbuzz_la-hb-ot-shape-complex-indic.lo hb-ot-shape-complex-indic.cc:99:1: warning: declaration requires a global constructor [-Wglobal-constructors] indic_features[] = ^ 1 warning generated. CXX libharfbuzz_la-hb-ot-shape-complex-khmer.lo hb-ot-shape-complex-khmer.cc:36:1: warning: declaration requires a global constructor [-Wglobal-constructors] khmer_features[] = ^ 1 warning generated. --- src/hb-ot-map.hh | 2 ++ src/hb-ot-shape-complex-indic.cc | 34 ++++++++++++++++---------------- src/hb-ot-shape-complex-khmer.cc | 18 ++++++++--------- 3 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/hb-ot-map.hh b/src/hb-ot-map.hh index 13bbc8fe..cc8b8d84 100644 --- a/src/hb-ot-map.hh +++ b/src/hb-ot-map.hh @@ -174,11 +174,13 @@ enum hb_ot_map_feature_flags_t 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_MANUAL_JOINERS= F_GLOBAL | F_MANUAL_JOINERS, 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. */ }; HB_MARK_AS_FLAG_T (hb_ot_map_feature_flags_t); + struct hb_ot_map_feature_t { hb_tag_t tag; diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc index 1fec0e56..4131e705 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_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}, + {HB_TAG('n','u','k','t'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('a','k','h','n'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('r','p','h','f'), F_MANUAL_JOINERS}, + {HB_TAG('r','k','r','f'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('p','r','e','f'), F_MANUAL_JOINERS}, + {HB_TAG('b','l','w','f'), F_MANUAL_JOINERS}, + {HB_TAG('a','b','v','f'), F_MANUAL_JOINERS}, + {HB_TAG('h','a','l','f'), F_MANUAL_JOINERS}, + {HB_TAG('p','s','t','f'), F_MANUAL_JOINERS}, + {HB_TAG('v','a','t','u'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('c','j','c','t'), F_GLOBAL_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_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}, + {HB_TAG('i','n','i','t'), F_MANUAL_JOINERS}, + {HB_TAG('p','r','e','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('a','b','v','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('b','l','w','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('p','s','t','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('h','a','l','n'), F_GLOBAL_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 f8c0a4be..d46f0b3a 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_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}, + {HB_TAG('p','r','e','f'), F_MANUAL_JOINERS}, + {HB_TAG('b','l','w','f'), F_MANUAL_JOINERS}, + {HB_TAG('a','b','v','f'), F_MANUAL_JOINERS}, + {HB_TAG('p','s','t','f'), F_MANUAL_JOINERS}, + {HB_TAG('c','f','a','r'), F_MANUAL_JOINERS}, /* * Other features. * These features are applied all at once. */ - {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('p','r','e','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('a','b','v','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('b','l','w','s'), F_GLOBAL_MANUAL_JOINERS}, + {HB_TAG('p','s','t','s'), F_GLOBAL_MANUAL_JOINERS}, /* * Positioning features. * We don't care about the types. -- GitLab