aboutsummaryrefslogtreecommitdiffstats
path: root/src/buffer.h
diff options
context:
space:
mode:
authorStefan Monnier2022-09-30 20:37:15 -0400
committerStefan Monnier2022-09-30 20:37:15 -0400
commitab2926aad3e15c6cfa0e4b31ae9274c47a58baf2 (patch)
treee1d202146ef6c9cfaabf38fe878b875a55627cd3 /src/buffer.h
parent009249e0c6d3bb6c4a3714a279ae91807d133c77 (diff)
downloademacs-ab2926aad3e15c6cfa0e4b31ae9274c47a58baf2.tar.gz
emacs-ab2926aad3e15c6cfa0e4b31ae9274c47a58baf2.zip
itree.c: Improve division between tree and iterator
* src/buffer.c (delete_all_overlays): Add comment. * src/itree.c (struct interval_generator): New fields `running`, `file`, and `line` moved from `interval_tree`. (interval_stack_push_flagged): Adjust comment to resolve a FIXME. (interval_tree_clear): Replace assignment with an a (interval_tree_iter_next): Delete function. (interval_tree_clear): Don't set `iter_running` here any more. (interval_generator_create): Set it here instead. (interval_tree_iter_start): Fetch `iter` once and for all. (interval_generator_narrow): Mark it as non-static. (interval_tree_iter_next, interval_tree_iter_narrow): Delete functions. Inline their old bodies in the callers. (interval_tree_iter_finish): Take the iter rather than the whole tree. Adjust all callers. (interval_generator_next): Move `running `assertion here from `interval_tree_iter_next`. * src/buffer.h: Adjust accordingly. * src/itree.h (struct interval_tree): Remove fields `iter_running`, `file`, and `line`, moved to `interval_generator`. (interval_generator_narrow): Replace `interval_tree_iter_narrow`.
Diffstat (limited to 'src/buffer.h')
-rw-r--r--src/buffer.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/buffer.h b/src/buffer.h
index 447be06594c..ad3b2ad6df5 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -1458,21 +1458,21 @@ buffer_overlay_iter_next (struct buffer *b)
1458{ 1458{
1459 if (! b->overlays) 1459 if (! b->overlays)
1460 return NULL; 1460 return NULL;
1461 return interval_tree_iter_next (b->overlays); 1461 return interval_generator_next (b->overlays->iter);
1462} 1462}
1463 1463
1464INLINE void 1464INLINE void
1465buffer_overlay_iter_finish (struct buffer *b) 1465buffer_overlay_iter_finish (struct buffer *b)
1466{ 1466{
1467 if (b->overlays) 1467 if (b->overlays)
1468 interval_tree_iter_finish (b->overlays); 1468 interval_tree_iter_finish (b->overlays->iter);
1469} 1469}
1470 1470
1471INLINE void 1471INLINE void
1472buffer_overlay_iter_narrow (struct buffer *b, ptrdiff_t begin, ptrdiff_t end) 1472buffer_overlay_iter_narrow (struct buffer *b, ptrdiff_t begin, ptrdiff_t end)
1473{ 1473{
1474 if (b->overlays) 1474 if (b->overlays)
1475 interval_tree_iter_narrow (b->overlays, begin, end); 1475 interval_generator_narrow (b->overlays->iter, begin, end);
1476} 1476}
1477 1477
1478/* Return the start of OV in its buffer, or -1 if OV is not associated 1478/* Return the start of OV in its buffer, or -1 if OV is not associated