aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Möllmann2022-09-27 12:45:16 +0200
committerGerd Möllmann2022-09-27 12:55:49 +0200
commit409327ff68f9ccdc8099f6a2ba2fee76abaaab70 (patch)
tree8de073ee4dc386216367425cd2b874a251cdd783 /src
parent650c20f1ca4e07591a727e1cfcc74b3363d15985 (diff)
downloademacs-409327ff68f9ccdc8099f6a2ba2fee76abaaab70.tar.gz
emacs-409327ff68f9ccdc8099f6a2ba2fee76abaaab70.zip
Fix macOS build (bug#58108)
* src/itree.h (struct interval_tree): Rename member nil to null. * src/itree.c: Use null instead of nil * src/pdumper.c (dump_buffer): Use null instead of nil. * src/itree.c: Fix copyright. * src/itree.h: Fix copyright.
Diffstat (limited to 'src')
-rw-r--r--src/itree.c100
-rw-r--r--src/itree.h6
-rw-r--r--src/pdumper.c2
3 files changed, 54 insertions, 54 deletions
diff --git a/src/itree.c b/src/itree.c
index adb55fe950b..ab734c3c18c 100644
--- a/src/itree.c
+++ b/src/itree.c
@@ -1,8 +1,8 @@
1/* This file implements an efficient interval data-structure. 1/* This file implements an efficient interval data-structure.
2 2
3Copyright (C) 2017 Andreas Politz (politza@hochschule-trier.de) 3Copyright (C) 2017-2022 Free Software Foundation, Inc.
4 4
5This file is not part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
7GNU Emacs is free software: you can redistribute it and/or modify 7GNU Emacs is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by 8it under the terms of the GNU General Public License as published by
@@ -227,14 +227,14 @@ interval_tree_create (void)
227void 227void
228interval_tree_clear (struct interval_tree *tree) 228interval_tree_clear (struct interval_tree *tree)
229{ 229{
230 struct interval_node *nil = &tree->nil; 230 struct interval_node *null = &tree->null;
231 nil->left = nil->right = nil->parent = nil; 231 null->left = null->right = null->parent = null;
232 nil->offset = nil->otick = 0; 232 null->offset = null->otick = 0;
233 nil->begin = PTRDIFF_MIN; 233 null->begin = PTRDIFF_MIN;
234 nil->end = PTRDIFF_MIN; 234 null->end = PTRDIFF_MIN;
235 nil->limit = PTRDIFF_MIN; /* => max(x, nil.limit) = x */ 235 null->limit = PTRDIFF_MIN; /* => max(x, null.limit) = x */
236 nil->color = ITREE_BLACK; 236 null->color = ITREE_BLACK;
237 tree->root = nil; 237 tree->root = null;
238 tree->otick = 1; 238 tree->otick = 1;
239 tree->size = 0; 239 tree->size = 0;
240 tree->iter_running = 0; 240 tree->iter_running = 0;
@@ -278,15 +278,15 @@ interval_tree_size (struct interval_tree *tree)
278void 278void
279interval_tree_insert (struct interval_tree *tree, struct interval_node *node) 279interval_tree_insert (struct interval_tree *tree, struct interval_node *node)
280{ 280{
281 eassert (node && node->begin <= node->end && node != &tree->nil); 281 eassert (node && node->begin <= node->end && node != &tree->null);
282 282
283 struct interval_node *parent = &tree->nil; 283 struct interval_node *parent = &tree->null;
284 struct interval_node *child = tree->root; 284 struct interval_node *child = &tree->null;
285 ptrdiff_t offset = 0; 285 ptrdiff_t offset = 0;
286 286
287 /* Find the insertion point, accumulate node's offset and update 287 /* Find the insertion point, accumulate node's offset and update
288 ancestors limit values. */ 288 ancestors limit values. */
289 while (child != &tree->nil) 289 while (child != &tree->null)
290 { 290 {
291 parent = child; 291 parent = child;
292 offset += child->offset; 292 offset += child->offset;
@@ -297,7 +297,7 @@ interval_tree_insert (struct interval_tree *tree, struct interval_node *node)
297 } 297 }
298 298
299 /* Insert the node */ 299 /* Insert the node */
300 if (parent == &tree->nil) 300 if (parent == &tree->null)
301 tree->root = node; 301 tree->root = node;
302 else if (node->begin <= parent->begin) 302 else if (node->begin <= parent->begin)
303 parent->left = node; 303 parent->left = node;
@@ -306,8 +306,8 @@ interval_tree_insert (struct interval_tree *tree, struct interval_node *node)
306 306
307 /* Init the node */ 307 /* Init the node */
308 node->parent = parent; 308 node->parent = parent;
309 node->left = &tree->nil; 309 node->left = &tree->null;
310 node->right = &tree->nil; 310 node->right = &tree->null;
311 node->color = ITREE_RED; 311 node->color = ITREE_RED;
312 node->offset = 0; 312 node->offset = 0;
313 node->begin -= offset; 313 node->begin -= offset;
@@ -347,10 +347,10 @@ interval_tree_remove (struct interval_tree *tree, struct interval_node *node)
347 struct interval_node *broken = NULL; 347 struct interval_node *broken = NULL;
348 348
349 interval_tree_inherit_offset (tree, node); 349 interval_tree_inherit_offset (tree, node);
350 if (node->left == &tree->nil || node->right == &tree->nil) 350 if (node->left == &tree->null || node->right == &tree->null)
351 { 351 {
352 struct interval_node *subst = 352 struct interval_node *subst =
353 (node->right == &tree->nil) ? node->left : node->right; 353 (node->right == &tree->null) ? node->left : node->right;
354 if (node->color == ITREE_BLACK) 354 if (node->color == ITREE_BLACK)
355 broken = subst; 355 broken = subst;
356 interval_tree_transplant (tree, subst, node); 356 interval_tree_transplant (tree, subst, node);
@@ -364,7 +364,7 @@ interval_tree_remove (struct interval_tree *tree, struct interval_node *node)
364 if (min->color == ITREE_BLACK) 364 if (min->color == ITREE_BLACK)
365 broken = min->right; 365 broken = min->right;
366 if (min->parent == node) 366 if (min->parent == node)
367 min_right->parent = min; /* set parent, if min_right = nil */ 367 min_right->parent = min; /* set parent, if min_right = null */
368 else 368 else
369 { 369 {
370 interval_tree_transplant (tree, min->right, min); 370 interval_tree_transplant (tree, min->right, min);
@@ -386,7 +386,7 @@ interval_tree_remove (struct interval_tree *tree, struct interval_node *node)
386 node->right = node->left = node->parent = NULL; 386 node->right = node->left = node->parent = NULL;
387 --tree->size; 387 --tree->size;
388 388
389 eassert (tree->size == 0 || (tree->size > 0 && tree->root != &tree->nil)); 389 eassert (tree->size == 0 || (tree->size > 0 && tree->root != &tree->null));
390 390
391 return node; 391 return node;
392} 392}
@@ -395,7 +395,7 @@ static struct interval_node*
395interval_tree_validate (struct interval_tree *tree, struct interval_node *node) 395interval_tree_validate (struct interval_tree *tree, struct interval_node *node)
396{ 396{
397 397
398 if (tree->otick == node->otick || node == &tree->nil) 398 if (tree->otick == node->otick || node == &tree->null)
399 return node; 399 return node;
400 if (node != tree->root) 400 if (node != tree->root)
401 interval_tree_validate (tree, node->parent); 401 interval_tree_validate (tree, node->parent);
@@ -532,7 +532,7 @@ interval_tree_insert_gap (struct interval_tree *tree, ptrdiff_t pos, ptrdiff_t l
532 { 532 {
533 /* Process in pre-order. */ 533 /* Process in pre-order. */
534 interval_tree_inherit_offset (tree, node); 534 interval_tree_inherit_offset (tree, node);
535 if (node->right != &tree->nil) 535 if (node->right != &tree->null)
536 { 536 {
537 if (node->begin > pos) 537 if (node->begin > pos)
538 { 538 {
@@ -543,7 +543,7 @@ interval_tree_insert_gap (struct interval_tree *tree, ptrdiff_t pos, ptrdiff_t l
543 else 543 else
544 interval_stack_push (stack, node->right); 544 interval_stack_push (stack, node->right);
545 } 545 }
546 if (node->left != &tree->nil 546 if (node->left != &tree->null
547 && pos <= node->left->limit + node->left->offset) 547 && pos <= node->left->limit + node->left->offset)
548 interval_stack_push (stack, node->left); 548 interval_stack_push (stack, node->left);
549 549
@@ -592,7 +592,7 @@ interval_tree_delete_gap (struct interval_tree *tree, ptrdiff_t pos, ptrdiff_t l
592 while ((node = interval_stack_pop (stack))) 592 while ((node = interval_stack_pop (stack)))
593 { 593 {
594 interval_tree_inherit_offset (tree, node); 594 interval_tree_inherit_offset (tree, node);
595 if (node->right != &tree->nil) 595 if (node->right != &tree->null)
596 { 596 {
597 if (node->begin > pos + length) 597 if (node->begin > pos + length)
598 { 598 {
@@ -603,7 +603,7 @@ interval_tree_delete_gap (struct interval_tree *tree, ptrdiff_t pos, ptrdiff_t l
603 else 603 else
604 interval_stack_push (stack, node->right); 604 interval_stack_push (stack, node->right);
605 } 605 }
606 if (node->left != &tree->nil 606 if (node->left != &tree->null
607 && pos <= node->left->limit + node->left->offset) 607 && pos <= node->left->limit + node->left->offset)
608 interval_stack_push (stack, node->left); 608 interval_stack_push (stack, node->left);
609 609
@@ -681,7 +681,7 @@ interval_generator_next (struct interval_generator *g)
681{ 681{
682 if (! g) return NULL; 682 if (! g) return NULL;
683 683
684 struct interval_node * const nil = &g->tree->nil; 684 struct interval_node * const null = &g->tree->null;
685 struct interval_node *node; 685 struct interval_node *node;
686 686
687 do { 687 do {
@@ -696,26 +696,26 @@ interval_generator_next (struct interval_generator *g)
696 switch (g->order) 696 switch (g->order)
697 { 697 {
698 case ITREE_ASCENDING: 698 case ITREE_ASCENDING:
699 if (right != nil && node->begin <= g->end) 699 if (right != null && node->begin <= g->end)
700 interval_stack_push_flagged (g->stack, right, false); 700 interval_stack_push_flagged (g->stack, right, false);
701 if (interval_node_intersects (node, g->begin, g->end)) 701 if (interval_node_intersects (node, g->begin, g->end))
702 interval_stack_push_flagged (g->stack, node, true); 702 interval_stack_push_flagged (g->stack, node, true);
703 /* Node's children may still be off-set and we need to add it. */ 703 /* Node's children may still be off-set and we need to add it. */
704 if (left != nil && g->begin <= left->limit + left->offset) 704 if (left != null && g->begin <= left->limit + left->offset)
705 interval_stack_push_flagged (g->stack, left, false); 705 interval_stack_push_flagged (g->stack, left, false);
706 break; 706 break;
707 case ITREE_DESCENDING: 707 case ITREE_DESCENDING:
708 if (left != nil && g->begin <= left->limit + left->offset) 708 if (left != null && g->begin <= left->limit + left->offset)
709 interval_stack_push_flagged (g->stack, left, false); 709 interval_stack_push_flagged (g->stack, left, false);
710 if (interval_node_intersects (node, g->begin, g->end)) 710 if (interval_node_intersects (node, g->begin, g->end))
711 interval_stack_push_flagged (g->stack, node, true); 711 interval_stack_push_flagged (g->stack, node, true);
712 if (right != nil && node->begin <= g->end) 712 if (right != null && node->begin <= g->end)
713 interval_stack_push_flagged (g->stack, right, false); 713 interval_stack_push_flagged (g->stack, right, false);
714 break; 714 break;
715 case ITREE_PRE_ORDER: 715 case ITREE_PRE_ORDER:
716 if (right != nil && node->begin <= g->end) 716 if (right != null && node->begin <= g->end)
717 interval_stack_push_flagged (g->stack, right, false); 717 interval_stack_push_flagged (g->stack, right, false);
718 if (left != nil && g->begin <= left->limit + left->offset) 718 if (left != null && g->begin <= left->limit + left->offset)
719 interval_stack_push_flagged (g->stack, left, false); 719 interval_stack_push_flagged (g->stack, left, false);
720 if (interval_node_intersects (node, g->begin, g->end)) 720 if (interval_node_intersects (node, g->begin, g->end))
721 interval_stack_push_flagged (g->stack, node, true); 721 interval_stack_push_flagged (g->stack, node, true);
@@ -832,7 +832,7 @@ static void
832interval_tree_update_limit (const struct interval_tree *tree, 832interval_tree_update_limit (const struct interval_tree *tree,
833 struct interval_node *node) 833 struct interval_node *node)
834{ 834{
835 if (node == &tree->nil) 835 if (node == &tree->null)
836 return; 836 return;
837 837
838 node->limit = max (node->end, max (node->left->limit + node->left->offset, 838 node->limit = max (node->end, max (node->left->limit + node->left->offset,
@@ -856,9 +856,9 @@ interval_tree_inherit_offset (const struct interval_tree *tree,
856 node->begin += node->offset; 856 node->begin += node->offset;
857 node->end += node->offset; 857 node->end += node->offset;
858 node->limit += node->offset; 858 node->limit += node->offset;
859 if (node->left != &tree->nil) 859 if (node->left != &tree->null)
860 node->left->offset += node->offset; 860 node->left->offset += node->offset;
861 if (node->right != &tree->nil) 861 if (node->right != &tree->null)
862 node->right->offset += node->offset; 862 node->right->offset += node->offset;
863 node->offset = 0; 863 node->offset = 0;
864 if (node == tree->root || node->parent->otick == tree->otick) 864 if (node == tree->root || node->parent->otick == tree->otick)
@@ -868,7 +868,7 @@ interval_tree_inherit_offset (const struct interval_tree *tree,
868/* Update limit of NODE and its ancestors. Stop when it becomes 868/* Update limit of NODE and its ancestors. Stop when it becomes
869 stable, i.e. new_limit = old_limit. 869 stable, i.e. new_limit = old_limit.
870 870
871 NODE may also be the nil node, in which case its parent is 871 NODE may also be the null node, in which case its parent is
872 used. (This feature is due to the RB algorithm.) 872 used. (This feature is due to the RB algorithm.)
873*/ 873*/
874 874
@@ -876,9 +876,9 @@ static void
876interval_tree_propagate_limit (const struct interval_tree *tree, 876interval_tree_propagate_limit (const struct interval_tree *tree,
877 struct interval_node *node) 877 struct interval_node *node)
878{ 878{
879 if (node == &tree->nil) 879 if (node == &tree->null)
880 node = node->parent; 880 node = node->parent;
881 if (node == &tree->nil) 881 if (node == &tree->null)
882 return; 882 return;
883 883
884 while (1) { 884 while (1) {
@@ -898,7 +898,7 @@ interval_tree_propagate_limit (const struct interval_tree *tree,
898static void 898static void
899interval_tree_rotate_left (struct interval_tree *tree, struct interval_node *node) 899interval_tree_rotate_left (struct interval_tree *tree, struct interval_node *node)
900{ 900{
901 eassert (node->right != &tree->nil); 901 eassert (node->right != &tree->null);
902 902
903 struct interval_node *right = node->right; 903 struct interval_node *right = node->right;
904 904
@@ -907,11 +907,11 @@ interval_tree_rotate_left (struct interval_tree *tree, struct interval_node *nod
907 907
908 /* Turn right's left subtree into node's right subtree. */ 908 /* Turn right's left subtree into node's right subtree. */
909 node->right = right->left; 909 node->right = right->left;
910 if (right->left != &tree->nil) 910 if (right->left != &tree->null)
911 right->left->parent = node; 911 right->left->parent = node;
912 912
913 /* right's parent was node's parent. */ 913 /* right's parent was node's parent. */
914 if (right != &tree->nil) 914 if (right != &tree->null)
915 right->parent = node->parent; 915 right->parent = node->parent;
916 916
917 /* Get the parent to point to right instead of node. */ 917 /* Get the parent to point to right instead of node. */
@@ -927,7 +927,7 @@ interval_tree_rotate_left (struct interval_tree *tree, struct interval_node *nod
927 927
928 /* Put node on right's left. */ 928 /* Put node on right's left. */
929 right->left = node; 929 right->left = node;
930 if (node != &tree->nil) 930 if (node != &tree->null)
931 node->parent = right; 931 node->parent = right;
932 932
933 /* Order matters here. */ 933 /* Order matters here. */
@@ -940,7 +940,7 @@ interval_tree_rotate_left (struct interval_tree *tree, struct interval_node *nod
940static void 940static void
941interval_tree_rotate_right (struct interval_tree *tree, struct interval_node *node) 941interval_tree_rotate_right (struct interval_tree *tree, struct interval_node *node)
942{ 942{
943 eassert (tree && node && node->left != &tree->nil); 943 eassert (tree && node && node->left != &tree->null);
944 944
945 struct interval_node *left = node->left; 945 struct interval_node *left = node->left;
946 946
@@ -948,10 +948,10 @@ interval_tree_rotate_right (struct interval_tree *tree, struct interval_node *no
948 interval_tree_inherit_offset (tree, left); 948 interval_tree_inherit_offset (tree, left);
949 949
950 node->left = left->right; 950 node->left = left->right;
951 if (left->right != &tree->nil) 951 if (left->right != &tree->null)
952 left->right->parent = node; 952 left->right->parent = node;
953 953
954 if (left != &tree->nil) 954 if (left != &tree->null)
955 left->parent = node->parent; 955 left->parent = node->parent;
956 if (node != tree->root) 956 if (node != tree->root)
957 { 957 {
@@ -964,7 +964,7 @@ interval_tree_rotate_right (struct interval_tree *tree, struct interval_node *no
964 tree->root = left; 964 tree->root = left;
965 965
966 left->right = node; 966 left->right = node;
967 if (node != &tree->nil) 967 if (node != &tree->null)
968 node->parent = left; 968 node->parent = left;
969 969
970 interval_tree_update_limit (tree, left); 970 interval_tree_update_limit (tree, left);
@@ -1133,7 +1133,7 @@ static void
1133interval_tree_transplant (struct interval_tree *tree, struct interval_node *source, 1133interval_tree_transplant (struct interval_tree *tree, struct interval_node *source,
1134 struct interval_node *dest) 1134 struct interval_node *dest)
1135{ 1135{
1136 eassert (tree && source && dest && dest != &tree->nil); 1136 eassert (tree && source && dest && dest != &tree->null);
1137 1137
1138 if (dest == tree->root) 1138 if (dest == tree->root)
1139 tree->root = source; 1139 tree->root = source;
@@ -1149,9 +1149,9 @@ interval_tree_transplant (struct interval_tree *tree, struct interval_node *sour
1149static struct interval_node* 1149static struct interval_node*
1150interval_tree_subtree_min (const struct interval_tree *tree, struct interval_node *node) 1150interval_tree_subtree_min (const struct interval_tree *tree, struct interval_node *node)
1151{ 1151{
1152 if (node == &tree->nil) 1152 if (node == &tree->null)
1153 return node; 1153 return node;
1154 while (node->left != &tree->nil) 1154 while (node->left != &tree->null)
1155 node = node->left; 1155 node = node->left;
1156 return node; 1156 return node;
1157} 1157}
diff --git a/src/itree.h b/src/itree.h
index 08b152f92d2..21d8b21a02f 100644
--- a/src/itree.h
+++ b/src/itree.h
@@ -1,8 +1,8 @@
1/* This file implements an efficient interval data-structure. 1/* This file implements an efficient interval data-structure.
2 2
3Copyright (C) 2017 Andreas Politz (politza@hochschule-trier.de) 3Copyright (C) 2017-2022 Free Software Foundation, Inc.
4 4
5This file is not part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
7GNU Emacs is free software: you can redistribute it and/or modify 7GNU Emacs is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by 8it under the terms of the GNU General Public License as published by
@@ -54,7 +54,7 @@ struct interval_node
54struct interval_tree 54struct interval_tree
55{ 55{
56 struct interval_node *root; 56 struct interval_node *root;
57 struct interval_node nil; /* The tree's version of NULL. */ 57 struct interval_node null; /* The tree's version of NULL. */
58 uintmax_t otick; /* offset tick, compared with node's otick. */ 58 uintmax_t otick; /* offset tick, compared with node's otick. */
59 intmax_t size; /* Number of nodes in the tree. */ 59 intmax_t size; /* Number of nodes in the tree. */
60 struct interval_generator *iter; 60 struct interval_generator *iter;
diff --git a/src/pdumper.c b/src/pdumper.c
index 7618f5d1e87..6c8c2131794 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -2865,7 +2865,7 @@ dump_buffer (struct dump_context *ctx, const struct buffer *in_buffer)
2865 DUMP_FIELD_COPY (out, buffer, long_line_optimizations_p); 2865 DUMP_FIELD_COPY (out, buffer, long_line_optimizations_p);
2866 2866
2867 if (buffer->overlays 2867 if (buffer->overlays
2868 && (buffer->overlays->root != &buffer->overlays->nil)) 2868 && (buffer->overlays->root != &buffer->overlays->null))
2869 /* We haven't implemented the code to dump overlays. */ 2869 /* We haven't implemented the code to dump overlays. */
2870 emacs_abort (); 2870 emacs_abort ();
2871 else 2871 else