From dd3972a3649e30c2bee88303ee56f88b260deb53 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Tue, 10 Dec 2019 13:21:26 -0600 Subject: [PATCH] [GSUB] Simplify Extension is_reverse() We don't allow extension lookups to chain to another extension lookup. Simplify code for that. --- src/hb-ot-layout-gpos-table.hh | 10 +++++----- src/hb-ot-layout-gsub-table.hh | 14 +++++--------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh index ff09ecb42..f22d5836d 100644 --- a/src/hb-ot-layout-gpos-table.hh +++ b/src/hb-ot-layout-gpos-table.hh @@ -239,9 +239,9 @@ struct ValueFormat : HBUINT16 }; template -static inline void SinglePos_serialize (hb_serialize_context_t *c, - Iterator it, - ValueFormat valFormat); +static void SinglePos_serialize (hb_serialize_context_t *c, + Iterator it, + ValueFormat valFormat); struct AnchorFormat1 @@ -749,7 +749,7 @@ struct SinglePos }; template -static inline void +static void SinglePos_serialize (hb_serialize_context_t *c, Iterator it, ValueFormat valFormat) @@ -2048,7 +2048,7 @@ struct GPOS_accelerator_t : GPOS::accelerator_t {}; #ifndef HB_NO_OT_LAYOUT template -/*static*/ inline typename context_t::return_t PosLookup::dispatch_recurse_func (context_t *c, unsigned int lookup_index) +/*static*/ typename context_t::return_t PosLookup::dispatch_recurse_func (context_t *c, unsigned int lookup_index) { const PosLookup &l = c->face->table.GPOS.get_relaxed ()->table->get_lookup (lookup_index); return l.dispatch (c); diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh index c0966e27d..373d84a02 100644 --- a/src/hb-ot-layout-gsub-table.hh +++ b/src/hb-ot-layout-gsub-table.hh @@ -37,8 +37,8 @@ namespace OT { typedef hb_pair_t hb_codepoint_pair_t; template -static inline void SingleSubst_serialize (hb_serialize_context_t *c, - Iterator it); +static void SingleSubst_serialize (hb_serialize_context_t *c, + Iterator it); struct SingleSubstFormat1 @@ -293,7 +293,7 @@ struct SingleSubst }; template -static inline void +static void SingleSubst_serialize (hb_serialize_context_t *c, Iterator it) { c->start_embed ()->serialize (c, it); } @@ -1114,7 +1114,6 @@ struct ChainContextSubst : ChainContext {}; struct ExtensionSubst : Extension { typedef struct SubstLookupSubTable SubTable; - bool is_reverse () const; }; @@ -1522,13 +1521,10 @@ struct GSUB_accelerator_t : GSUB::accelerator_t {}; #ifndef HB_NO_OT_LAYOUT /*static*/ inline bool ExtensionSubst::is_reverse () const { - unsigned int type = get_type (); - if (unlikely (type == SubTable::Extension)) - return reinterpret_cast (get_subtable()).is_reverse (); - return SubstLookup::lookup_type_is_reverse (type); + return SubstLookup::lookup_type_is_reverse (get_type ()); } template -/*static*/ inline typename context_t::return_t SubstLookup::dispatch_recurse_func (context_t *c, unsigned int lookup_index) +/*static*/ typename context_t::return_t SubstLookup::dispatch_recurse_func (context_t *c, unsigned int lookup_index) { const SubstLookup &l = c->face->table.GSUB.get_relaxed ()->table->get_lookup (lookup_index); return l.dispatch (c);