aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Politz2017-10-05 21:55:43 +0200
committerAndreas Politz2017-10-05 21:55:43 +0200
commit828552916eb4e14a8f3dcf83b78687f9f34b1e4b (patch)
tree8dbbb3fd471680460657b604ededadab6890620e /src
parent342fc823a6622f25c79baa8535cb9ea939ef666f (diff)
downloademacs-828552916eb4e14a8f3dcf83b78687f9f34b1e4b.tar.gz
emacs-828552916eb4e14a8f3dcf83b78687f9f34b1e4b.zip
Add offsets when inspecting a node's children's values
*src/itree.c (interval_tree_insert_gap): Add offset.
Diffstat (limited to 'src')
-rw-r--r--src/itree.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/itree.c b/src/itree.c
index 0c10100eef7..5df2d8d1cc5 100644
--- a/src/itree.c
+++ b/src/itree.c
@@ -519,7 +519,8 @@ interval_tree_insert_gap (struct interval_tree *tree, ptrdiff_t pos, ptrdiff_t l
519 else 519 else
520 interval_stack_push (stack, node->right); 520 interval_stack_push (stack, node->right);
521 } 521 }
522 if (node->left != &tree->nil && pos <= node->left->limit) 522 if (node->left != &tree->nil
523 && pos <= node->left->limit + node->left->offset)
523 interval_stack_push (stack, node->left); 524 interval_stack_push (stack, node->left);
524 525
525 /* node->begin == pos implies no front-advance. */ 526 /* node->begin == pos implies no front-advance. */
@@ -578,7 +579,8 @@ interval_tree_delete_gap (struct interval_tree *tree, ptrdiff_t pos, ptrdiff_t l
578 else 579 else
579 interval_stack_push (stack, node->right); 580 interval_stack_push (stack, node->right);
580 } 581 }
581 if (node->left != &tree->nil && pos <= node->left->limit) 582 if (node->left != &tree->nil
583 && pos <= node->left->limit + node->left->offset)
582 interval_stack_push (stack, node->left); 584 interval_stack_push (stack, node->left);
583 585
584 if (pos < node->begin) 586 if (pos < node->begin)