]> wimlib.net Git - wimlib/blobdiff - src/rbtree.c
Win32: Fix drive root detection with \\?\-style paths
[wimlib] / src / rbtree.c
index 71a2c533e1fbbbdaec30e99bf67225402f5ab8c3..10d1dc7c111cc74592d66c515aee613b972a9ea9 100644 (file)
   linux/lib/rbtree.c
 */
 
-#include "rbtree.h"
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include "wimlib/rbtree.h"
+#include <stdbool.h>
 
 /*
  * red-black trees properties:  http://en.wikipedia.org/wiki/Rbtree
@@ -63,13 +68,13 @@ struct rb_augment_callbacks {
 
 static inline void rb_set_parent(struct rb_node *rb, struct rb_node *p)
 {
-       rb->__rb_parent_color = rb_color(rb) | (unsigned long)p;
+       rb->__rb_parent_color = rb_color(rb) | (uintptr_t)p;
 }
 
 static inline void rb_set_parent_color(struct rb_node *rb,
                                       struct rb_node *p, int color)
 {
-       rb->__rb_parent_color = (unsigned long)p | color;
+       rb->__rb_parent_color = (uintptr_t)p | color;
 }
 
 static inline void rb_set_black(struct rb_node *rb)
@@ -278,7 +283,7 @@ rb_erase_augmented(struct rb_node *node, struct rb_root *root,
 {
        struct rb_node *child = node->rb_right, *tmp = node->rb_left;
        struct rb_node *parent, *rebalance;
-       unsigned long pc;
+       uintptr_t pc;
 
        if (!tmp) {
                /*
@@ -358,7 +363,7 @@ rb_erase_augmented(struct rb_node *node, struct rb_root *root,
                        rb_set_parent_color(child2, parent, RB_BLACK);
                        rebalance = NULL;
                } else {
-                       unsigned long pc2 = successor->__rb_parent_color;
+                       uintptr_t pc2 = successor->__rb_parent_color;
                        successor->__rb_parent_color = pc;
                        rebalance = __rb_is_black(pc2) ? parent : NULL;
                }