m[buffer] In hb_buffer_append() don't change until allocation success
This commit is contained in:
parent
0f61a6213a
commit
21433fa563
|
@ -1772,11 +1772,6 @@ hb_buffer_append (hb_buffer_t *buffer,
|
|||
if (start == end)
|
||||
return;
|
||||
|
||||
if (!buffer->len)
|
||||
buffer->content_type = source->content_type;
|
||||
if (!buffer->have_positions && source->have_positions)
|
||||
buffer->clear_positions ();
|
||||
|
||||
if (buffer->len + (end - start) < buffer->len) /* Overflows. */
|
||||
{
|
||||
buffer->successful = false;
|
||||
|
@ -1788,6 +1783,11 @@ hb_buffer_append (hb_buffer_t *buffer,
|
|||
if (unlikely (!buffer->successful))
|
||||
return;
|
||||
|
||||
if (!orig_len)
|
||||
buffer->content_type = source->content_type;
|
||||
if (!buffer->have_positions && source->have_positions)
|
||||
buffer->clear_positions ();
|
||||
|
||||
memcpy (buffer->info + orig_len, source->info + start, (end - start) * sizeof (buffer->info[0]));
|
||||
if (buffer->have_positions)
|
||||
memcpy (buffer->pos + orig_len, source->pos + start, (end - start) * sizeof (buffer->pos[0]));
|
||||
|
|
Loading…
Reference in New Issue