summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2015-08-18 14:36:43 +0100
committerBehdad Esfahbod <behdad@behdad.org>2015-08-18 14:36:43 +0100
commit2c8b3b2e5312c9858584f568b1528c57e5bb8a10 (patch)
tree86c35aa181cd4e38ea32e079a8fe5f81ea8078ab
parent50ad7788eeb7160caef4ec78e65c7c630e601b06 (diff)
downloadharfbuzz-2c8b3b2e5312c9858584f568b1528c57e5bb8a10.tar.gz
[debug] Print lookup index in debug-apply output
-rw-r--r--src/hb-ot-layout-gpos-table.hh5
-rw-r--r--src/hb-ot-layout-gsub-table.hh5
-rw-r--r--src/hb-ot-layout-gsubgpos-private.hh7
-rw-r--r--src/hb-ot-layout.cc3
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 69609d06..da9506c7 100644
--- a/src/hb-ot-layout-gpos-table.hh
+++ b/src/hb-ot-layout-gpos-table.hh
@@ -1568,8 +1568,11 @@ template <typename context_t>
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 ad1339dc..ff204847 100644
--- a/src/hb-ot-layout-gsub-table.hh
+++ b/src/hb-ot-layout-gsub-table.hh
@@ -1311,8 +1311,11 @@ template <typename context_t>
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 5033a223..3e74dfee 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<HB_DEBUG_APPLY, bool> 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 6fe7b6ca..5a573dd3 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<Proxy> (&c,