diff options
| author | Stefan Monnier | 2022-09-28 19:05:16 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2022-09-28 19:05:16 -0400 |
| commit | ea8daec9bb8ebf3cbca35edec4e4ef7b6edac3de (patch) | |
| tree | 1a34f44adca5fbf08033829dab643db6340bf296 /src/itree.h | |
| parent | 800ecd4767df48beeefabccdacd089b8c4286529 (diff) | |
| download | emacs-ea8daec9bb8ebf3cbca35edec4e4ef7b6edac3de.tar.gz emacs-ea8daec9bb8ebf3cbca35edec4e4ef7b6edac3de.zip | |
itree.[ch]: Add sanity checks, comments, and minor tweaks
* src/alloc.c (mark_overlay): Add sanity check.
* src/buffer.c (next_overlay_change, previous_overlay_change):
Tweak code to keep the same vars for the bounds.
* src/itree.c (interval_tree_clear, interval_tree_insert)
(interval_tree_remove, interval_tree_insert_fix, interval_tree_remove_fix):
Adjust to the `color` -> `red` change.
(interval_tree_clear): Prefer `true/false` for booleans.
(interval_generator_create): Use an actual `interval_tree_order` value
rather than 0.
(interval_generator_next): Simplify a tiny bit. Add comment.
(interval_generator_narrow): Add sanity check.
* src/itree.h (struct interval_node): Replace `color` field with
boolean `red` field.
(enum interval_tree_order): Remove unused `ITREE_DEFLT_ORDER` value.
* src/pdumper.c (dump_interval_node): Adjust to the
`color` -> `red` change.
Diffstat (limited to 'src/itree.h')
| -rw-r--r-- | src/itree.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/itree.h b/src/itree.h index e5d68fbfabb..8f0454dc7a4 100644 --- a/src/itree.h +++ b/src/itree.h | |||
| @@ -45,8 +45,8 @@ struct interval_node | |||
| 45 | ptrdiff_t offset; /* The amount of shift to apply to this subtree. */ | 45 | ptrdiff_t offset; /* The amount of shift to apply to this subtree. */ |
| 46 | uintmax_t otick; /* offset modified tick */ | 46 | uintmax_t otick; /* offset modified tick */ |
| 47 | Lisp_Object data; /* Exclusively used by the client. */ | 47 | Lisp_Object data; /* Exclusively used by the client. */ |
| 48 | enum { ITREE_RED, ITREE_BLACK } color; | 48 | bool_bf red : 1; |
| 49 | bool_bf visited : 1; /* For traversal via generator. */ | 49 | bool_bf visited : 1; /* Internal to `interval_generator_next`. */ |
| 50 | bool_bf rear_advance : 1; /* Same as for marker and overlays. */ | 50 | bool_bf rear_advance : 1; /* Same as for marker and overlays. */ |
| 51 | bool_bf front_advance : 1; /* Same as for marker and overlays. */ | 51 | bool_bf front_advance : 1; /* Same as for marker and overlays. */ |
| 52 | }; | 52 | }; |
| @@ -64,8 +64,7 @@ struct interval_tree | |||
| 64 | }; | 64 | }; |
| 65 | 65 | ||
| 66 | enum interval_tree_order { | 66 | enum interval_tree_order { |
| 67 | ITREE_ASCENDING = 0, | 67 | ITREE_ASCENDING, |
| 68 | ITREE_DEFLT_ORDER = 0, | ||
| 69 | ITREE_DESCENDING, | 68 | ITREE_DESCENDING, |
| 70 | ITREE_PRE_ORDER, | 69 | ITREE_PRE_ORDER, |
| 71 | }; | 70 | }; |