return NULL;
}
-/* We seem to find ourselves in a situation where callbacks sometimes contain
- * data pointers to users who have been killed and deleted by previously hooked
- * callbacks. This function provides a way to check for that before using
- * what will be unallocated memory pointed to by an old pointer. */
-unsigned int
-dict_validptr(dict_t dict, void *data)
-{
- dict_iterator_t it;
- for (it=dict_first(dict); it; it=iter_next(it)) {
- if(iter_data(it) == data)
- return true;
- }
- return false;
-}
-
-
/*
* This function finds a node and pulls it to the top of the tree.
* This helps balance the tree and auto-cache things you search for.
int res;
if (!node) return NULL;
+ if (!key) return NULL;
N.l = N.r = NULL;
l = r = &N;
if (!dict->root)
return 0;
+ if (!key) return 0;
verify(dict);
dict->root = dict_splay(dict->root, key);
if (irccasecmp(key, dict->root->key))
{
verify(node);
if (!node->key) {
- snprintf(dss->error, sizeof(dss->error), "Node %p had null key", node);
+ snprintf(dss->error, sizeof(dss->error), "Node %p had null key", (void*)node);
return 1;
}
if (node->l) {
if (dict_sanity_check_node(node->l, dss)) return 1;
if (irccasecmp(node->l->key, node->key) >= 0) {
- snprintf(dss->error, sizeof(dss->error), "Node %p's left child's key '%s' >= its key '%s'", node, node->l->key, node->key);
+ snprintf(dss->error, sizeof(dss->error), "Node %p's left child's key '%s' >= its key '%s'", (void*)node, node->l->key, node->key);
return 1;
}
}
if (node->r) {
if (dict_sanity_check_node(node->r, dss)) return 1;
if (irccasecmp(node->key, node->r->key) >= 0) {
- snprintf(dss->error, sizeof(dss->error), "Node %p's right child's key '%s' <= its key '%s'", node, node->r->key, node->key);
+ snprintf(dss->error, sizeof(dss->error), "Node %p's right child's key '%s' <= its key '%s'", (void*)node, node->r->key, node->key);
return 1;
}
}