* intervals.c (offset_intervals): Tell GCC not to worry about length overflow

when negating a negative length.
This commit is contained in:
Paul Eggert 2011-04-20 01:30:52 -07:00
parent c20db43fef
commit 37aa2f8525
2 changed files with 7 additions and 1 deletions

View file

@ -6,6 +6,8 @@
(CHECK_TOTAL_LENGTH): Remove cast to EMACS_INT; no longer needed.
* intervals.c (interval_deletion_adjustment): Now returns EMACS_INT.
All uses changed.
(offset_intervals): Tell GCC not to worry about length overflow
when negating a negative length.
* alloc.c (overrun_check_malloc, overrun_check_realloc): Now static.
(overrun_check_free): Likewise.

View file

@ -39,6 +39,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include <setjmp.h>
#include <intprops.h>
#include "lisp.h"
#include "intervals.h"
#include "buffer.h"
@ -1435,7 +1436,10 @@ offset_intervals (struct buffer *buffer, EMACS_INT start, EMACS_INT length)
if (length > 0)
adjust_intervals_for_insertion (BUF_INTERVALS (buffer), start, length);
else
adjust_intervals_for_deletion (buffer, start, -length);
{
IF_LINT (if (length < - TYPE_MAXIMUM (EMACS_INT)) abort ();)
adjust_intervals_for_deletion (buffer, start, -length);
}
}
/* Merge interval I with its lexicographic successor. The resulting