[debug] Print lookup index in debug-apply output

pull/129/head
Behdad Esfahbod 9 years ago
parent 50ad7788ee
commit 2c8b3b2e53
  1. 5
      src/hb-ot-layout-gpos-table.hh
  2. 5
      src/hb-ot-layout-gsub-table.hh
  3. 7
      src/hb-ot-layout-gsubgpos-private.hh
  4. 3
      src/hb-ot-layout.cc

@ -1568,8 +1568,11 @@ template <typename context_t>
const GPOS &gpos = *(hb_ot_layout_from_face (c->face)->gpos); const GPOS &gpos = *(hb_ot_layout_from_face (c->face)->gpos);
const PosLookup &l = gpos.get_lookup (lookup_index); const PosLookup &l = gpos.get_lookup (lookup_index);
unsigned int saved_lookup_props = c->lookup_props; 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); bool ret = l.dispatch (c);
c->set_lookup_index (saved_lookup_index);
c->set_lookup_props (saved_lookup_props); c->set_lookup_props (saved_lookup_props);
return ret; return ret;
} }

@ -1311,8 +1311,11 @@ template <typename context_t>
const GSUB &gsub = *(hb_ot_layout_from_face (c->face)->gsub); const GSUB &gsub = *(hb_ot_layout_from_face (c->face)->gsub);
const SubstLookup &l = gsub.get_lookup (lookup_index); const SubstLookup &l = gsub.get_lookup (lookup_index);
unsigned int saved_lookup_props = c->lookup_props; 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); bool ret = l.dispatch (c);
c->set_lookup_index (saved_lookup_index);
c->set_lookup_props (saved_lookup_props); c->set_lookup_props (saved_lookup_props);
return ret; return ret;
} }

@ -266,7 +266,8 @@ struct hb_add_coverage_context_t
#define TRACE_APPLY(this) \ #define TRACE_APPLY(this) \
hb_auto_trace_t<HB_DEBUG_APPLY, bool> trace \ hb_auto_trace_t<HB_DEBUG_APPLY, bool> trace \
(&c->debug_depth, c->get_name (), this, HB_FUNC, \ (&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 struct hb_apply_context_t
{ {
@ -481,6 +482,7 @@ struct hb_apply_context_t
const GDEF &gdef; const GDEF &gdef;
bool has_glyph_classes; bool has_glyph_classes;
skipping_iterator_t iter_input, iter_context; skipping_iterator_t iter_input, iter_context;
unsigned int lookup_index;
unsigned int debug_depth; unsigned int debug_depth;
@ -499,12 +501,13 @@ struct hb_apply_context_t
has_glyph_classes (gdef.has_glyph_classes ()), has_glyph_classes (gdef.has_glyph_classes ()),
iter_input (), iter_input (),
iter_context (), iter_context (),
lookup_index ((unsigned int) -1),
debug_depth (0) {} debug_depth (0) {}
inline void set_lookup_mask (hb_mask_t mask) { lookup_mask = mask; } 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_auto_zwj (bool auto_zwj_) { auto_zwj = auto_zwj_; }
inline void set_recurse_func (recurse_func_t func) { recurse_func = func; } 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_) inline void set_lookup_props (unsigned int lookup_props_)
{ {
lookup_props = lookup_props_; lookup_props = lookup_props_;

@ -959,7 +959,7 @@ apply_string (OT::hb_apply_context_t *c,
if (unlikely (!buffer->len || !c->lookup_mask)) if (unlikely (!buffer->len || !c->lookup_mask))
return; return;
c->set_lookup (lookup); c->set_lookup_props (lookup.get_props ());
if (likely (!lookup.is_reverse ())) 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++) for (; i < stage->last_lookup; i++)
{ {
unsigned int lookup_index = lookups[table_index][i].index; 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_lookup_mask (lookups[table_index][i].mask);
c.set_auto_zwj (lookups[table_index][i].auto_zwj); c.set_auto_zwj (lookups[table_index][i].auto_zwj);
apply_string<Proxy> (&c, apply_string<Proxy> (&c,

Loading…
Cancel
Save