aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2022-09-29 16:15:01 -0400
committerStefan Monnier2022-09-29 16:15:01 -0400
commit757c116f6b0bc2d8e81aef18f8eada27ca8745a1 (patch)
tree31b3b45565a5e6d8a08963843245598931654f20 /src
parent8e61648693c779a411aad5ce8ad3a493e4032155 (diff)
downloademacs-757c116f6b0bc2d8e81aef18f8eada27ca8745a1.tar.gz
emacs-757c116f6b0bc2d8e81aef18f8eada27ca8745a1.zip
free_buffer_overlays: Move nearer to its sole caller
* src/buffer.c (free_buffer_overlays): Move from `buffer.h`. * src/buffer.h (free_buffer_overlays): Move to `buffer.c`. * src/itree.c (interval_tree_iter_narrow, interval_tree_iter_finish) (interval_tree_iter_next): Prefer `eassert`.
Diffstat (limited to 'src')
-rw-r--r--src/buffer.c12
-rw-r--r--src/buffer.h14
-rw-r--r--src/itree.c55
3 files changed, 38 insertions, 43 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 879e14be960..2f026584bbf 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -932,6 +932,18 @@ delete_all_overlays (struct buffer *b)
932 interval_tree_clear (b->overlays); 932 interval_tree_clear (b->overlays);
933} 933}
934 934
935static void
936free_buffer_overlays (struct buffer *b)
937{
938 /* Actually this does not free any overlay, but the tree only. --ap */
939 eassert (! b->overlays || 0 == interval_tree_size (b->overlays));
940 if (b->overlays)
941 {
942 interval_tree_destroy (b->overlays);
943 b->overlays = NULL;
944 }
945}
946
935/* Adjust the position of overlays in the current buffer according to 947/* Adjust the position of overlays in the current buffer according to
936 MULTIBYTE. 948 MULTIBYTE.
937 949
diff --git a/src/buffer.h b/src/buffer.h
index 097283be671..447be06594c 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -1424,20 +1424,6 @@ maybe_alloc_buffer_overlays (struct buffer *b)
1424 b->overlays = interval_tree_create (); 1424 b->overlays = interval_tree_create ();
1425} 1425}
1426 1426
1427/* FIXME: Actually this does not free any overlay, but the tree
1428 only. --ap */
1429
1430INLINE void
1431free_buffer_overlays (struct buffer *b)
1432{
1433 eassert (! b->overlays || 0 == interval_tree_size (b->overlays));
1434 if (b->overlays)
1435 {
1436 interval_tree_destroy (b->overlays);
1437 b->overlays = NULL;
1438 }
1439}
1440
1441INLINE void 1427INLINE void
1442add_buffer_overlay (struct buffer *b, struct Lisp_Overlay *ov) 1428add_buffer_overlay (struct buffer *b, struct Lisp_Overlay *ov)
1443{ 1429{
diff --git a/src/itree.c b/src/itree.c
index bdaa3fe09bb..7c2602683c4 100644
--- a/src/itree.c
+++ b/src/itree.c
@@ -94,26 +94,26 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
94 incremented whenever some node's offset has changed. 94 incremented whenever some node's offset has changed.
95*/ 95*/
96 96
97static struct interval_node *interval_tree_validate(struct interval_tree *, struct interval_node *); 97static struct interval_node *interval_tree_validate (struct interval_tree *, struct interval_node *);
98static void interval_generator_ensure_space(struct interval_generator *); 98static void interval_generator_ensure_space (struct interval_generator *);
99static bool interval_node_intersects(const struct interval_node *, ptrdiff_t, ptrdiff_t); 99static bool interval_node_intersects (const struct interval_node *, ptrdiff_t, ptrdiff_t);
100static int interval_tree_max_height(const struct interval_tree *); 100static int interval_tree_max_height (const struct interval_tree *);
101static struct interval_stack *interval_stack_create(intmax_t); 101static struct interval_stack *interval_stack_create (intmax_t);
102static void interval_stack_destroy(struct interval_stack *); 102static void interval_stack_destroy (struct interval_stack *);
103static void interval_stack_clear(struct interval_stack *); 103static void interval_stack_clear (struct interval_stack *);
104static void interval_stack_ensure_space(struct interval_stack *, intmax_t); 104static void interval_stack_ensure_space (struct interval_stack *, intmax_t);
105static void interval_stack_push(struct interval_stack *, struct interval_node *); 105static void interval_stack_push (struct interval_stack *, struct interval_node *);
106static void interval_stack_push_flagged(struct interval_stack *, struct interval_node *, bool); 106static void interval_stack_push_flagged (struct interval_stack *, struct interval_node *, bool);
107static struct interval_node *interval_stack_pop(struct interval_stack *); 107static struct interval_node *interval_stack_pop (struct interval_stack *);
108static void interval_tree_update_limit(const struct interval_tree *, struct interval_node *); 108static void interval_tree_update_limit (const struct interval_tree *, struct interval_node *);
109static void interval_tree_inherit_offset(const struct interval_tree *, struct interval_node *); 109static void interval_tree_inherit_offset (const struct interval_tree *, struct interval_node *);
110static void interval_tree_propagate_limit(const struct interval_tree *, struct interval_node *); 110static void interval_tree_propagate_limit (const struct interval_tree *, struct interval_node *);
111static void interval_tree_rotate_left(struct interval_tree *, struct interval_node *); 111static void interval_tree_rotate_left (struct interval_tree *, struct interval_node *);
112static void interval_tree_rotate_right(struct interval_tree *, struct interval_node *); 112static void interval_tree_rotate_right (struct interval_tree *, struct interval_node *);
113static void interval_tree_insert_fix(struct interval_tree *, struct interval_node *); 113static void interval_tree_insert_fix (struct interval_tree *, struct interval_node *);
114static void interval_tree_remove_fix(struct interval_tree *, struct interval_node *); 114static void interval_tree_remove_fix (struct interval_tree *, struct interval_node *);
115static void interval_tree_transplant(struct interval_tree *, struct interval_node *, struct interval_node *); 115static void interval_tree_transplant (struct interval_tree *, struct interval_node *, struct interval_node *);
116static struct interval_node *interval_tree_subtree_min(const struct interval_tree *, struct interval_node *); 116static struct interval_node *interval_tree_subtree_min (const struct interval_tree *, struct interval_node *);
117static struct interval_generator* interval_generator_create (struct interval_tree *); 117static struct interval_generator* interval_generator_create (struct interval_tree *);
118static void interval_generator_destroy (struct interval_generator *); 118static void interval_generator_destroy (struct interval_generator *);
119static void interval_generator_reset (struct interval_generator *, 119static void interval_generator_reset (struct interval_generator *,
@@ -124,7 +124,7 @@ interval_generator_narrow (struct interval_generator *g,
124 ptrdiff_t begin, ptrdiff_t end); 124 ptrdiff_t begin, ptrdiff_t end);
125static inline struct interval_node* 125static inline struct interval_node*
126interval_generator_next (struct interval_generator *g); 126interval_generator_next (struct interval_generator *g);
127static inline void interval_tree_iter_ensure_space(struct interval_tree *); 127static inline void interval_tree_iter_ensure_space (struct interval_tree *);
128 128
129 129
130 130
@@ -454,11 +454,10 @@ interval_tree_iter_start (struct interval_tree *tree,
454 interval can only shrink, but never grow.*/ 454 interval can only shrink, but never grow.*/
455 455
456inline void 456inline void
457interval_tree_iter_narrow(struct interval_tree *tree, 457interval_tree_iter_narrow (struct interval_tree *tree,
458 ptrdiff_t begin, ptrdiff_t end) 458 ptrdiff_t begin, ptrdiff_t end)
459{ 459{
460 if (! tree->iter_running) 460 eassert (tree->iter_running);
461 emacs_abort ();
462 interval_generator_narrow (tree->iter, begin, end); 461 interval_generator_narrow (tree->iter, begin, end);
463} 462}
464 463
@@ -467,8 +466,7 @@ interval_tree_iter_narrow(struct interval_tree *tree,
467void 466void
468interval_tree_iter_finish (struct interval_tree *tree) 467interval_tree_iter_finish (struct interval_tree *tree)
469{ 468{
470 if (! tree->iter_running) 469 eassert (tree->iter_running);
471 emacs_abort ();
472 tree->iter_running = false; 470 tree->iter_running = false;
473} 471}
474 472
@@ -478,8 +476,7 @@ interval_tree_iter_finish (struct interval_tree *tree)
478inline struct interval_node* 476inline struct interval_node*
479interval_tree_iter_next (struct interval_tree *tree) 477interval_tree_iter_next (struct interval_tree *tree)
480{ 478{
481 if (! tree->iter_running) 479 eassert (tree->iter_running);
482 emacs_abort ();
483 return interval_generator_next (tree->iter); 480 return interval_generator_next (tree->iter);
484} 481}
485 482