X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/90a3c35b295b07ebe3793bf5d3b882c3c1a5dc7c..e8e3ef0dfb6fbe28c07e34599f0f48336792b4b3:/src/irc_dictionary.c diff --git a/src/irc_dictionary.c b/src/irc_dictionary.c index 06b115a..89a0a7b 100644 --- a/src/irc_dictionary.c +++ b/src/irc_dictionary.c @@ -23,13 +23,12 @@ */ #include "stdinc.h" -#include "sprintf_irc.h" -#include "irc_string.h" +#include "match.h" #include "client.h" #include "setup.h" #include "irc_dictionary.h" -static BlockHeap *elem_heap = NULL; +static rb_bh *elem_heap = NULL; struct Dictionary { @@ -57,12 +56,12 @@ struct Dictionary */ struct Dictionary *irc_dictionary_create(DCF compare_cb) { - struct Dictionary *dtree = (struct Dictionary *) MyMalloc(sizeof(struct Dictionary)); + struct Dictionary *dtree = (struct Dictionary *) rb_malloc(sizeof(struct Dictionary)); dtree->compare_cb = compare_cb; if (!elem_heap) - elem_heap = BlockHeapCreate(sizeof(struct DictionaryElement), 1024); + elem_heap = rb_bh_create(sizeof(struct DictionaryElement), 1024, "dictionary_elem_heap"); return dtree; } @@ -87,13 +86,13 @@ struct Dictionary *irc_dictionary_create(DCF compare_cb) struct Dictionary *irc_dictionary_create_named(const char *name, DCF compare_cb) { - struct Dictionary *dtree = (struct Dictionary *) MyMalloc(sizeof(struct Dictionary)); + struct Dictionary *dtree = (struct Dictionary *) rb_malloc(sizeof(struct Dictionary)); dtree->compare_cb = compare_cb; - DupString(dtree->id, name); + dtree->id = rb_strdup(name); if (!elem_heap) - elem_heap = BlockHeapCreate(sizeof(struct DictionaryElement), 1024); + elem_heap = rb_bh_create(sizeof(struct DictionaryElement), 1024, "dictionary_elem_heap"); return dtree; } @@ -204,7 +203,7 @@ irc_dictionary_get_linear_index(struct Dictionary *dict, const char *key) * Side Effects: * - a new root node is nominated. */ -void +static void irc_dictionary_retune(struct Dictionary *dict, const char *key) { struct DictionaryElement n, *tn, *left, *right, *node; @@ -303,7 +302,7 @@ irc_dictionary_retune(struct Dictionary *dict, const char *key) * Side Effects: * - a node is linked to the dictionary tree */ -void +static void irc_dictionary_link(struct Dictionary *dict, struct DictionaryElement *delem) { @@ -364,7 +363,7 @@ irc_dictionary_link(struct Dictionary *dict, dict->root->data = delem->data; dict->count--; - BlockHeapFree(elem_heap, delem); + rb_bh_free(elem_heap, delem); } } } @@ -383,7 +382,7 @@ irc_dictionary_link(struct Dictionary *dict, * Side Effects: * - the root node is unlinked from the dictionary tree */ -void +static void irc_dictionary_unlink_root(struct Dictionary *dict) { struct DictionaryElement *delem, *nextnode, *parentofnext; @@ -473,7 +472,7 @@ void irc_dictionary_destroy(struct Dictionary *dtree, if (destroy_cb != NULL) (*destroy_cb)(n, privdata); - BlockHeapFree(elem_heap, n); + rb_bh_free(elem_heap, n); } rb_free(dtree); @@ -645,7 +644,7 @@ void irc_dictionary_foreach_next(struct Dictionary *dtree, if (state->cur == NULL) { - ilog(L_MAIN, "irc_dictionary_foreach_next(): called again after iteration finished on dtree<%p>", dtree); + ilog(L_MAIN, "irc_dictionary_foreach_next(): called again after iteration finished on dtree<%p>", (void *)dtree); return; } @@ -704,7 +703,7 @@ struct DictionaryElement *irc_dictionary_find(struct Dictionary *dict, const cha * Side Effects: * - data is inserted into the DTree. */ -struct DictionaryElement *irc_dictionary_add(struct Dictionary *dict, char *key, void *data) +struct DictionaryElement *irc_dictionary_add(struct Dictionary *dict, const char *key, void *data) { struct DictionaryElement *delem; @@ -713,14 +712,14 @@ struct DictionaryElement *irc_dictionary_add(struct Dictionary *dict, char *key, s_assert(data != NULL); s_assert(irc_dictionary_find(dict, key) == NULL); - delem = BlockHeapAlloc(elem_heap); + delem = rb_bh_alloc(elem_heap); delem->key = key; delem->data = data; /* TBD: is this needed? --nenolod */ if (delem->key == NULL) { - BlockHeapFree(elem_heap, delem); + rb_bh_free(elem_heap, delem); return NULL; } @@ -759,7 +758,7 @@ void *irc_dictionary_delete(struct Dictionary *dtree, const char *key) data = delem->data; irc_dictionary_unlink_root(dtree); - BlockHeapFree(elem_heap, delem); + rb_bh_free(elem_heap, delem); return data; } @@ -851,15 +850,15 @@ void irc_dictionary_stats(struct Dictionary *dict, void (*cb)(const char *line, s_assert(dict != NULL); if (dict->id != NULL) - snprintf(str, sizeof str, "Dictionary stats for %s (%d)", + rb_snprintf(str, sizeof str, "Dictionary stats for %s (%d)", dict->id, dict->count); else - snprintf(str, sizeof str, "Dictionary stats for <%p> (%d)", - dict, dict->count); + rb_snprintf(str, sizeof str, "Dictionary stats for <%p> (%d)", + (void *)dict, dict->count); cb(str, privdata); maxdepth = 0; sum = stats_recurse(dict->root, 0, &maxdepth); - snprintf(str, sizeof str, "Depth sum %d Avg depth %d Max depth %d", sum, sum / dict->count, maxdepth); + rb_snprintf(str, sizeof str, "Depth sum %d Avg depth %d Max depth %d", sum, sum / dict->count, maxdepth); cb(str, privdata); return; }