summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2016-02-11 16:27:41 +0700
committerBehdad Esfahbod <behdad@behdad.org>2016-02-11 16:27:41 +0700
commit8474231567a08873cc5e0aa08fea60316a04c27e (patch)
treee4e55658927f87d3737c6a6ea5d37d0a6af06137
parentb0b11614e9fb9ecd1faae28b0ed71ac6bf5c1266 (diff)
[ot] Minor shuffling code around
-rw-r--r--src/hb-ot-layout-gpos-table.hh2
-rw-r--r--src/hb-ot-shape.cc13
2 files changed, 8 insertions, 7 deletions
diff --git a/src/hb-ot-layout-gpos-table.hh b/src/hb-ot-layout-gpos-table.hh
index 038a5c68..8795c8ab 100644
--- a/src/hb-ot-layout-gpos-table.hh
+++ b/src/hb-ot-layout-gpos-table.hh
@@ -1601,8 +1601,6 @@ fix_mark_attachment (hb_glyph_position_t *pos, unsigned int i, hb_direction_t di
void
GPOS::position_start (hb_font_t *font HB_UNUSED, hb_buffer_t *buffer)
{
- buffer->clear_positions ();
-
unsigned int count = buffer->len;
for (unsigned int i = 0; i < count; i++)
buffer->pos[i].attach_chain() = buffer->pos[i].attach_type() = 0;
diff --git a/src/hb-ot-shape.cc b/src/hb-ot-shape.cc
index 656e3563..10c52cfa 100644
--- a/src/hb-ot-shape.cc
+++ b/src/hb-ot-shape.cc
@@ -665,9 +665,12 @@ hb_ot_position_default (hb_ot_shape_context_t *c)
static inline bool
hb_ot_position_complex (hb_ot_shape_context_t *c)
{
+ hb_ot_layout_position_start (c->font, c->buffer);
+
bool ret = false;
unsigned int count = c->buffer->len;
bool has_positioning = (bool) hb_ot_layout_has_positioning (c->face);
+
/* If the font has no GPOS, AND, no fallback positioning will
* happen, AND, direction is forward, then when zeroing mark
* widths, we shift the mark with it, such that the mark
@@ -730,22 +733,22 @@ hb_ot_position_complex (hb_ot_shape_context_t *c)
break;
}
+ hb_ot_zero_width_default_ignorables (c);
+
+ hb_ot_layout_position_finish (c->font, c->buffer);
+
return ret;
}
static inline void
hb_ot_position (hb_ot_shape_context_t *c)
{
- hb_ot_layout_position_start (c->font, c->buffer);
+ c->buffer->clear_positions ();
hb_ot_position_default (c);
hb_bool_t fallback = !hb_ot_position_complex (c);
- hb_ot_zero_width_default_ignorables (c);
-
- hb_ot_layout_position_finish (c->font, c->buffer);
-
if (fallback && c->plan->shaper->fallback_position)
_hb_ot_shape_fallback_position (c->plan, c->font, c->buffer);