emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-27 d5750af: Avoid assertion violation in intervals.c


From: Eli Zaretskii
Subject: emacs-27 d5750af: Avoid assertion violation in intervals.c
Date: Thu, 9 Apr 2020 04:22:40 -0400 (EDT)

branch: emacs-27
commit d5750af151853f13bf3481876d487741eebe36b7
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    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.
---
 src/intervals.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intervals.c b/src/intervals.c
index a66594c..585ef18 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))
     {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]