summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog8
-rw-r--r--src/search.c6
2 files changed, 14 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a2ac5389f20..ca5f85a0157 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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.
diff --git a/src/search.c b/src/search.c
index eec642ecb20..73641813604 100644
--- a/src/search.c
+++ b/src/search.c
@@ -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;
}