X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/032f74518a71a7fe0afd2e7d0eee11bfb7ae90d9..657e54f709cb435a5ca93f0184e214dd9e586f29:/src/intervals.c diff --git a/src/intervals.c b/src/intervals.c index 671b2a3d52..703c0cefbd 100644 --- a/src/intervals.c +++ b/src/intervals.c @@ -1,5 +1,5 @@ /* Code for doing intervals. - Copyright (C) 1993-1995, 1997-1998, 2001-2013 Free Software + Copyright (C) 1993-1995, 1997-1998, 2001-2014 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -40,8 +40,6 @@ along with GNU Emacs. If not, see . */ #include -#define INTERVALS_INLINE EXTERN_INLINE - #include #include "lisp.h" #include "intervals.h" @@ -62,16 +60,7 @@ static INTERVAL reproduce_tree (INTERVAL, INTERVAL); /* Utility functions for intervals. */ -/* Use these functions to set Lisp_Object - or pointer slots of struct interval. */ - -static void -set_interval_object (INTERVAL i, Lisp_Object obj) -{ - eassert (BUFFERP (obj) || STRINGP (obj)); - i->up_obj = 1; - i->up.obj = obj; -} +/* Use these functions to set pointer slots of struct interval. */ static void set_interval_left (INTERVAL i, INTERVAL left) @@ -678,6 +667,7 @@ find_interval (register INTERVAL tree, register ptrdiff_t position) while (1) { + eassert (tree); if (relative_position < LEFT_TOTAL_LENGTH (tree)) { tree = tree->left; @@ -1406,10 +1396,7 @@ offset_intervals (struct buffer *buffer, ptrdiff_t start, ptrdiff_t length) adjust_intervals_for_insertion (buffer_intervals (buffer), start, length); else - { - lint_assume (- TYPE_MAXIMUM (ptrdiff_t) <= length); - adjust_intervals_for_deletion (buffer, start, -length); - } + adjust_intervals_for_deletion (buffer, start, -length); } /* Merge interval I with its lexicographic successor. The resulting @@ -1794,8 +1781,7 @@ temp_set_point_both (struct buffer *buffer, ptrdiff_t charpos, ptrdiff_t bytepos) { /* In a single-byte buffer, the two positions must be equal. */ - if (BUF_ZV (buffer) == BUF_ZV_BYTE (buffer)) - eassert (charpos == bytepos); + eassert (BUF_ZV (buffer) != BUF_ZV_BYTE (buffer) || charpos == bytepos); eassert (charpos <= bytepos); eassert (charpos <= BUF_ZV (buffer) || BUF_BEGV (buffer) <= charpos); @@ -1827,7 +1813,7 @@ void set_point_from_marker (Lisp_Object marker) { if (XMARKER (marker)->buffer != current_buffer) - error ("Marker points into wrong buffer"); + signal_error ("Marker points into wrong buffer", marker); set_point_both (clip_to_bounds (BEGV, marker_position (marker), ZV), clip_to_bounds (BEGV_BYTE, marker_byte_position (marker), ZV_BYTE)); @@ -2238,7 +2224,7 @@ get_local_map (ptrdiff_t position, struct buffer *buffer, Lisp_Object type) editing a field with a `local-map' property, we want insertion at the end to obey the `local-map' property. */ if (NILP (prop)) - prop = get_pos_property (lispy_position, type, lispy_buffer); + prop = Fget_pos_property (lispy_position, type, lispy_buffer); SET_BUF_BEGV_BOTH (buffer, old_begv, old_begv_byte); SET_BUF_ZV_BOTH (buffer, old_zv, old_zv_byte);