pike.git / src / post_modules / CritBit / tree_low.c

version» Context lines:

pike.git/src/post_modules/CritBit/tree_low.c:85:    start.chars = len.chars;    start.bits = diffbit;    return start;    } else return len;    }       return len;   }       - static inline cb_node_t node_init() { -  cb_node_t tree; + static inline cb_node_t node_init(const struct cb_tree * tree) { +  cb_node_t node;    -  tree = CB_NODE_ALLOC(); -  memset(tree, 0, sizeof(cb_node)); -  CB_INIT_VALUE(tree); +  node = CB_NODE_ALLOC(tree); +  memset(node, 0, sizeof(cb_node)); +  CB_INIT_VALUE(node);    -  return tree; +  return node;   }      CB_STATIC CB_INLINE void cb_get_range(const struct cb_tree * src,    struct cb_tree * dst,    const cb_key a, const cb_key b) {    const cb_node_t tree = src->root;    cb_node_t node = cb_index(tree, a);    cb_node_t end = cb_index(tree, b);    /* printf("start: %p, stop: %p in line %d\n", node, end, __LINE__); */    if (!node) node = cb_find_next(tree, a);
pike.git/src/post_modules/CritBit/tree_low.c:146:    }    });       /* printf("new range has %d members.\n", dst->root->size); */    }   }      static inline cb_node_t cb_node_from_string(const struct cb_tree * tree,    const cb_key s,    const cb_value * val) { -  cb_node_t node = node_init(); +  cb_node_t node = node_init(tree);    CB_SET_KEY(node, s);    node->size = 1;    CB_SET_VALUE(node, val);      #ifdef DEBUG_CHECKS    if (!CB_HAS_VALUE(node))    printf("culprit here. %d\n", __LINE__);   #endif       return node;   }      static inline cb_node_t cb_clone_node(const struct cb_tree * tree,    const cb_node_t node) { -  cb_node_t nnode = CB_NODE_ALLOC(); +  cb_node_t nnode = CB_NODE_ALLOC(tree);       memcpy(nnode, node, sizeof(cb_node));    CB_ADD_KEY_REF(node->key);    CB_INIT_VALUE(node);    CB_SET_CHILD(nnode, 0, CB_CHILD(nnode, 0));    CB_SET_CHILD(nnode, 1, CB_CHILD(nnode, 1));    CB_SET_CHILD(node, 0, NULL);    CB_SET_CHILD(node, 1, NULL);       return nnode;
pike.git/src/post_modules/CritBit/tree_low.c:214:    if (CB_HAS_CHILD(node, 1)) {    cb_free_node(tree, CB_CHILD(node, 1));    CB_SET_CHILD(node, 1, NULL);    }    cb_zap_node(tree, node);   }      static inline void cb_zap_node(const struct cb_tree * tree, cb_node_t node) {    CB_FREE_KEY(node->key);    CB_RM_VALUE(node); -  CB_NODE_FREE(node); +  CB_NODE_FREE(tree, node);   }      CB_STATIC CB_INLINE cb_node_t cb_find_first(cb_node_t tree) {    while (tree && !CB_HAS_VALUE(tree)) { tree = CB_CHILD(tree, 0); };       return tree;   }      CB_STATIC CB_INLINE cb_node_t cb_find_last(cb_node_t tree) {    while (1) {