Revert "Make sure we make progress in OOM situations"
This reverts commit68b507a3c3
. Commitabadc1717d
provides a better fix for this.
This commit is contained in:
parent
e1118aeac3
commit
18e1c6b6ef
|
@ -175,12 +175,15 @@ struct hb_buffer_t {
|
|||
{
|
||||
if (unlikely (out_info != info || out_len != idx)) {
|
||||
if (unlikely (!make_room_for (1, 1)))
|
||||
goto done;
|
||||
{
|
||||
idx++; // So we don't hang indefinitely...
|
||||
return;
|
||||
}
|
||||
out_info[out_len] = info[idx];
|
||||
}
|
||||
out_len++;
|
||||
}
|
||||
done:
|
||||
|
||||
idx++;
|
||||
}
|
||||
|
||||
|
|
|
@ -324,9 +324,7 @@ hb_buffer_t::replace_glyphs (unsigned int num_in,
|
|||
unsigned int num_out,
|
||||
const uint32_t *glyph_data)
|
||||
{
|
||||
if (unlikely (!make_room_for (num_in, num_out)))
|
||||
goto done;
|
||||
{
|
||||
if (unlikely (!make_room_for (num_in, num_out))) return;
|
||||
|
||||
merge_clusters (idx, idx + num_in);
|
||||
|
||||
|
@ -339,50 +337,39 @@ hb_buffer_t::replace_glyphs (unsigned int num_in,
|
|||
pinfo++;
|
||||
}
|
||||
|
||||
out_len += num_out;
|
||||
}
|
||||
done:
|
||||
idx += num_in;
|
||||
out_len += num_out;
|
||||
}
|
||||
|
||||
void
|
||||
hb_buffer_t::output_glyph (hb_codepoint_t glyph_index)
|
||||
{
|
||||
if (unlikely (!make_room_for (0, 1)))
|
||||
goto done;
|
||||
if (unlikely (!make_room_for (0, 1))) return;
|
||||
|
||||
out_info[out_len] = info[idx];
|
||||
out_info[out_len].codepoint = glyph_index;
|
||||
|
||||
out_len++;
|
||||
done:
|
||||
;
|
||||
}
|
||||
|
||||
void
|
||||
hb_buffer_t::output_info (const hb_glyph_info_t &glyph_info)
|
||||
{
|
||||
if (unlikely (!make_room_for (0, 1)))
|
||||
goto done;
|
||||
if (unlikely (!make_room_for (0, 1))) return;
|
||||
|
||||
out_info[out_len] = glyph_info;
|
||||
|
||||
out_len++;
|
||||
done:
|
||||
;
|
||||
}
|
||||
|
||||
void
|
||||
hb_buffer_t::copy_glyph (void)
|
||||
{
|
||||
if (unlikely (!make_room_for (0, 1)))
|
||||
goto done;
|
||||
if (unlikely (!make_room_for (0, 1))) return;
|
||||
|
||||
out_info[out_len] = info[idx];
|
||||
|
||||
out_len++;
|
||||
done:
|
||||
;
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -400,7 +387,7 @@ hb_buffer_t::move_to (unsigned int i)
|
|||
if (out_len < i)
|
||||
{
|
||||
unsigned int count = i - out_len;
|
||||
if (unlikely (!make_room_for (count, count))) return false; // XXX verify bailout
|
||||
if (unlikely (!make_room_for (count, count))) return false;
|
||||
|
||||
memmove (out_info + out_len, info + idx, count * sizeof (out_info[0]));
|
||||
idx += count;
|
||||
|
@ -427,15 +414,13 @@ void
|
|||
hb_buffer_t::replace_glyph (hb_codepoint_t glyph_index)
|
||||
{
|
||||
if (unlikely (out_info != info || out_len != idx)) {
|
||||
if (unlikely (!make_room_for (1, 1)))
|
||||
goto out;
|
||||
if (unlikely (!make_room_for (1, 1))) return;
|
||||
out_info[out_len] = info[idx];
|
||||
}
|
||||
out_info[out_len].codepoint = glyph_index;
|
||||
|
||||
out_len++;
|
||||
out:
|
||||
idx++;
|
||||
out_len++;
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue