提交 9d9e72e9 编写于 作者: B Behdad Esfahbod

[OTLayout] Use is_inplace() when flipping buffers

上级 45f3d980
...@@ -804,6 +804,8 @@ apply_string (OT::hb_apply_context_t *c, ...@@ -804,6 +804,8 @@ apply_string (OT::hb_apply_context_t *c,
const hb_ot_layout_lookup_accelerator_t &accel) const hb_ot_layout_lookup_accelerator_t &accel)
{ {
bool ret = false; 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)) if (unlikely (!c->buffer->len || !c->lookup_mask))
return false; return false;
...@@ -826,8 +828,13 @@ apply_string (OT::hb_apply_context_t *c, ...@@ -826,8 +828,13 @@ apply_string (OT::hb_apply_context_t *c,
else else
c->buffer->next_glyph (); c->buffer->next_glyph ();
} }
if (ret && Proxy::table_index == 0) if (ret)
{
if (!inplace)
c->buffer->swap_buffers (); c->buffer->swap_buffers ();
else
assert (!c->buffer->has_separate_output ());
}
} }
else else
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册