diff options
| author | Eli Zaretskii | 2020-04-09 11:21:18 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2020-04-09 11:21:18 +0300 |
| commit | d5750af151853f13bf3481876d487741eebe36b7 (patch) | |
| tree | f108736980edac8a3ec52d13309b804f60c6b137 /src | |
| parent | 18d1bc0a09db280cc1653706f7f8022786f77c94 (diff) | |
| download | emacs-d5750af151853f13bf3481876d487741eebe36b7.tar.gz emacs-d5750af151853f13bf3481876d487741eebe36b7.zip | |
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.
Diffstat (limited to 'src')
| -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) | |||
| 1187 | register INTERVAL parent; | 1187 | register INTERVAL parent; |
| 1188 | ptrdiff_t amt = LENGTH (i); | 1188 | ptrdiff_t amt = LENGTH (i); |
| 1189 | 1189 | ||
| 1190 | eassert (amt == 0); /* Only used on zero-length intervals now. */ | 1190 | eassert (amt <= 0); /* Only used on zero total-length intervals now. */ |
| 1191 | 1191 | ||
| 1192 | if (ROOT_INTERVAL_P (i)) | 1192 | if (ROOT_INTERVAL_P (i)) |
| 1193 | { | 1193 | { |