[morx] Remove deleted-glyph at the end of processing
This commit is contained in:
parent
1bb8ed86d6
commit
5c272e3613
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue