From f48ec0e83432c038b50d9715a38ba1469e82e1e4 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 23 Nov 2012 17:23:41 -0500 Subject: [PATCH] [OTLayout] Add process() tracing --- src/hb-ot-layout-gpos-table.hh | 60 ++++++++++++++++------------ src/hb-ot-layout-gsub-table.hh | 51 +++++++++++++---------- src/hb-ot-layout-gsubgpos-private.hh | 17 ++++---- 3 files changed, 72 insertions(+), 56 deletions(-) diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh index 29faa18d..86c0d8d2 100644 --- a/src/hb-ot-layout-gpos-table.hh +++ b/src/hb-ot-layout-gpos-table.hh @@ -503,10 +503,11 @@ struct SinglePos template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - case 2: return c->process (u.format2); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + case 2: return TRACE_RETURN (c->process (u.format2)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -748,10 +749,11 @@ struct PairPos template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - case 2: return c->process (u.format2); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + case 2: return TRACE_RETURN (c->process (u.format2)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -907,9 +909,10 @@ struct CursivePos template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -997,9 +1000,10 @@ struct MarkBasePos template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -1109,9 +1113,10 @@ struct MarkLigPos template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -1219,9 +1224,10 @@ struct MarkMarkPos template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -1277,17 +1283,18 @@ struct PosLookupSubTable template inline typename context_t::return_t process (context_t *c, unsigned int lookup_type) const { + TRACE_PROCESS (this); switch (lookup_type) { - case Single: return u.single.process (c); - case Pair: return u.pair.process (c); - case Cursive: return u.cursive.process (c); - case MarkBase: return u.markBase.process (c); - case MarkLig: return u.markLig.process (c); - case MarkMark: return u.markMark.process (c); - case Context: return u.context.process (c); - case ChainContext: return u.chainContext.process (c); - case Extension: return u.extension.process (c); - default: return c->default_return_value (); + case Single: return TRACE_RETURN (u.single.process (c)); + case Pair: return TRACE_RETURN (u.pair.process (c)); + case Cursive: return TRACE_RETURN (u.cursive.process (c)); + case MarkBase: return TRACE_RETURN (u.markBase.process (c)); + case MarkLig: return TRACE_RETURN (u.markLig.process (c)); + case MarkMark: return TRACE_RETURN (u.markMark.process (c)); + case Context: return TRACE_RETURN (u.context.process (c)); + case ChainContext: return TRACE_RETURN (u.chainContext.process (c)); + case Extension: return TRACE_RETURN (u.extension.process (c)); + default: return TRACE_RETURN (c->default_return_value ()); } } @@ -1337,14 +1344,15 @@ struct PosLookup : Lookup template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (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).process (c, lookup_type); if (c->stop_sublookup_iteration (r)) - return r; + return TRACE_RETURN (r); } - return c->default_return_value (); + return TRACE_RETURN (c->default_return_value ()); } template diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh index 1a2119df..201ca278 100644 --- a/src/hb-ot-layout-gsub-table.hh +++ b/src/hb-ot-layout-gsub-table.hh @@ -193,10 +193,11 @@ struct SingleSubst template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - case 2: return c->process (u.format2); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + case 2: return TRACE_RETURN (c->process (u.format2)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -382,9 +383,10 @@ struct MultipleSubst template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -531,9 +533,10 @@ struct AlternateSubst template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -832,9 +835,10 @@ struct LigatureSubst template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -1010,9 +1014,10 @@ struct ReverseChainSingleSubst template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -1056,16 +1061,17 @@ struct SubstLookupSubTable template inline typename context_t::return_t process (context_t *c, unsigned int lookup_type) const { + TRACE_PROCESS (this); switch (lookup_type) { - case Single: return u.single.process (c); - case Multiple: return u.multiple.process (c); - case Alternate: return u.alternate.process (c); - case Ligature: return u.ligature.process (c); - case Context: return u.context.process (c); - case ChainContext: return u.chainContext.process (c); - case Extension: return u.extension.process (c); - case ReverseChainSingle: return u.reverseChainContextSingle.process (c); - default: return c->default_return_value (); + case Single: return TRACE_RETURN (u.single.process (c)); + case Multiple: return TRACE_RETURN (u.multiple.process (c)); + case Alternate: return TRACE_RETURN (u.alternate.process (c)); + case Ligature: return TRACE_RETURN (u.ligature.process (c)); + case Context: return TRACE_RETURN (u.context.process (c)); + case ChainContext: return TRACE_RETURN (u.chainContext.process (c)); + case Extension: return TRACE_RETURN (u.extension.process (c)); + case ReverseChainSingle: return TRACE_RETURN (u.reverseChainContextSingle.process (c)); + default: return TRACE_RETURN (c->default_return_value ()); } } @@ -1124,14 +1130,15 @@ struct SubstLookup : Lookup template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (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).process (c, lookup_type); if (c->stop_sublookup_iteration (r)) - return r; + return TRACE_RETURN (r); } - return c->default_return_value (); + return TRACE_RETURN (c->default_return_value ()); } template diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index 1fbfabd8..6be9238c 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh @@ -1213,11 +1213,12 @@ struct Context template inline typename context_t::return_t process (context_t *c) const { + TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - case 2: return c->process (u.format2); - case 3: return c->process (u.format3); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + case 2: return TRACE_RETURN (c->process (u.format2)); + case 3: return TRACE_RETURN (c->process (u.format3)); + default:return TRACE_RETURN (c->default_return_value ()); } } @@ -1716,10 +1717,10 @@ struct ChainContext { TRACE_PROCESS (this); switch (u.format) { - case 1: return c->process (u.format1); - case 2: return c->process (u.format2); - case 3: return c->process (u.format3); - default:return c->default_return_value (); + case 1: return TRACE_RETURN (c->process (u.format1)); + case 2: return TRACE_RETURN (c->process (u.format2)); + case 3: return TRACE_RETURN (c->process (u.format3)); + default:return TRACE_RETURN (c->default_return_value ()); } } -- GitLab