diff options
| author | Stefan Monnier | 2022-09-29 16:15:01 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2022-09-29 16:15:01 -0400 |
| commit | 757c116f6b0bc2d8e81aef18f8eada27ca8745a1 (patch) | |
| tree | 31b3b45565a5e6d8a08963843245598931654f20 /src | |
| parent | 8e61648693c779a411aad5ce8ad3a493e4032155 (diff) | |
| download | emacs-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.c | 12 | ||||
| -rw-r--r-- | src/buffer.h | 14 | ||||
| -rw-r--r-- | src/itree.c | 55 |
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 | ||
| 935 | static void | ||
| 936 | free_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 | |||
| 1430 | INLINE void | ||
| 1431 | free_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 | |||
| 1441 | INLINE void | 1427 | INLINE void |
| 1442 | add_buffer_overlay (struct buffer *b, struct Lisp_Overlay *ov) | 1428 | add_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 | ||
| 97 | static struct interval_node *interval_tree_validate(struct interval_tree *, struct interval_node *); | 97 | static struct interval_node *interval_tree_validate (struct interval_tree *, struct interval_node *); |
| 98 | static void interval_generator_ensure_space(struct interval_generator *); | 98 | static void interval_generator_ensure_space (struct interval_generator *); |
| 99 | static bool interval_node_intersects(const struct interval_node *, ptrdiff_t, ptrdiff_t); | 99 | static bool interval_node_intersects (const struct interval_node *, ptrdiff_t, ptrdiff_t); |
| 100 | static int interval_tree_max_height(const struct interval_tree *); | 100 | static int interval_tree_max_height (const struct interval_tree *); |
| 101 | static struct interval_stack *interval_stack_create(intmax_t); | 101 | static struct interval_stack *interval_stack_create (intmax_t); |
| 102 | static void interval_stack_destroy(struct interval_stack *); | 102 | static void interval_stack_destroy (struct interval_stack *); |
| 103 | static void interval_stack_clear(struct interval_stack *); | 103 | static void interval_stack_clear (struct interval_stack *); |
| 104 | static void interval_stack_ensure_space(struct interval_stack *, intmax_t); | 104 | static void interval_stack_ensure_space (struct interval_stack *, intmax_t); |
| 105 | static void interval_stack_push(struct interval_stack *, struct interval_node *); | 105 | static void interval_stack_push (struct interval_stack *, struct interval_node *); |
| 106 | static void interval_stack_push_flagged(struct interval_stack *, struct interval_node *, bool); | 106 | static void interval_stack_push_flagged (struct interval_stack *, struct interval_node *, bool); |
| 107 | static struct interval_node *interval_stack_pop(struct interval_stack *); | 107 | static struct interval_node *interval_stack_pop (struct interval_stack *); |
| 108 | static void interval_tree_update_limit(const struct interval_tree *, struct interval_node *); | 108 | static void interval_tree_update_limit (const struct interval_tree *, struct interval_node *); |
| 109 | static void interval_tree_inherit_offset(const struct interval_tree *, struct interval_node *); | 109 | static void interval_tree_inherit_offset (const struct interval_tree *, struct interval_node *); |
| 110 | static void interval_tree_propagate_limit(const struct interval_tree *, struct interval_node *); | 110 | static void interval_tree_propagate_limit (const struct interval_tree *, struct interval_node *); |
| 111 | static void interval_tree_rotate_left(struct interval_tree *, struct interval_node *); | 111 | static void interval_tree_rotate_left (struct interval_tree *, struct interval_node *); |
| 112 | static void interval_tree_rotate_right(struct interval_tree *, struct interval_node *); | 112 | static void interval_tree_rotate_right (struct interval_tree *, struct interval_node *); |
| 113 | static void interval_tree_insert_fix(struct interval_tree *, struct interval_node *); | 113 | static void interval_tree_insert_fix (struct interval_tree *, struct interval_node *); |
| 114 | static void interval_tree_remove_fix(struct interval_tree *, struct interval_node *); | 114 | static void interval_tree_remove_fix (struct interval_tree *, struct interval_node *); |
| 115 | static void interval_tree_transplant(struct interval_tree *, struct interval_node *, struct interval_node *); | 115 | static void interval_tree_transplant (struct interval_tree *, struct interval_node *, struct interval_node *); |
| 116 | static struct interval_node *interval_tree_subtree_min(const struct interval_tree *, struct interval_node *); | 116 | static struct interval_node *interval_tree_subtree_min (const struct interval_tree *, struct interval_node *); |
| 117 | static struct interval_generator* interval_generator_create (struct interval_tree *); | 117 | static struct interval_generator* interval_generator_create (struct interval_tree *); |
| 118 | static void interval_generator_destroy (struct interval_generator *); | 118 | static void interval_generator_destroy (struct interval_generator *); |
| 119 | static void interval_generator_reset (struct interval_generator *, | 119 | static 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); |
| 125 | static inline struct interval_node* | 125 | static inline struct interval_node* |
| 126 | interval_generator_next (struct interval_generator *g); | 126 | interval_generator_next (struct interval_generator *g); |
| 127 | static inline void interval_tree_iter_ensure_space(struct interval_tree *); | 127 | static 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 | ||
| 456 | inline void | 456 | inline void |
| 457 | interval_tree_iter_narrow(struct interval_tree *tree, | 457 | interval_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, | |||
| 467 | void | 466 | void |
| 468 | interval_tree_iter_finish (struct interval_tree *tree) | 467 | interval_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) | |||
| 478 | inline struct interval_node* | 476 | inline struct interval_node* |
| 479 | interval_tree_iter_next (struct interval_tree *tree) | 477 | interval_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 | ||