]> mj.ucw.cz Git - libucw.git/commitdiff
Casting addresses to longs is not portable, use addr_int_t instead.
authorMartin Mares <mj@ucw.cz>
Wed, 18 Jun 2003 10:19:46 +0000 (10:19 +0000)
committerMartin Mares <mj@ucw.cz>
Wed, 18 Jun 2003 10:19:46 +0000 (10:19 +0000)
lib/redblack.h

index b6c37852c78adc559414b2e1f72e2ecdc6f36fd0..b423f4534163717e61c13a051313112e8881be60 100644 (file)
@@ -256,13 +256,13 @@ typedef struct P(stack_entry) {
 #else
        /* Pointers are aligned, hence we can use lower bits.  */
        static inline uns P(red_flag) (P(bucket) *node)
-       { return ((long) node->son[0]) & 1L; }
+       { return ((addr_int_t) node->son[0]) & 1L; }
        static inline void P(set_red_flag) (P(bucket) *node, uns flag)
-       { (long) node->son[0] = (((long) node->son[0]) & ~1L) | (flag & 1L); }
+       { (addr_int_t) node->son[0] = (((addr_int_t) node->son[0]) & ~1L) | (flag & 1L); }
        static inline P(bucket) * P(tree_son) (P(bucket) *node, uns id)
-       { return (void *) (((long) node->son[id]) & ~1L); }
+       { return (void *) (((addr_int_t) node->son[id]) & ~1L); }
        static inline void P(set_tree_son) (P(bucket) *node, uns id, P(bucket) *son)
-       { node->son[id] = (void *) ((long) son | (((long) node->son[id]) & 1L) ); }
+       { node->son[id] = (void *) ((addr_int_t) son | (((addr_int_t) node->son[id]) & 1L) ); }
 #endif
 
 /* Defaults for missing parameters.  */