summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2020-04-09 11:21:18 +0300
committerEli Zaretskii <eliz@gnu.org>2020-04-09 11:21:18 +0300
commitd5750af151853f13bf3481876d487741eebe36b7 (patch)
treef108736980edac8a3ec52d13309b804f60c6b137
parent18d1bc0a09db280cc1653706f7f8022786f77c94 (diff)
downloademacs-d5750af151853f13bf3481876d487741eebe36b7.tar.gz
Avoid assertion violation in intervals.c
* src/intervals.c (delete_interval): Allow negative values of LENGTH (i). This happens when delete_interval is called from set_intervals_multibyte_1, because the caller zeroes out the total_length field of the interval to be deleted. See https://lists.gnu.org/archive/html/emacs-devel/2020-04/msg00131.html for more details. See also a related old discussion at https://lists.gnu.org/archive/html/emacs-devel/2012-07/msg00399.html.
-rw-r--r--src/intervals.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/intervals.c b/src/intervals.c
index a66594ceea2..585ef18bd2e 100644
--- a/src/intervals.c
+++ b/src/intervals.c
@@ -1187,7 +1187,7 @@ delete_interval (register INTERVAL i)
register INTERVAL parent;
ptrdiff_t amt = LENGTH (i);
- eassert (amt == 0); /* Only used on zero-length intervals now. */
+ eassert (amt <= 0); /* Only used on zero total-length intervals now. */
if (ROOT_INTERVAL_P (i))
{