diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh index 103676b05..5e4326ef0 100644 --- a/src/hb-ot-layout-gpos-table.hh +++ b/src/hb-ot-layout-gpos-table.hh @@ -1444,12 +1444,6 @@ struct PosLookup : Lookup return false; } - inline hb_is_inplace_context_t::return_t is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - return TRACE_RETURN (true); - } - inline hb_collect_glyphs_context_t::return_t collect_glyphs (hb_collect_glyphs_context_t *c) const { TRACE_COLLECT_GLYPHS (this); diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh index d5f8b311e..76b4f33c7 100644 --- a/src/hb-ot-layout-gsub-table.hh +++ b/src/hb-ot-layout-gsub-table.hh @@ -37,12 +37,6 @@ namespace OT { struct SingleSubstFormat1 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -121,12 +115,6 @@ struct SingleSubstFormat1 struct SingleSubstFormat2 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -263,13 +251,6 @@ struct SingleSubst struct Sequence { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - /* For len==0 we don't do anything, so it's harmless. */ - return TRACE_RETURN (substitute.len <= 1); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -334,18 +315,6 @@ struct Sequence struct MultipleSubstFormat1 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - /* Some tools generate MultipleSubst with each substitute having length 1! - * So, check them. */ - unsigned int count = sequence.len; - for (unsigned int i = 0; i < count; i++) - if (!(this+sequence[i]).is_inplace (c)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -471,12 +440,6 @@ typedef ArrayOf AlternateSet; /* Array of alternate GlyphIDs--in struct AlternateSubstFormat1 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -796,12 +759,6 @@ struct LigatureSet struct LigatureSubstFormat1 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - return TRACE_RETURN (false); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -950,12 +907,6 @@ struct ExtensionSubst : Extension struct ReverseChainSingleSubstFormat1 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -1195,13 +1146,6 @@ struct SubstLookup : Lookup return lookup_type_is_reverse (type); } - inline hb_is_inplace_context_t::return_t is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - c->set_recurse_func (dispatch_recurse_func); - return TRACE_RETURN (dispatch (c)); - } - inline hb_closure_context_t::return_t closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index bfe8ffa3f..bdd773e36 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh @@ -43,56 +43,6 @@ namespace OT { (&c->debug_depth, c->get_name (), this, HB_FUNC, \ ""); - - -#ifndef HB_DEBUG_IS_INPLACE -#define HB_DEBUG_IS_INPLACE (HB_DEBUG+0) -#endif - -#define TRACE_IS_INPLACE(this) \ - hb_auto_trace_t trace \ - (&c->debug_depth, c->get_name (), this, HB_FUNC, \ - ""); - -struct hb_is_inplace_context_t -{ - inline const char *get_name (void) { return "IS_INPLACE"; } - static const unsigned int max_debug_depth = HB_DEBUG_IS_INPLACE; - typedef bool return_t; - typedef return_t (*recurse_func_t) (hb_is_inplace_context_t *c, unsigned int lookup_index); - template - inline return_t dispatch (const T &obj) { return obj.is_inplace (this); } - static return_t default_return_value (void) { return true; } - bool stop_sublookup_iteration (return_t r) const { return !r; } - - return_t recurse (unsigned int lookup_index) - { - if (unlikely (nesting_level_left == 0 || !recurse_func)) - return default_return_value (); - - nesting_level_left--; - bool ret = recurse_func (this, lookup_index); - nesting_level_left++; - return ret; - } - - hb_face_t *face; - recurse_func_t recurse_func; - unsigned int nesting_level_left; - unsigned int debug_depth; - - hb_is_inplace_context_t (hb_face_t *face_, - unsigned int nesting_level_left_ = MAX_NESTING_LEVEL) : - face (face_), - recurse_func (NULL), - nesting_level_left (nesting_level_left_), - debug_depth (0) {} - - void set_recurse_func (recurse_func_t func) { recurse_func = func; } -}; - - - #ifndef HB_DEBUG_CLOSURE #define HB_DEBUG_CLOSURE (HB_DEBUG+0) #endif @@ -1163,17 +1113,6 @@ static inline bool context_apply_lookup (hb_apply_context_t *c, struct Rule { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - const LookupRecord *lookupRecord = &StructAtOffset (input, input[0].static_size * (inputCount ? inputCount - 1 : 0)); - unsigned int count = lookupCount; - for (unsigned int i = 0; i < count; i++) - if (!c->recurse (lookupRecord[i].lookupListIndex)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c, ContextClosureLookupContext &lookup_context) const { TRACE_CLOSURE (this); @@ -1233,16 +1172,6 @@ struct Rule struct RuleSet { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - unsigned int num_rules = rule.len; - for (unsigned int i = 0; i < num_rules; i++) - if (!(this+rule[i]).is_inplace (c)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c, ContextClosureLookupContext &lookup_context) const { TRACE_CLOSURE (this); @@ -1299,16 +1228,6 @@ struct RuleSet struct ContextFormat1 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - unsigned int count = ruleSet.len; - for (unsigned int i = 0; i < count; i++) - if (!(this+ruleSet[i]).is_inplace (c)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -1395,16 +1314,6 @@ struct ContextFormat1 struct ContextFormat2 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - unsigned int count = ruleSet.len; - for (unsigned int i = 0; i < count; i++) - if (!(this+ruleSet[i]).is_inplace (c)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -1500,17 +1409,6 @@ struct ContextFormat2 struct ContextFormat3 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - const LookupRecord *lookupRecord = &StructAtOffset (coverage, coverage[0].static_size * glyphCount); - unsigned int count = lookupCount; - for (unsigned int i = 0; i < count; i++) - if (!c->recurse (lookupRecord[i].lookupListIndex)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -1753,19 +1651,6 @@ static inline bool chain_context_apply_lookup (hb_apply_context_t *c, struct ChainRule { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - const HeadlessArrayOf &input = StructAfter > (backtrack); - const ArrayOf &lookahead = StructAfter > (input); - const ArrayOf &lookup = StructAfter > (lookahead); - unsigned int count = lookup.len; - for (unsigned int i = 0; i < count; i++) - if (!c->recurse (lookup.array[i].lookupListIndex)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c, ChainContextClosureLookupContext &lookup_context) const { TRACE_CLOSURE (this); @@ -1851,16 +1736,6 @@ struct ChainRule struct ChainRuleSet { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - unsigned int num_rules = rule.len; - for (unsigned int i = 0; i < num_rules; i++) - if (!(this+rule[i]).is_inplace (c)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c, ChainContextClosureLookupContext &lookup_context) const { TRACE_CLOSURE (this); @@ -1914,16 +1789,6 @@ struct ChainRuleSet struct ChainContextFormat1 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - unsigned int count = ruleSet.len; - for (unsigned int i = 0; i < count; i++) - if (!(this+ruleSet[i]).is_inplace (c)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -2007,16 +1872,6 @@ struct ChainContextFormat1 struct ChainContextFormat2 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - unsigned int count = ruleSet.len; - for (unsigned int i = 0; i < count; i++) - if (!(this+ruleSet[i]).is_inplace (c)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -2141,20 +1996,6 @@ struct ChainContextFormat2 struct ChainContextFormat3 { - inline bool is_inplace (hb_is_inplace_context_t *c) const - { - TRACE_IS_INPLACE (this); - const OffsetArrayOf &input = StructAfter > (backtrack); - const OffsetArrayOf &lookahead = StructAfter > (input); - const ArrayOf &lookup = StructAfter > (lookahead); - - unsigned int count = lookup.len; - for (unsigned int i = 0; i < count; i++) - if (!c->recurse (lookup.array[i].lookupListIndex)) - return TRACE_RETURN (false); - return TRACE_RETURN (true); - } - inline void closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this);