From d44ae3ef967768d6c6246e8b5672783f635db803 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 23 Aug 2008 14:41:07 -0400 Subject: [PATCH] Fix size of sector bitmap in do_look() and draw_map() They allocated twice as much as needed. --- src/lib/commands/look.c | 4 ++-- src/lib/subs/maps.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/commands/look.c b/src/lib/commands/look.c index 92a635e2..2ee22047 100644 --- a/src/lib/commands/look.c +++ b/src/lib/commands/look.c @@ -72,12 +72,12 @@ do_look(short type) if (!snxtitem(&ni, type, player->argp[1], NULL)) return RET_SYN; - if ((bitmap = malloc((WORLD_X * WORLD_Y) / 8)) == 0) { + bitmap = calloc(WORLD_SZ() / 8, 1); + if (!bitmap) { logerror("malloc failed in do_look\n"); pr("Memory error. Tell the deity.\n"); return RET_FAIL; } - memset(bitmap, 0, (WORLD_X * WORLD_Y) / 8); while (nxtitem(&ni, &unit)) { if (!player->owner) continue; diff --git a/src/lib/subs/maps.c b/src/lib/subs/maps.c index 67b4561e..c8b62051 100644 --- a/src/lib/subs/maps.c +++ b/src/lib/subs/maps.c @@ -147,7 +147,7 @@ draw_map(int bmap, char origin, int map_flags, struct nstr_sect *nsp) } } if (!bitmap) - bitmap = malloc((WORLD_X * WORLD_Y) / 8); + bitmap = malloc(WORLD_SZ() / 8); if (!wmapbuf || !wmap || !bitmap) { pr("Memory error, tell the deity.\n"); logerror("malloc failed in draw_map\n"); @@ -202,7 +202,7 @@ draw_map(int bmap, char origin, int map_flags, struct nstr_sect *nsp) struct sctstr sect; if (!player->god) { - memset(bitmap, 0, (WORLD_X * WORLD_Y) / 8); + memset(bitmap, 0, WORLD_SZ() / 8); bitinit2(nsp, bitmap, player->cnum); } while (nxtsct(nsp, §) && !player->aborted) { @@ -221,7 +221,7 @@ draw_map(int bmap, char origin, int map_flags, struct nstr_sect *nsp) int changed = 0; if (!player->god) { - memset(bitmap, 0, (WORLD_X * WORLD_Y) / 8); + memset(bitmap, 0, WORLD_SZ() / 8); bitinit2(nsp, bitmap, player->cnum); } while (nxtsct(nsp, §) && !player->aborted) { @@ -265,7 +265,7 @@ draw_map(int bmap, char origin, int map_flags, struct nstr_sect *nsp) snxtsct_rewind(nsp); if (!player->god) { - memset(bitmap, 0, (WORLD_X * WORLD_Y) / 8); + memset(bitmap, 0, WORLD_SZ() / 8); bitinit2(nsp, bitmap, player->cnum); } while (nxtsct(nsp, §) && !player->aborted) {