From ed884c05796014592bba2370a4c1a5ec0919194c Mon Sep 17 00:00:00 2001 From: PatR Date: Fri, 13 Jan 2023 22:23:30 -0800 Subject: [PATCH] pacify analyzer's complaint - restore_waterlevel() Redo the restore_waterlevel() code a bit to eliminate a static analyzer complaint. The previous code would not have done the right thing if 'gb.bbubbles' was already non-Null, but that should not be possible. I didn't backtrack to make sure that it was always Null at the time restore_waterlevel() gets called. Also, some of the code was misformatted. --- src/mkmaze.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/mkmaze.c b/src/mkmaze.c index 8d58b02e5..e2aa636a2 100644 --- a/src/mkmaze.c +++ b/src/mkmaze.c @@ -1628,33 +1628,35 @@ save_waterlevel(NHFILE* nhfp) unsetup_waterlevel(); } +/* restoring air bubbles on Plane of Water or clouds on Plane of Air */ void -restore_waterlevel(NHFILE* nhfp) +restore_waterlevel(NHFILE *nhfp) { struct bubble *b = (struct bubble *) 0, *btmp; int i, n = 0; + gb.bbubbles = (struct bubble *) 0; set_wportal(); if (nhfp->structlevel) { - mread(nhfp->fd,(genericptr_t)&n,sizeof(int)); - mread(nhfp->fd,(genericptr_t)&gx.xmin,sizeof(int)); - mread(nhfp->fd,(genericptr_t)&gy.ymin,sizeof(int)); - mread(nhfp->fd,(genericptr_t)&gx.xmax,sizeof(int)); - mread(nhfp->fd,(genericptr_t)&gy.ymax,sizeof(int)); + mread(nhfp->fd,(genericptr_t) &n, sizeof (int)); + mread(nhfp->fd,(genericptr_t) &gx.xmin, sizeof (int)); + mread(nhfp->fd,(genericptr_t) &gy.ymin, sizeof (int)); + mread(nhfp->fd,(genericptr_t) &gx.xmax, sizeof (int)); + mread(nhfp->fd,(genericptr_t) &gy.ymax, sizeof (int)); } for (i = 0; i < n; i++) { btmp = b; - b = (struct bubble *) alloc(sizeof(struct bubble)); + b = (struct bubble *) alloc((unsigned) sizeof *b); if (nhfp->structlevel) - mread(nhfp->fd,(genericptr_t) b, sizeof(struct bubble)); - if (gb.bbubbles) { - btmp->next = b; - b->prev = btmp; - } else { - gb.bbubbles = b; - b->prev = (struct bubble *) 0; - } - mv_bubble(b, 0, 0, TRUE); + mread(nhfp->fd, (genericptr_t) b, (unsigned) sizeof *b); + if (btmp) { + btmp->next = b; + b->prev = btmp; + } else { + gb.bbubbles = b; + b->prev = (struct bubble *) 0; + } + mv_bubble(b, 0, 0, TRUE); } ge.ebubbles = b; if (b) {