diff options
| author | Sander Vrijders <sander.vrijders@ugent.be> | 2017-03-24 13:36:48 +0000 | 
|---|---|---|
| committer | dimitri staessens <dimitri.staessens@ugent.be> | 2017-03-24 13:36:48 +0000 | 
| commit | 25d262cb383039b1d97a5b41ec477d6a40957398 (patch) | |
| tree | 1967a00bfe73a11cafbee7a5e97173abd7699add /src/lib | |
| parent | e7f439e31aa8cd972b567da8c0421faa1ca09e59 (diff) | |
| parent | 0ed6ef2567a8355013e2cd61a1a31df6be67ae01 (diff) | |
| download | ouroboros-25d262cb383039b1d97a5b41ec477d6a40957398.tar.gz ouroboros-25d262cb383039b1d97a5b41ec477d6a40957398.zip  | |
Merged in sandervrijders/ouroboros/be-full-pff (pull request #421)
ipcpd: normal: Fill in forwarding table
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/hashtable.c | 18 | ||||
| -rw-r--r-- | src/lib/tests/hashtable_test.c | 10 | 
2 files changed, 14 insertions, 14 deletions
diff --git a/src/lib/hashtable.c b/src/lib/hashtable.c index 0a534da7..77b56075 100644 --- a/src/lib/hashtable.c +++ b/src/lib/hashtable.c @@ -76,7 +76,17 @@ struct htable * htable_create(uint64_t buckets, bool hash_key)          return tmp;  } -int htable_destroy(struct htable * table) +void htable_destroy(struct htable * table) +{ +        assert(table); +        assert(table->buckets); + +        htable_flush(table); +        free(table->buckets); +        free(table); +} + +void htable_flush(struct htable * table)  {          unsigned int          i;          struct list_head *    pos = NULL; @@ -88,15 +98,11 @@ int htable_destroy(struct htable * table)          for (i = 0; i < table->buckets_size; i++) {                  list_for_each_safe(pos, n, &(table->buckets[i])) {                          entry = list_entry(pos, struct htable_entry, next); +                        list_del(&entry->next);                          free(entry->val);                          free(entry);                  }          } - -        free(table->buckets); -        free(table); - -        return 0;  }  static uint64_t hash(uint64_t x) diff --git a/src/lib/tests/hashtable_test.c b/src/lib/tests/hashtable_test.c index a5b0e469..1160e34d 100644 --- a/src/lib/tests/hashtable_test.c +++ b/src/lib/tests/hashtable_test.c @@ -42,10 +42,7 @@ int hashtable_test(int argc, char ** argv)                  return -1;          } -        if (htable_destroy(table)) { -                printf("Failed to destroy.\n"); -                return -1; -        } +        htable_destroy(table);          table = htable_create(HASHTABLE_SIZE, false);          if (table == NULL) { @@ -124,10 +121,7 @@ int hashtable_test(int argc, char ** argv)                  return -1;          } -        if (htable_destroy(table)) { -                printf("Failed to destroy.\n"); -                return -1; -        } +        htable_destroy(table);          return 0;  }  | 
