From: Eli Zaretskii Date: Thu, 9 Apr 2020 08:21:18 +0000 (+0300) Subject: Avoid assertion violation in intervals.c X-Git-Tag: emacs-27.0.91~33 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d5750af151;p=emacs.git 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. --- 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)) {