From 3e83d23b19e59e021aaf19833584da1a518ebb61 Mon Sep 17 00:00:00 2001 From: nhmall Date: Sat, 16 Dec 2023 18:30:35 -0500 Subject: [PATCH] skip calling somexyspace() if mkroom ptr is NULL --- include/extern.h | 2 +- src/mklev.c | 10 +++++----- src/mkroom.c | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/extern.h b/include/extern.h index e339ae7f3..c53de5ebe 100644 --- a/include/extern.h +++ b/include/extern.h @@ -1510,7 +1510,7 @@ extern void place_branch(branch *, coordxy, coordxy) NO_NONNULLS; extern boolean occupied(coordxy, coordxy); extern int okdoor(coordxy, coordxy); extern void dodoor(coordxy, coordxy, struct mkroom *) NONNULLARG3; -extern void mktrap(int, int, struct mkroom *, coord *); +extern void mktrap(int, int, struct mkroom *, coord *) NO_NONNULLS; extern void mkstairs(coordxy, coordxy, char, struct mkroom *, boolean); extern void mkinvokearea(void); extern void mineralize(int, int, int, int, boolean); diff --git a/src/mklev.c b/src/mklev.c index e4f6cd62e..4f4a48996 100644 --- a/src/mklev.c +++ b/src/mklev.c @@ -14,7 +14,7 @@ static boolean generate_stairs_room_good(struct mkroom *, int); static struct mkroom *generate_stairs_find_room(void); static void generate_stairs(void); static void mkfount(struct mkroom *); -static boolean find_okay_roompos(struct mkroom *, coord *); +static boolean find_okay_roompos(struct mkroom *, coord *) NONNULLARG12; static void mksink(struct mkroom *); static void mkaltar(struct mkroom *); static void mkgrave(struct mkroom *); @@ -24,7 +24,7 @@ static void fill_ordinary_room(struct mkroom *, boolean); static void makelevel(void); static boolean bydoor(coordxy, coordxy); static void mktrap_victim(struct trap *); -static struct mkroom *find_branch_room(coord *); +static struct mkroom *find_branch_room(coord *) NONNULLARG1; static struct mkroom *pos_to_room(coordxy, coordxy); static boolean cardinal_nextto_room(struct mkroom *, coordxy, coordxy); static boolean place_niche(struct mkroom *, int *, coordxy *, coordxy *); @@ -1456,7 +1456,7 @@ find_branch_room(coord *mp) } else { croom = generate_stairs_find_room(); - if (!somexyspace(croom, mp)) + if (croom && !somexyspace(croom, mp)) impossible("Can't place branch!"); } return croom; @@ -1722,7 +1722,7 @@ mktrap( register int kind; struct trap *t; unsigned lvl = level_difficulty(); - coord m; + coord m = { 0, 0 }; /* no traps in pools */ if (tm && is_pool(tm->x, tm->y)) @@ -1832,7 +1832,7 @@ mktrap( return; if (mktrapflags & MKTRAP_MAZEFLAG) mazexy(&m); - else if (!somexyspace(croom, &m)) + else if (croom && !somexyspace(croom, &m)) return; } while (occupied(m.x, m.y) || (avoid_boulder && sobj_at(BOULDER, m.x, m.y))); diff --git a/src/mkroom.c b/src/mkroom.c index 3ca05a7d0..10f94202d 100644 --- a/src/mkroom.c +++ b/src/mkroom.c @@ -682,7 +682,7 @@ inside_room(struct mkroom* croom, coordxy x, coordxy y) can return a non-accessible location, eg. inside a wall if a themed room is not irregular, but has some non-room terrain */ boolean -somexy(struct mkroom* croom,coord * c) +somexy(struct mkroom *croom,coord *c) { int try_cnt = 0; int i;