From ee5464d17fa4c59f5adaaa13dde70dd5264dbc64 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sat, 9 Mar 2013 01:59:30 -0500 Subject: [PATCH] [OTLayout] Move code around --- src/hb-ot-layout-gpos-table.hh | 33 +++++----- src/hb-ot-layout-gsub-table.hh | 115 +++++++++++++++++---------------- 2 files changed, 75 insertions(+), 73 deletions(-) diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh index 1fe3f6f14..44139277c 100644 --- a/src/hb-ot-layout-gpos-table.hh +++ b/src/hb-ot-layout-gpos-table.hh @@ -1434,22 +1434,6 @@ struct PosLookup : Lookup inline const PosLookupSubTable& get_subtable (unsigned int i) const { return this+CastR > (subTable)[i]; } - template - inline typename context_t::return_t dispatch (context_t *c) const - { - TRACE_DISPATCH (this); - unsigned int lookup_type = get_type (); - unsigned int count = get_subtable_count (); - for (unsigned int i = 0; i < count; i++) { - typename context_t::return_t r = get_subtable (i).dispatch (c, lookup_type); - if (c->stop_sublookup_iteration (r)) - return TRACE_RETURN (r); - } - return TRACE_RETURN (c->default_return_value ()); - } - template - static inline typename context_t::return_t dispatch_recurse_func (context_t *c, unsigned int lookup_index); - inline hb_collect_glyphs_context_t::return_t collect_glyphs_lookup (hb_collect_glyphs_context_t *c) const { TRACE_COLLECT_GLYPHS (this); @@ -1507,6 +1491,23 @@ struct PosLookup : Lookup return ret; } + template + static inline typename context_t::return_t dispatch_recurse_func (context_t *c, unsigned int lookup_index); + + template + inline typename context_t::return_t dispatch (context_t *c) const + { + TRACE_DISPATCH (this); + unsigned int lookup_type = get_type (); + unsigned int count = get_subtable_count (); + for (unsigned int i = 0; i < count; i++) { + typename context_t::return_t r = get_subtable (i).dispatch (c, lookup_type); + if (c->stop_sublookup_iteration (r)) + return TRACE_RETURN (r); + } + return TRACE_RETURN (c->default_return_value ()); + } + inline bool sanitize (hb_sanitize_context_t *c) { TRACE_SANITIZE (this); if (unlikely (!Lookup::sanitize (c))) return TRACE_RETURN (false); diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh index 04ed309f1..35d07298d 100644 --- a/src/hb-ot-layout-gsub-table.hh +++ b/src/hb-ot-layout-gsub-table.hh @@ -192,17 +192,6 @@ struct SingleSubstFormat2 struct SingleSubst { - template - inline typename context_t::return_t dispatch (context_t *c) const - { - TRACE_DISPATCH (this); - switch (u.format) { - case 1: return TRACE_RETURN (c->dispatch (u.format1)); - case 2: return TRACE_RETURN (c->dispatch (u.format2)); - default:return TRACE_RETURN (c->default_return_value ()); - } - } - inline bool serialize (hb_serialize_context_t *c, Supplier &glyphs, Supplier &substitutes, @@ -230,6 +219,17 @@ struct SingleSubst } } + template + inline typename context_t::return_t dispatch (context_t *c) const + { + TRACE_DISPATCH (this); + switch (u.format) { + case 1: return TRACE_RETURN (c->dispatch (u.format1)); + case 2: return TRACE_RETURN (c->dispatch (u.format2)); + default:return TRACE_RETURN (c->default_return_value ()); + } + } + inline bool sanitize (hb_sanitize_context_t *c) { TRACE_SANITIZE (this); if (!u.format.sanitize (c)) return TRACE_RETURN (false); @@ -385,16 +385,6 @@ struct MultipleSubstFormat1 struct MultipleSubst { - template - inline typename context_t::return_t dispatch (context_t *c) const - { - TRACE_DISPATCH (this); - switch (u.format) { - case 1: return TRACE_RETURN (c->dispatch (u.format1)); - default:return TRACE_RETURN (c->default_return_value ()); - } - } - inline bool serialize (hb_serialize_context_t *c, Supplier &glyphs, Supplier &substitute_len_list, @@ -411,6 +401,16 @@ struct MultipleSubst } } + template + inline typename context_t::return_t dispatch (context_t *c) const + { + TRACE_DISPATCH (this); + switch (u.format) { + case 1: return TRACE_RETURN (c->dispatch (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); + } + } + inline bool sanitize (hb_sanitize_context_t *c) { TRACE_SANITIZE (this); if (!u.format.sanitize (c)) return TRACE_RETURN (false); @@ -536,16 +536,6 @@ struct AlternateSubstFormat1 struct AlternateSubst { - template - inline typename context_t::return_t dispatch (context_t *c) const - { - TRACE_DISPATCH (this); - switch (u.format) { - case 1: return TRACE_RETURN (c->dispatch (u.format1)); - default:return TRACE_RETURN (c->default_return_value ()); - } - } - inline bool serialize (hb_serialize_context_t *c, Supplier &glyphs, Supplier &alternate_len_list, @@ -562,6 +552,16 @@ struct AlternateSubst } } + template + inline typename context_t::return_t dispatch (context_t *c) const + { + TRACE_DISPATCH (this); + switch (u.format) { + case 1: return TRACE_RETURN (c->dispatch (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); + } + } + inline bool sanitize (hb_sanitize_context_t *c) { TRACE_SANITIZE (this); if (!u.format.sanitize (c)) return TRACE_RETURN (false); @@ -841,16 +841,6 @@ struct LigatureSubstFormat1 struct LigatureSubst { - template - inline typename context_t::return_t dispatch (context_t *c) const - { - TRACE_DISPATCH (this); - switch (u.format) { - case 1: return TRACE_RETURN (c->dispatch (u.format1)); - default:return TRACE_RETURN (c->default_return_value ()); - } - } - inline bool serialize (hb_serialize_context_t *c, Supplier &first_glyphs, Supplier &ligature_per_first_glyph_count_list, @@ -870,6 +860,16 @@ struct LigatureSubst } } + template + inline typename context_t::return_t dispatch (context_t *c) const + { + TRACE_DISPATCH (this); + switch (u.format) { + case 1: return TRACE_RETURN (c->dispatch (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); + } + } + inline bool sanitize (hb_sanitize_context_t *c) { TRACE_SANITIZE (this); if (!u.format.sanitize (c)) return TRACE_RETURN (false); @@ -1138,22 +1138,6 @@ struct SubstLookup : Lookup return lookup_type_is_reverse (type); } - template - inline typename context_t::return_t dispatch (context_t *c) const - { - TRACE_DISPATCH (this); - unsigned int lookup_type = get_type (); - unsigned int count = get_subtable_count (); - for (unsigned int i = 0; i < count; i++) { - typename context_t::return_t r = get_subtable (i).dispatch (c, lookup_type); - if (c->stop_sublookup_iteration (r)) - return TRACE_RETURN (r); - } - return TRACE_RETURN (c->default_return_value ()); - } - template - static inline typename context_t::return_t dispatch_recurse_func (context_t *c, unsigned int lookup_index); - inline hb_closure_context_t::return_t closure (hb_closure_context_t *c) const { TRACE_CLOSURE (this); @@ -1305,6 +1289,23 @@ struct SubstLookup : Lookup ligatures_list, component_count_list, component_list)); } + template + static inline typename context_t::return_t dispatch_recurse_func (context_t *c, unsigned int lookup_index); + + template + inline typename context_t::return_t dispatch (context_t *c) const + { + TRACE_DISPATCH (this); + unsigned int lookup_type = get_type (); + unsigned int count = get_subtable_count (); + for (unsigned int i = 0; i < count; i++) { + typename context_t::return_t r = get_subtable (i).dispatch (c, lookup_type); + if (c->stop_sublookup_iteration (r)) + return TRACE_RETURN (r); + } + return TRACE_RETURN (c->default_return_value ()); + } + inline bool sanitize (hb_sanitize_context_t *c) { TRACE_SANITIZE (this);