From 2c8b3b2e5312c9858584f568b1528c57e5bb8a10 Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Tue, 18 Aug 2015 14:36:43 +0100 Subject: [PATCH] [debug] Print lookup index in debug-apply output --- src/hb-ot-layout-gpos-table.hh | 5 ++++- src/hb-ot-layout-gsub-table.hh | 5 ++++- src/hb-ot-layout-gsubgpos-private.hh | 7 +++++-- src/hb-ot-layout.cc | 3 ++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh index 69609d06c..da9506c76 100644 --- a/src/hb-ot-layout-gpos-table.hh +++ b/src/hb-ot-layout-gpos-table.hh @@ -1568,8 +1568,11 @@ template const GPOS &gpos = *(hb_ot_layout_from_face (c->face)->gpos); const PosLookup &l = gpos.get_lookup (lookup_index); unsigned int saved_lookup_props = c->lookup_props; - c->set_lookup (l); + unsigned int saved_lookup_index = c->lookup_index; + c->set_lookup_index (lookup_index); + c->set_lookup_props (l.get_props ()); bool ret = l.dispatch (c); + c->set_lookup_index (saved_lookup_index); c->set_lookup_props (saved_lookup_props); return ret; } diff --git a/src/hb-ot-layout-gsub-table.hh b/src/hb-ot-layout-gsub-table.hh index ad1339dc6..ff2048470 100644 --- a/src/hb-ot-layout-gsub-table.hh +++ b/src/hb-ot-layout-gsub-table.hh @@ -1311,8 +1311,11 @@ template const GSUB &gsub = *(hb_ot_layout_from_face (c->face)->gsub); const SubstLookup &l = gsub.get_lookup (lookup_index); unsigned int saved_lookup_props = c->lookup_props; - c->set_lookup (l); + unsigned int saved_lookup_index = c->lookup_index; + c->set_lookup_index (lookup_index); + c->set_lookup_props (l.get_props ()); bool ret = l.dispatch (c); + c->set_lookup_index (saved_lookup_index); c->set_lookup_props (saved_lookup_props); return ret; } diff --git a/src/hb-ot-layout-gsubgpos-private.hh b/src/hb-ot-layout-gsubgpos-private.hh index 5033a223d..3e74dfeee 100644 --- a/src/hb-ot-layout-gsubgpos-private.hh +++ b/src/hb-ot-layout-gsubgpos-private.hh @@ -266,7 +266,8 @@ struct hb_add_coverage_context_t #define TRACE_APPLY(this) \ hb_auto_trace_t trace \ (&c->debug_depth, c->get_name (), this, HB_FUNC, \ - "idx %d codepoint %u", c->buffer->idx, c->buffer->cur().codepoint); + "idx %d gid %u lookup %d", \ + c->buffer->idx, c->buffer->cur().codepoint, (int) c->lookup_index); struct hb_apply_context_t { @@ -481,6 +482,7 @@ struct hb_apply_context_t const GDEF &gdef; bool has_glyph_classes; skipping_iterator_t iter_input, iter_context; + unsigned int lookup_index; unsigned int debug_depth; @@ -499,12 +501,13 @@ struct hb_apply_context_t has_glyph_classes (gdef.has_glyph_classes ()), iter_input (), iter_context (), + lookup_index ((unsigned int) -1), debug_depth (0) {} inline void set_lookup_mask (hb_mask_t mask) { lookup_mask = mask; } inline void set_auto_zwj (bool auto_zwj_) { auto_zwj = auto_zwj_; } inline void set_recurse_func (recurse_func_t func) { recurse_func = func; } - inline void set_lookup (const Lookup &l) { set_lookup_props (l.get_props ()); } + inline void set_lookup_index (unsigned int lookup_index_) { lookup_index = lookup_index_; } inline void set_lookup_props (unsigned int lookup_props_) { lookup_props = lookup_props_; diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc index 6fe7b6ca0..5a573dd34 100644 --- a/src/hb-ot-layout.cc +++ b/src/hb-ot-layout.cc @@ -959,7 +959,7 @@ apply_string (OT::hb_apply_context_t *c, if (unlikely (!buffer->len || !c->lookup_mask)) return; - c->set_lookup (lookup); + c->set_lookup_props (lookup.get_props ()); if (likely (!lookup.is_reverse ())) { @@ -1011,6 +1011,7 @@ inline void hb_ot_map_t::apply (const Proxy &proxy, for (; i < stage->last_lookup; i++) { unsigned int lookup_index = lookups[table_index][i].index; + c.set_lookup_index (lookup_index); c.set_lookup_mask (lookups[table_index][i].mask); c.set_auto_zwj (lookups[table_index][i].auto_zwj); apply_string (&c,