提交 5c272e36 编写于 作者: B Behdad Esfahbod

[morx] Remove deleted-glyph at the end of processing

上级 1bb8ed86
......@@ -998,6 +998,22 @@ struct morx
}
}
inline static void remove_deleted_glyphs (hb_buffer_t *buffer)
{
if (unlikely (!buffer->successful)) return;
buffer->clear_output ();
for (buffer->idx = 0; buffer->idx < buffer->len && buffer->successful;)
{
if (unlikely (buffer->cur().codepoint == DELETED_GLYPH))
buffer->skip_glyph ();
else
buffer->next_glyph ();
}
if (likely (buffer->successful))
buffer->swap_buffers ();
}
inline void apply (hb_aat_apply_context_t *c) const
{
if (unlikely (!c->buffer->successful)) return;
......@@ -1010,6 +1026,7 @@ struct morx
if (unlikely (!c->buffer->successful)) return;
chain = &StructAfter<Chain> (*chain);
}
remove_deleted_glyphs (c->buffer);
}
inline bool sanitize (hb_sanitize_context_t *c) const
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册