[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
|
inline void apply (hb_aat_apply_context_t *c) const
|
||||||
{
|
{
|
||||||
if (unlikely (!c->buffer->successful)) return;
|
if (unlikely (!c->buffer->successful)) return;
|
||||||
|
@ -1010,6 +1026,7 @@ struct morx
|
||||||
if (unlikely (!c->buffer->successful)) return;
|
if (unlikely (!c->buffer->successful)) return;
|
||||||
chain = &StructAfter<Chain> (*chain);
|
chain = &StructAfter<Chain> (*chain);
|
||||||
}
|
}
|
||||||
|
remove_deleted_glyphs (c->buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool sanitize (hb_sanitize_context_t *c) const
|
inline bool sanitize (hb_sanitize_context_t *c) const
|
||||||
|
|
Loading…
Reference in New Issue