diff options
author | Eli Zaretskii <eliz@gnu.org> | 2020-04-09 11:21:18 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2020-04-09 11:21:18 +0300 |
commit | d5750af151853f13bf3481876d487741eebe36b7 (patch) | |
tree | f108736980edac8a3ec52d13309b804f60c6b137 | |
parent | 18d1bc0a09db280cc1653706f7f8022786f77c94 (diff) | |
download | emacs-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.c | 2 |
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)) { |