[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/noverlay 757c116f6b: free_buffer_overlays: Move nearer to its so
From: |
Stefan Monnier |
Subject: |
feature/noverlay 757c116f6b: free_buffer_overlays: Move nearer to its sole caller |
Date: |
Thu, 29 Sep 2022 16:15:10 -0400 (EDT) |
branch: feature/noverlay
commit 757c116f6b0bc2d8e81aef18f8eada27ca8745a1
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
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`.
---
src/buffer.c | 12 ++++++++++++
src/buffer.h | 14 --------------
src/itree.c | 55 ++++++++++++++++++++++++++-----------------------------
3 files changed, 38 insertions(+), 43 deletions(-)
diff --git a/src/buffer.c b/src/buffer.c
index 879e14be96..2f026584bb 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -932,6 +932,18 @@ delete_all_overlays (struct buffer *b)
interval_tree_clear (b->overlays);
}
+static void
+free_buffer_overlays (struct buffer *b)
+{
+ /* Actually this does not free any overlay, but the tree only. --ap */
+ eassert (! b->overlays || 0 == interval_tree_size (b->overlays));
+ if (b->overlays)
+ {
+ interval_tree_destroy (b->overlays);
+ b->overlays = NULL;
+ }
+}
+
/* Adjust the position of overlays in the current buffer according to
MULTIBYTE.
diff --git a/src/buffer.h b/src/buffer.h
index 097283be67..447be06594 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -1424,20 +1424,6 @@ maybe_alloc_buffer_overlays (struct buffer *b)
b->overlays = interval_tree_create ();
}
-/* FIXME: Actually this does not free any overlay, but the tree
- only. --ap */
-
-INLINE void
-free_buffer_overlays (struct buffer *b)
-{
- eassert (! b->overlays || 0 == interval_tree_size (b->overlays));
- if (b->overlays)
- {
- interval_tree_destroy (b->overlays);
- b->overlays = NULL;
- }
-}
-
INLINE void
add_buffer_overlay (struct buffer *b, struct Lisp_Overlay *ov)
{
diff --git a/src/itree.c b/src/itree.c
index bdaa3fe09b..7c2602683c 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/>. */
incremented whenever some node's offset has changed.
*/
-static struct interval_node *interval_tree_validate(struct interval_tree *,
struct interval_node *);
-static void interval_generator_ensure_space(struct interval_generator *);
-static bool interval_node_intersects(const struct interval_node *, ptrdiff_t,
ptrdiff_t);
-static int interval_tree_max_height(const struct interval_tree *);
-static struct interval_stack *interval_stack_create(intmax_t);
-static void interval_stack_destroy(struct interval_stack *);
-static void interval_stack_clear(struct interval_stack *);
-static void interval_stack_ensure_space(struct interval_stack *, intmax_t);
-static void interval_stack_push(struct interval_stack *, struct interval_node
*);
-static void interval_stack_push_flagged(struct interval_stack *, struct
interval_node *, bool);
-static struct interval_node *interval_stack_pop(struct interval_stack *);
-static void interval_tree_update_limit(const struct interval_tree *, struct
interval_node *);
-static void interval_tree_inherit_offset(const struct interval_tree *, struct
interval_node *);
-static void interval_tree_propagate_limit(const struct interval_tree *, struct
interval_node *);
-static void interval_tree_rotate_left(struct interval_tree *, struct
interval_node *);
-static void interval_tree_rotate_right(struct interval_tree *, struct
interval_node *);
-static void interval_tree_insert_fix(struct interval_tree *, struct
interval_node *);
-static void interval_tree_remove_fix(struct interval_tree *, struct
interval_node *);
-static void interval_tree_transplant(struct interval_tree *, struct
interval_node *, struct interval_node *);
-static struct interval_node *interval_tree_subtree_min(const struct
interval_tree *, struct interval_node *);
+static struct interval_node *interval_tree_validate (struct interval_tree *,
struct interval_node *);
+static void interval_generator_ensure_space (struct interval_generator *);
+static bool interval_node_intersects (const struct interval_node *, ptrdiff_t,
ptrdiff_t);
+static int interval_tree_max_height (const struct interval_tree *);
+static struct interval_stack *interval_stack_create (intmax_t);
+static void interval_stack_destroy (struct interval_stack *);
+static void interval_stack_clear (struct interval_stack *);
+static void interval_stack_ensure_space (struct interval_stack *, intmax_t);
+static void interval_stack_push (struct interval_stack *, struct interval_node
*);
+static void interval_stack_push_flagged (struct interval_stack *, struct
interval_node *, bool);
+static struct interval_node *interval_stack_pop (struct interval_stack *);
+static void interval_tree_update_limit (const struct interval_tree *, struct
interval_node *);
+static void interval_tree_inherit_offset (const struct interval_tree *, struct
interval_node *);
+static void interval_tree_propagate_limit (const struct interval_tree *,
struct interval_node *);
+static void interval_tree_rotate_left (struct interval_tree *, struct
interval_node *);
+static void interval_tree_rotate_right (struct interval_tree *, struct
interval_node *);
+static void interval_tree_insert_fix (struct interval_tree *, struct
interval_node *);
+static void interval_tree_remove_fix (struct interval_tree *, struct
interval_node *);
+static void interval_tree_transplant (struct interval_tree *, struct
interval_node *, struct interval_node *);
+static struct interval_node *interval_tree_subtree_min (const struct
interval_tree *, struct interval_node *);
static struct interval_generator* interval_generator_create (struct
interval_tree *);
static void interval_generator_destroy (struct interval_generator *);
static void interval_generator_reset (struct interval_generator *,
@@ -124,7 +124,7 @@ interval_generator_narrow (struct interval_generator *g,
ptrdiff_t begin, ptrdiff_t end);
static inline struct interval_node*
interval_generator_next (struct interval_generator *g);
-static inline void interval_tree_iter_ensure_space(struct interval_tree *);
+static inline void interval_tree_iter_ensure_space (struct interval_tree *);
@@ -454,11 +454,10 @@ interval_tree_iter_start (struct interval_tree *tree,
interval can only shrink, but never grow.*/
inline void
-interval_tree_iter_narrow(struct interval_tree *tree,
- ptrdiff_t begin, ptrdiff_t end)
+interval_tree_iter_narrow (struct interval_tree *tree,
+ ptrdiff_t begin, ptrdiff_t end)
{
- if (! tree->iter_running)
- emacs_abort ();
+ eassert (tree->iter_running);
interval_generator_narrow (tree->iter, begin, end);
}
@@ -467,8 +466,7 @@ interval_tree_iter_narrow(struct interval_tree *tree,
void
interval_tree_iter_finish (struct interval_tree *tree)
{
- if (! tree->iter_running)
- emacs_abort ();
+ eassert (tree->iter_running);
tree->iter_running = false;
}
@@ -478,8 +476,7 @@ interval_tree_iter_finish (struct interval_tree *tree)
inline struct interval_node*
interval_tree_iter_next (struct interval_tree *tree)
{
- if (! tree->iter_running)
- emacs_abort ();
+ eassert (tree->iter_running);
return interval_generator_next (tree->iter);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- feature/noverlay 757c116f6b: free_buffer_overlays: Move nearer to its sole caller,
Stefan Monnier <=