diff options
Diffstat (limited to 'src/map/map.c')
-rw-r--r-- | src/map/map.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/map/map.c b/src/map/map.c index 99d38d1ae..ae99c477b 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -2540,13 +2540,22 @@ int id_db_final(void *k,void *d,va_list ap) nullpo_retr(0, id=d); if(id->lootitem) free(id->lootitem); - free(id); + if(id) + free(id); + return 0; +} +int map_db_final(void *k,void *d,va_list ap) +{ + struct map_data *id; + nullpo_retr(0, id=d); + if(id->gat) + free(id->gat); + if(id) + free(id); return 0; } -int map_db_final(void *k,void *d,va_list ap){ return 0; } int nick_db_final(void *k,void *d,va_list ap){ return 0; } int charid_db_final(void *k,void *d,va_list ap){ return 0; } - static int cleanup_sub(struct block_list *bl, va_list ap) { nullpo_retr(0, bl); |