Avoid assertion violations in Rmail due to newline cache

src/search.c (find_newline): Avoid assertion violations in
 CHAR_TO_BYTE when a portion of the buffer was deleted and we look
 for newlines near the end of the buffer.  This happens in Rmail
 hen JIT font-lock fontifies a newly displayed portion of the
 buffer.
This commit is contained in:
Eli Zaretskii 2015-02-28 12:33:32 +02:00
parent 1b0ebbdb56
commit f1601063f2
2 changed files with 14 additions and 0 deletions

View file

@ -1,3 +1,11 @@
2015-02-28 Eli Zaretskii <eliz@gnu.org>
* search.c (find_newline): Avoid assertion violations in
CHAR_TO_BYTE when a portion of the buffer was deleted and we look
for newlines near the end of the buffer. This happens in Rmail
hen JIT font-lock fontifies a newly displayed portion of the
buffer.
2015-02-23 Eli Zaretskii <eliz@gnu.org>
* w32fns.c (Fw32__menu_bar_in_use): New internal function.

View file

@ -731,6 +731,12 @@ find_newline (ptrdiff_t start, ptrdiff_t start_byte, ptrdiff_t end,
start, &next_change);
if (result)
{
/* When the cache revalidation is deferred,
next-change might point beyond ZV, which will
cause assertion violation in CHAR_TO_BYTE below.
Limit next_change to ZV to avoid that. */
if (next_change > ZV)
next_change = ZV;
start = next_change;
lim1 = next_change = end;
}