diff options
| author | Stefan Monnier | 2022-09-30 20:37:15 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2022-09-30 20:37:15 -0400 |
| commit | ab2926aad3e15c6cfa0e4b31ae9274c47a58baf2 (patch) | |
| tree | e1d202146ef6c9cfaabf38fe878b875a55627cd3 /src/buffer.h | |
| parent | 009249e0c6d3bb6c4a3714a279ae91807d133c77 (diff) | |
| download | emacs-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.h | 6 |
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 | ||
| 1464 | INLINE void | 1464 | INLINE void |
| 1465 | buffer_overlay_iter_finish (struct buffer *b) | 1465 | buffer_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 | ||
| 1471 | INLINE void | 1471 | INLINE void |
| 1472 | buffer_overlay_iter_narrow (struct buffer *b, ptrdiff_t begin, ptrdiff_t end) | 1472 | buffer_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 |