aboutsummaryrefslogtreecommitdiffstats
path: root/src/xdisp.c
diff options
context:
space:
mode:
authorStefan Monnier2022-11-17 18:09:37 -0500
committerStefan Monnier2022-11-17 18:09:37 -0500
commit091e0f04ffe494ee4cddb67670f0c495a7c9b691 (patch)
tree3e93d67eed88aeea94cc78951e987fedffd7d8ea /src/xdisp.c
parentfb7f1864da4aa4c09756cfe47db6c56b4e87bd14 (diff)
downloademacs-scratch/noverlay.tar.gz
emacs-scratch/noverlay.zip
itree.c: Get rid of the old iterator codescratch/noverlay
Only use the new iterator which relies on a fixed size (and small) state in the iterator. This makes non-local exits safe within ITREE_FOREACH loops. * src/itree.c (make_nav, nav_nodeptr, nav_flag, itree_stack_clear) (itree_stack_push_flagged): Delete functions. (nodeptr_and_flag): Delete type. (struct itree_stack): Make the array hold plain pointers instead. (itree_stack_push): Inline the former code of `itree_stack_push_flagged`. (itree_stack_pop): Change return type. (itree_contains): Don't call `ITREE_FOREACH_ABORT` any more. (itree_insert_gap): Simplify access to the stack of nodes. (itree_delete_gap, itree_insert_gap): Adjust code to new return type of `itree_stack_pop`. (itree_iterator_finish): Delete function. (itree_iterator_start): Don't setup the `stack` field any more. (itree_iterator_next): Delete function. (itree_iter_next): Rename to `itree_iterator_next` and make it non-static. (itree_iterator_narrow): Don't check the `running` flag any more. * src/itree.h (itree_iterator_finish): Remove declaration. (struct itree_iterator): Remove the `stack` and `running` fields. (ITREE_FOREACH_ABORT): Delete macro. (ITREE_FOREACH): Don't call `itree_iterator_finish` any more. * src/xdisp.c (strings_with_newlines): * src/buffer.c (overlays_in, next_overlay_change, overlay_touches_p): Don't call `ITREE_FOREACH_ABORT` any more.
Diffstat (limited to 'src/xdisp.c')
-rw-r--r--src/xdisp.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index f6a279636a0..414ee9bfe28 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -7036,17 +7036,11 @@ strings_with_newlines (ptrdiff_t startpos, ptrdiff_t endpos, struct window *w)
7036 str = Foverlay_get (overlay, Qbefore_string); 7036 str = Foverlay_get (overlay, Qbefore_string);
7037 if (STRINGP (str) && SCHARS (str) 7037 if (STRINGP (str) && SCHARS (str)
7038 && memchr (SDATA (str), '\n', SBYTES (str))) 7038 && memchr (SDATA (str), '\n', SBYTES (str)))
7039 { 7039 return true;
7040 ITREE_FOREACH_ABORT ();
7041 return true;
7042 }
7043 str = Foverlay_get (overlay, Qafter_string); 7040 str = Foverlay_get (overlay, Qafter_string);
7044 if (STRINGP (str) && SCHARS (str) 7041 if (STRINGP (str) && SCHARS (str)
7045 && memchr (SDATA (str), '\n', SBYTES (str))) 7042 && memchr (SDATA (str), '\n', SBYTES (str)))
7046 { 7043 return true;
7047 ITREE_FOREACH_ABORT ();
7048 return true;
7049 }
7050 } 7044 }
7051 7045
7052 /* Check for 'display' properties whose values include strings. */ 7046 /* Check for 'display' properties whose values include strings. */