/* Code for doing intervals.
- Copyright (C) 1993-1995, 1997-1998, 2001-2012 Free Software Foundation, Inc.
+ Copyright (C) 1993-1995, 1997-1998, 2001-2013 Free Software
+ Foundation, Inc.
This file is part of GNU Emacs.
#define INTERVALS_INLINE EXTERN_INLINE
-#include <setjmp.h>
#include <intprops.h>
#include "lisp.h"
#include "intervals.h"
/* Use these functions to set Lisp_Object
or pointer slots of struct interval. */
-static inline void
+static void
set_interval_object (INTERVAL i, Lisp_Object obj)
{
eassert (BUFFERP (obj) || STRINGP (obj));
i->up.obj = obj;
}
-static inline void
+static void
set_interval_left (INTERVAL i, INTERVAL left)
{
i->left = left;
}
-static inline void
+static void
set_interval_right (INTERVAL i, INTERVAL right)
{
i->right = right;
/* Make the parent of D be whatever the parent of S is, regardless
of the type. This is used when balancing an interval tree. */
-static inline void
+static void
copy_interval_parent (INTERVAL d, INTERVAL s)
{
d->up = s->up;
c c
*/
-static inline INTERVAL
+static INTERVAL
rotate_right (INTERVAL interval)
{
INTERVAL i;
c c
*/
-static inline INTERVAL
+static INTERVAL
rotate_left (INTERVAL interval)
{
INTERVAL i;
/* Balance INTERVAL, potentially stuffing it back into its parent
Lisp Object. */
-static inline INTERVAL
+static INTERVAL
balance_possible_root_interval (INTERVAL interval)
{
Lisp_Object parent;
eassert (relative_position <= TOTAL_LENGTH (tree));
- if (!handling_signal)
- tree = balance_possible_root_interval (tree);
+ tree = balance_possible_root_interval (tree);
while (1)
{