[OT] Fix ReverseChainingSubst

We should make it clear that we don't want output buffer in this case,
otherwise buffer->backtrack_len() would be wrong.
This commit is contained in:
Behdad Esfahbod 2012-10-29 22:02:45 -07:00
parent 2616689d15
commit 0bc7a38463
3 changed files with 15 additions and 0 deletions

View File

@ -153,6 +153,7 @@ struct hb_buffer_t {
HB_INTERNAL void guess_properties (void);
HB_INTERNAL void swap_buffers (void);
HB_INTERNAL void remove_output (void);
HB_INTERNAL void clear_output (void);
HB_INTERNAL void clear_positions (void);

View File

@ -182,6 +182,19 @@ hb_buffer_t::add (hb_codepoint_t codepoint,
len++;
}
void
hb_buffer_t::remove_output (void)
{
if (unlikely (hb_object_is_inert (this)))
return;
have_output = false;
have_positions = false;
out_len = 0;
out_info = info;
}
void
hb_buffer_t::clear_output (void)
{

View File

@ -1343,6 +1343,7 @@ struct SubstLookup : Lookup
else
{
/* in-place backward substitution */
c->buffer->remove_output ();
c->buffer->idx = c->buffer->len - 1;
do
{