diff options
| author | Franklin Wei <git@fwei.tk> | 2016-01-25 16:10:46 -0500 |
|---|---|---|
| committer | Franklin Wei <git@fwei.tk> | 2016-01-25 16:10:46 -0500 |
| commit | a1acf425cfb00a41c7862c915eb024207658c814 (patch) | |
| tree | fcee7cf8a1c204b779ab50a3545e8671012d7643 /src/hash.c | |
| parent | d351bb34ba256d6fbf0869485bcf75ec46646e74 (diff) | |
| download | netcosm-a1acf425cfb00a41c7862c915eb024207658c814.zip netcosm-a1acf425cfb00a41c7862c915eb024207658c814.tar.gz netcosm-a1acf425cfb00a41c7862c915eb024207658c814.tar.bz2 netcosm-a1acf425cfb00a41c7862c915eb024207658c814.tar.xz | |
inventory works
Diffstat (limited to '')
| -rw-r--r-- | src/hash.c | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -260,3 +260,26 @@ size_t hash_size(void *ptr) struct hash_map *map = ptr; return map->n_entries; } + +void *hash_dup(void *ptr) +{ + struct hash_map *map = ptr; + + struct hash_map *ret = calloc(1, sizeof(struct hash_map)); + memcpy(ret, map, sizeof(*ret)); + + ret->table = calloc(ret->table_sz, sizeof(struct hash_node*)); + ret->n_entries = 0; + + void *save; + while(1) + { + void *key; + void *data = hash_iterate(ptr, &save, &key); + if(!data) + break; + ptr = NULL; + hash_insert(ret, key, data); + } + return ret; +} |