[ot] Minor shuffling code around
authorBehdad Esfahbod <behdad@behdad.org>
Thu, 11 Feb 2016 09:27:41 +0000 (16:27 +0700)
committerBehdad Esfahbod <behdad@behdad.org>
Thu, 11 Feb 2016 09:27:41 +0000 (16:27 +0700)
src/hb-ot-layout-gpos-table.hh
src/hb-ot-shape.cc

index 038a5c68c0f593281210473c592a8af7468c7600..8795c8ab173011cf1326c55655259b135230d194 100644 (file)
@@ -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;
index 656e3563f4ce5bff58a22da8ad0432b0d08a2cb8..10c52cfafbdce6b115b48f4f345b180ba0eedac1 100644 (file)
@@ -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);