diff options
author | Juan Cespedes <cespedes@debian.org> | 2009-05-14 13:47:58 +0200 |
---|---|---|
committer | Juan Cespedes <cespedes@debian.org> | 2009-05-14 13:47:58 +0200 |
commit | cd8976dbee947f152c3a322503a1063c6359da76 (patch) | |
tree | 2ceab3f0794ec394fdefc75f9be479339673efe1 /dict.c | |
parent | 7c3b431ca18bebd4b78e8e254ad389bc26d6bd57 (diff) | |
download | ltrace-cd8976dbee947f152c3a322503a1063c6359da76.tar.gz |
better debugging support (-d option)
Diffstat (limited to 'dict.c')
-rw-r--r-- | dict.c | 25 |
1 files changed, 21 insertions, 4 deletions
@@ -36,6 +36,8 @@ dict_init(unsigned int (*key2hash) (void *), struct dict *d; int i; + debug(DEBUG_FUNCTION, "dict_init()"); + d = malloc(sizeof(struct dict)); if (!d) { perror("malloc()"); @@ -54,6 +56,7 @@ dict_clear(struct dict *d) { int i; struct dict_entry *entry, *nextentry; + debug(DEBUG_FUNCTION, "dict_clear()"); assert(d); for (i = 0; i < DICTTABLESIZE; i++) { for (entry = d->buckets[i]; entry != NULL; entry = nextentry) { @@ -68,8 +71,13 @@ dict_clear(struct dict *d) { int dict_enter(struct dict *d, void *key, void *value) { struct dict_entry *entry, *newentry; - unsigned int hash = d->key2hash(key); - unsigned int bucketpos = hash % DICTTABLESIZE; + unsigned int hash; + unsigned int bucketpos; + + debug(DEBUG_FUNCTION, "dict_enter()"); + + hash = d->key2hash(key); + bucketpos = hash % DICTTABLESIZE; assert(d); newentry = malloc(sizeof(struct dict_entry)); @@ -98,10 +106,15 @@ dict_enter(struct dict *d, void *key, void *value) { void * dict_find_entry(struct dict *d, void *key) { - unsigned int hash = d->key2hash(key); - unsigned int bucketpos = hash % DICTTABLESIZE; + unsigned int hash; + unsigned int bucketpos; struct dict_entry *entry; + debug(DEBUG_FUNCTION, "dict_find_entry()"); + + hash = d->key2hash(key); + bucketpos = hash % DICTTABLESIZE; + assert(d); for (entry = d->buckets[bucketpos]; entry; entry = entry->next) { if (hash != entry->hash) { @@ -119,6 +132,8 @@ dict_apply_to_all(struct dict *d, void (*func) (void *key, void *value, void *data), void *data) { int i; + debug(DEBUG_FUNCTION, "dict_apply_to_all()"); + if (!d) { return; } @@ -171,6 +186,8 @@ dict_clone(struct dict *old, void * (*key_clone)(void*), void * (*value_clone)(v struct dict *d; int i; + debug(DEBUG_FUNCTION, "dict_clone()"); + d = malloc(sizeof(struct dict)); if (!d) { perror("malloc()"); |