Fix bug #9221 with memory leak in bidi display.
commit5009803bda518652cc6f4b9fba02c0aed185c2a3
authorEli Zaretskii <eliz@gnu.org>
Fri, 5 Aug 2011 11:04:44 +0000 (5 14:04 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 5 Aug 2011 11:04:44 +0000 (5 14:04 +0300)
tree5d0443887455129a793cadd52f03f740ec5230da
parente2e2423bf2fe3cda60737f20aeafaff64d38b35e
parent35928349678bc6ed8f621fe7d4da6a9a3fb3579d
Fix bug #9221 with memory leak in bidi display.
Add code to monitor memory allocation for bidi cache shelving.

 src/xdisp.c (display_line): Release buffer allocated for shelved bidi
 cache.
 src/bidi.c (bidi_shelve_cache, bidi_unshelve_cache): Track total
 amount allocated this far in `bidi_cache_total_alloc'.
 (bidi_unshelve_cache): Accept an additional argument JUST_FREE; if
 non-zero, only free the data buffer without restoring the cache
 contents.  All callers changed.
 src/dispextern.h (bidi_unshelve_cache): Update prototype.
 src/xdisp.c (SAVE_IT, pos_visible_p, move_it_in_display_line_to)
 (move_it_in_display_line, move_it_to)
 (move_it_vertically_backward, move_it_by_lines): Replace the call
 to xfree to an equivalent call to bidi_unshelve_cache.
 (move_it_in_display_line_to): Fix logic of returning
 MOVE_POS_MATCH_OR_ZV in the bidi case.
src/ChangeLog
src/bidi.c
src/dispextern.h
src/dispnew.c
src/indent.c
src/window.c
src/xdisp.c