diff options
| author | Stefan Monnier | 2023-03-03 19:13:03 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2023-03-03 19:13:03 -0500 |
| commit | adc04ad52474113e5a540b33fbefd389b861a89f (patch) | |
| tree | 87974bba339a346947db90e0af131ab56bfd5a1a /src | |
| parent | b3e930d328e2e9a3da4bf5b6c109928532326c06 (diff) | |
| download | emacs-adc04ad52474113e5a540b33fbefd389b861a89f.tar.gz emacs-adc04ad52474113e5a540b33fbefd389b861a89f.zip | |
* src/intervals.c (set_intervals_multibyte_1): Fix bug#61887
When `total_length` is 0 there should be no subtree at all, but
`delete_interval` only deletes one interval, so make sure we don't end
up with some stale child of `i`.
Diffstat (limited to 'src')
| -rw-r--r-- | src/intervals.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/intervals.c b/src/intervals.c index 75e37a8c90c..ee976fb1035 100644 --- a/src/intervals.c +++ b/src/intervals.c | |||
| @@ -2333,6 +2333,9 @@ set_intervals_multibyte_1 (INTERVAL i, bool multi_flag, | |||
| 2333 | 2333 | ||
| 2334 | if (TOTAL_LENGTH (i) == 0) | 2334 | if (TOTAL_LENGTH (i) == 0) |
| 2335 | { | 2335 | { |
| 2336 | /* Delete the whole subtree. */ | ||
| 2337 | i->left = NULL; | ||
| 2338 | i->right = NULL; | ||
| 2336 | delete_interval (i); | 2339 | delete_interval (i); |
| 2337 | return; | 2340 | return; |
| 2338 | } | 2341 | } |