]> git.eshelyaron.com Git - emacs.git/commitdiff
(split_interval_right): Make sure to call
authorRichard M. Stallman <rms@gnu.org>
Mon, 16 Feb 1998 23:46:08 +0000 (23:46 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 16 Feb 1998 23:46:08 +0000 (23:46 +0000)
balance_possible_root_interval in case an interval doesn't have a
right child, because otherwise the interval tree might degenerate into
a list.

(split_interval_left): Ditto if an interval hasn't a left child.

src/intervals.c

index 7bfdfa47c250086801ccf734ab680497335300e4..68561e1c8925ff2fbba7a702823537d756b28154 100644 (file)
@@ -478,17 +478,17 @@ split_interval_right (interval, offset)
     {
       interval->right = new;
       new->total_length = new_length;
-
-      return new;
     }
-
-  /* Insert the new node between INTERVAL and its right child.  */
-  new->right = interval->right;
-  interval->right->parent = new;
-  interval->right = new;
-  new->total_length = new_length + new->right->total_length;
-
-  balance_an_interval (new);
+  else
+    {
+      /* Insert the new node between INTERVAL and its right child.  */
+      new->right = interval->right;
+      interval->right->parent = new;
+      interval->right = new;
+      new->total_length = new_length + new->right->total_length;
+      balance_an_interval (new);
+    }
+  
   balance_possible_root_interval (interval);
 
   return new;
@@ -524,17 +524,17 @@ split_interval_left (interval, offset)
     {
       interval->left = new;
       new->total_length = new_length;
-
-      return new;
     }
-
-  /* Insert the new node between INTERVAL and its left child.  */
-  new->left = interval->left;
-  new->left->parent = new;
-  interval->left = new;
-  new->total_length = new_length + new->left->total_length;
-
-  balance_an_interval (new);
+  else
+    {
+      /* Insert the new node between INTERVAL and its left child.  */
+      new->left = interval->left;
+      new->left->parent = new;
+      interval->left = new;
+      new->total_length = new_length + new->left->total_length;
+      balance_an_interval (new);
+    }
+  
   balance_possible_root_interval (interval);
 
   return new;