diff options
| author | Franklin Wei <git@fwei.tk> | 2015-12-25 17:28:09 -0500 |
|---|---|---|
| committer | Franklin Wei <git@fwei.tk> | 2015-12-25 17:28:09 -0500 |
| commit | f7041112f179aa79b6e315e7d57afbf76d3cd8bb (patch) | |
| tree | c1c419845c0838ae15afe1da0cc54bf6447a760e /src/room.c | |
| parent | 2a81620aa5b740d7f77aff8177a983b7492b8ea0 (diff) | |
| download | netcosm-f7041112f179aa79b6e315e7d57afbf76d3cd8bb.zip netcosm-f7041112f179aa79b6e315e7d57afbf76d3cd8bb.tar.gz netcosm-f7041112f179aa79b6e315e7d57afbf76d3cd8bb.tar.bz2 netcosm-f7041112f179aa79b6e315e7d57afbf76d3cd8bb.tar.xz | |
implement child lookup via hash table
Diffstat (limited to 'src/room.c')
| -rw-r--r-- | src/room.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -125,11 +125,17 @@ bool world_load(const char *fname, const struct roomdata_t *data, size_t data_sz if(magic != WORLD_MAGIC) return false; read(fd, &world_sz, sizeof(world_sz)); + if(world) + /* possible memory leak here as strings allocated inside of world + aren't freed. avoided by loading only one world per instance */ free(world); + if(world_sz != data_sz) return false; + world = calloc(world_sz, sizeof(struct room_t)); + for(unsigned i = 0; i < world_sz; ++i) { world[i].id = read_roomid(fd); |