From: Behdad Esfahbod Date: Fri, 3 May 2013 22:10:10 +0000 (-0400) Subject: [OTLayout] Use is_inplace() when flipping buffers X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9d9e72e94e7914f82ce62a304e7242f79c13edaf;p=platform%2Fupstream%2FlibHarfBuzzSharp.git [OTLayout] Use is_inplace() when flipping buffers --- diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc index 145cf8f..355f51c 100644 --- a/src/hb-ot-layout.cc +++ b/src/hb-ot-layout.cc @@ -804,6 +804,8 @@ apply_string (OT::hb_apply_context_t *c, const hb_ot_layout_lookup_accelerator_t &accel) { bool ret = false; + OT::hb_is_inplace_context_t inplace_c (c->face); + bool inplace = lookup.is_inplace (&inplace_c); if (unlikely (!c->buffer->len || !c->lookup_mask)) return false; @@ -826,8 +828,13 @@ apply_string (OT::hb_apply_context_t *c, else c->buffer->next_glyph (); } - if (ret && Proxy::table_index == 0) + if (ret) + { + if (!inplace) c->buffer->swap_buffers (); + else + assert (!c->buffer->has_separate_output ()); + } } else {