(bidi_cache_ensure_space, bidi_shelve_cache): Use it.
(bidi_cache_ensure_space): Avoid integer overflow when allocating.
+ * bidi.c (bidi_cache_shrink):
* buffer.c (overlays_at, overlays_in, record_overlay_string)
(overlay_strings):
Don't update size of array until after memory allocation succeeds,
{
if (bidi_cache_size > BIDI_CACHE_CHUNK)
{
- bidi_cache_size = BIDI_CACHE_CHUNK;
bidi_cache =
- (struct bidi_it *) xrealloc (bidi_cache, bidi_cache_size * elsz);
+ (struct bidi_it *) xrealloc (bidi_cache, BIDI_CACHE_CHUNK * elsz);
+ bidi_cache_size = BIDI_CACHE_CHUNK;
}
bidi_cache_reset ();
}