From ba6edbe5dcfbd27c03683e4d7aebf9593b24c5a7 Mon Sep 17 00:00:00 2001 From: PatR Date: Sun, 26 May 2019 00:11:53 -0700 Subject: [PATCH] save.c cleanup Mostly 'sizeof' usage. This has been sitting around for a while and I wanted to get it out of the way before making some other save.c changes. --- src/save.c | 166 +++++++++++++++++++++-------------------------------- 1 file changed, 64 insertions(+), 102 deletions(-) diff --git a/src/save.c b/src/save.c index c3ce6d06f..b955bde9b 100644 --- a/src/save.c +++ b/src/save.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 save.c $NHDT-Date: 1554591225 2019/04/06 22:53:45 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.117 $ */ +/* NetHack 3.6 save.c $NHDT-Date: 1558854699 2019/05/26 07:11:39 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.118 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Michael Allison, 2009. */ /* NetHack may be freely redistributed. See license for details. */ @@ -287,15 +287,15 @@ register int fd, mode; #endif uid = (unsigned long) getuid(); bwrite(fd, (genericptr_t) &uid, sizeof uid); - bwrite(fd, (genericptr_t) &context, sizeof(struct context_info)); - bwrite(fd, (genericptr_t) &flags, sizeof(struct flag)); + bwrite(fd, (genericptr_t) &context, sizeof context); + bwrite(fd, (genericptr_t) &flags, sizeof flags); #ifdef SYSFLAGS - bwrite(fd, (genericptr_t) &sysflags, sizeof(struct sysflag)); + bwrite(fd, (genericptr_t) &sysflags, sysflags); #endif urealtime.finish_time = getnow(); urealtime.realtime += (long) (urealtime.finish_time - urealtime.start_timing); - bwrite(fd, (genericptr_t) &u, sizeof(struct you)); + bwrite(fd, (genericptr_t) &u, sizeof u); bwrite(fd, yyyymmddhhmmss(ubirthday), 14); bwrite(fd, (genericptr_t) &urealtime.realtime, sizeof urealtime.realtime); bwrite(fd, yyyymmddhhmmss(urealtime.start_timing), 14); /** Why? **/ @@ -324,14 +324,14 @@ register int fd, mode; migrating_objs = 0; migrating_mons = 0; } - bwrite(fd, (genericptr_t) mvitals, sizeof(mvitals)); + bwrite(fd, (genericptr_t) mvitals, sizeof mvitals); save_dungeon(fd, (boolean) !!perform_bwrite(mode), (boolean) !!release_data(mode)); savelevchn(fd, mode); bwrite(fd, (genericptr_t) &moves, sizeof moves); bwrite(fd, (genericptr_t) &monstermoves, sizeof monstermoves); - bwrite(fd, (genericptr_t) &quest_status, sizeof(struct q_score)); + bwrite(fd, (genericptr_t) &quest_status, sizeof quest_status); bwrite(fd, (genericptr_t) spl_book, sizeof(struct spell) * (MAXSPELL + 1)); save_artifacts(fd); @@ -394,7 +394,7 @@ savestateinlock() if (tricked_fileremoved(fd, whynot)) return; - (void) read(fd, (genericptr_t) &hpid, sizeof(hpid)); + (void) read(fd, (genericptr_t) &hpid, sizeof hpid); if (hackpid != hpid) { Sprintf(whynot, "Level #0 pid (%d) doesn't match ours (%d)!", hpid, hackpid); @@ -411,11 +411,11 @@ savestateinlock() done(TRICKED); return; } - (void) write(fd, (genericptr_t) &hackpid, sizeof(hackpid)); + (void) write(fd, (genericptr_t) &hackpid, sizeof hackpid); if (flags.ins_chkpt) { int currlev = ledger_no(&u.uz); - (void) write(fd, (genericptr_t) &currlev, sizeof(currlev)); + (void) write(fd, (genericptr_t) &currlev, sizeof currlev); save_savefile_name(fd); store_version(fd); store_savefileinfo(fd); @@ -496,32 +496,31 @@ int mode; #endif if (lev >= 0 && lev <= maxledgerno()) level_info[lev].flags |= VISITED; - bwrite(fd, (genericptr_t) &hackpid, sizeof(hackpid)); + bwrite(fd, (genericptr_t) &hackpid, sizeof hackpid); #ifdef TOS tlev = lev; tlev &= 0x00ff; - bwrite(fd, (genericptr_t) &tlev, sizeof(tlev)); + bwrite(fd, (genericptr_t) &tlev, sizeof tlev); #else - bwrite(fd, (genericptr_t) &lev, sizeof(lev)); + bwrite(fd, (genericptr_t) &lev, sizeof lev); #endif savecemetery(fd, mode, &level.bonesinfo); - savelevl(fd, - (boolean) ((sfsaveinfo.sfi1 & SFI1_RLECOMP) == SFI1_RLECOMP)); - bwrite(fd, (genericptr_t) lastseentyp, sizeof(lastseentyp)); - bwrite(fd, (genericptr_t) &monstermoves, sizeof(monstermoves)); - bwrite(fd, (genericptr_t) &upstair, sizeof(stairway)); - bwrite(fd, (genericptr_t) &dnstair, sizeof(stairway)); - bwrite(fd, (genericptr_t) &upladder, sizeof(stairway)); - bwrite(fd, (genericptr_t) &dnladder, sizeof(stairway)); - bwrite(fd, (genericptr_t) &sstairs, sizeof(stairway)); - bwrite(fd, (genericptr_t) &updest, sizeof(dest_area)); - bwrite(fd, (genericptr_t) &dndest, sizeof(dest_area)); - bwrite(fd, (genericptr_t) &level.flags, sizeof(level.flags)); - bwrite(fd, (genericptr_t) doors, sizeof(doors)); + savelevl(fd, (boolean) ((sfsaveinfo.sfi1 & SFI1_RLECOMP) == SFI1_RLECOMP)); + bwrite(fd, (genericptr_t) lastseentyp, sizeof lastseentyp); + bwrite(fd, (genericptr_t) &monstermoves, sizeof monstermoves); + bwrite(fd, (genericptr_t) &upstair, sizeof (stairway)); + bwrite(fd, (genericptr_t) &dnstair, sizeof (stairway)); + bwrite(fd, (genericptr_t) &upladder, sizeof (stairway)); + bwrite(fd, (genericptr_t) &dnladder, sizeof (stairway)); + bwrite(fd, (genericptr_t) &sstairs, sizeof (stairway)); + bwrite(fd, (genericptr_t) &updest, sizeof (dest_area)); + bwrite(fd, (genericptr_t) &dndest, sizeof (dest_area)); + bwrite(fd, (genericptr_t) &level.flags, sizeof level.flags); + bwrite(fd, (genericptr_t) doors, sizeof doors); save_rooms(fd); /* no dynamic memory to reclaim */ -/* from here on out, saving also involves allocated memory cleanup */ -skip_lots: + /* from here on out, saving also involves allocated memory cleanup */ + skip_lots: /* this comes before the map, so need cleanup here if we skipped */ if (mode == FREE_SAVE) savecemetery(fd, mode, &level.bonesinfo); @@ -587,21 +586,20 @@ boolean rlecomp; goto writeout; } } else { - /* the run has been broken, - * write out run-length encoding */ - writeout: - bwrite(fd, (genericptr_t) &match, sizeof(uchar)); - bwrite(fd, (genericptr_t) rgrm, sizeof(struct rm)); + /* run has been broken, write out run-length encoding */ + writeout: + bwrite(fd, (genericptr_t) &match, sizeof (uchar)); + bwrite(fd, (genericptr_t) rgrm, sizeof (struct rm)); /* start encoding again. we have at least 1 rm - * in the next run, viz. this one. */ + in the next run, viz. this one. */ match = 1; rgrm = prm; } } } if (match > 0) { - bwrite(fd, (genericptr_t) &match, sizeof(uchar)); - bwrite(fd, (genericptr_t) rgrm, sizeof(struct rm)); + bwrite(fd, (genericptr_t) &match, sizeof (uchar)); + bwrite(fd, (genericptr_t) rgrm, sizeof (struct rm)); } return; } @@ -905,12 +903,12 @@ register int fd, mode; for (tmplev = sp_levchn; tmplev; tmplev = tmplev->next) cnt++; if (perform_bwrite(mode)) - bwrite(fd, (genericptr_t) &cnt, sizeof(int)); + bwrite(fd, (genericptr_t) &cnt, sizeof cnt); for (tmplev = sp_levchn; tmplev; tmplev = tmplev2) { tmplev2 = tmplev->next; if (perform_bwrite(mode)) - bwrite(fd, (genericptr_t) tmplev, sizeof(s_level)); + bwrite(fd, (genericptr_t) tmplev, sizeof *tmplev); if (release_data(mode)) free((genericptr_t) tmplev); } @@ -954,11 +952,11 @@ register int fd, mode; for (tmp_dam = damageptr; tmp_dam; tmp_dam = tmp_dam->next) xl++; if (perform_bwrite(mode)) - bwrite(fd, (genericptr_t) &xl, sizeof(xl)); + bwrite(fd, (genericptr_t) &xl, sizeof xl); while (xl--) { if (perform_bwrite(mode)) - bwrite(fd, (genericptr_t) damageptr, sizeof(*damageptr)); + bwrite(fd, (genericptr_t) damageptr, sizeof *damageptr); tmp_dam = damageptr; damageptr = damageptr->next; if (release_data(mode)) @@ -975,14 +973,11 @@ struct obj *otmp; { int buflen, zerobuf = 0; - buflen = sizeof(struct obj); - bwrite(fd, (genericptr_t) &buflen, sizeof(int)); + buflen = (int) sizeof (struct obj); + bwrite(fd, (genericptr_t) &buflen, sizeof buflen); bwrite(fd, (genericptr_t) otmp, buflen); if (otmp->oextra) { - if (ONAME(otmp)) - buflen = strlen(ONAME(otmp)) + 1; - else - buflen = 0; + buflen = ONAME(otmp) ? (int) strlen(ONAME(otmp)) + 1 : 0; bwrite(fd, (genericptr_t) &buflen, sizeof buflen); if (buflen > 0) bwrite(fd, (genericptr_t) ONAME(otmp), buflen); @@ -993,26 +988,18 @@ struct obj *otmp; else bwrite(fd, (genericptr_t) &zerobuf, sizeof zerobuf); - if (OMID(otmp)) - buflen = sizeof(unsigned); - else - buflen = 0; + buflen = OMID(otmp) ? (int) sizeof (unsigned) : 0; bwrite(fd, (genericptr_t) &buflen, sizeof buflen); if (buflen > 0) bwrite(fd, (genericptr_t) OMID(otmp), buflen); - if (OLONG(otmp)) - buflen = sizeof(long); - else - buflen = 0; + /* TODO: post 3.6.x, get rid of this */ + buflen = OLONG(otmp) ? (int) sizeof (long) : 0; bwrite(fd, (genericptr_t) &buflen, sizeof buflen); if (buflen > 0) bwrite(fd, (genericptr_t) OLONG(otmp), buflen); - if (OMAILCMD(otmp)) - buflen = strlen(OMAILCMD(otmp)) + 1; - else - buflen = 0; + buflen = OMAILCMD(otmp) ? (int) strlen(OMAILCMD(otmp)) + 1 : 0; bwrite(fd, (genericptr_t) &buflen, sizeof buflen); if (buflen > 0) bwrite(fd, (genericptr_t) OMAILCMD(otmp), buflen); @@ -1063,7 +1050,7 @@ register struct obj *otmp; otmp = otmp2; } if (perform_bwrite(mode)) - bwrite(fd, (genericptr_t) &minusone, sizeof(int)); + bwrite(fd, (genericptr_t) &minusone, sizeof (int)); } STATIC_OVL void @@ -1073,58 +1060,34 @@ struct monst *mtmp; { int buflen; - buflen = sizeof(struct monst); - bwrite(fd, (genericptr_t) &buflen, sizeof(int)); + buflen = (int) sizeof (struct monst); + bwrite(fd, (genericptr_t) &buflen, sizeof buflen); bwrite(fd, (genericptr_t) mtmp, buflen); if (mtmp->mextra) { - if (MNAME(mtmp)) - buflen = strlen(MNAME(mtmp)) + 1; - else - buflen = 0; + buflen = MNAME(mtmp) ? (int) strlen(MNAME(mtmp)) + 1 : 0; bwrite(fd, (genericptr_t) &buflen, sizeof buflen); if (buflen > 0) bwrite(fd, (genericptr_t) MNAME(mtmp), buflen); - - if (EGD(mtmp)) - buflen = sizeof(struct egd); - else - buflen = 0; - bwrite(fd, (genericptr_t) &buflen, sizeof(int)); + buflen = EGD(mtmp) ? (int) sizeof (struct egd) : 0; + bwrite(fd, (genericptr_t) &buflen, sizeof buflen); if (buflen > 0) bwrite(fd, (genericptr_t) EGD(mtmp), buflen); - - if (EPRI(mtmp)) - buflen = sizeof(struct epri); - else - buflen = 0; - bwrite(fd, (genericptr_t) &buflen, sizeof(int)); + buflen = EPRI(mtmp) ? (int) sizeof (struct epri) : 0; + bwrite(fd, (genericptr_t) &buflen, sizeof buflen); if (buflen > 0) bwrite(fd, (genericptr_t) EPRI(mtmp), buflen); - - if (ESHK(mtmp)) - buflen = sizeof(struct eshk); - else - buflen = 0; + buflen = ESHK(mtmp) ? (int) sizeof (struct eshk) : 0; bwrite(fd, (genericptr_t) &buflen, sizeof(int)); if (buflen > 0) bwrite(fd, (genericptr_t) ESHK(mtmp), buflen); - - if (EMIN(mtmp)) - buflen = sizeof(struct emin); - else - buflen = 0; + buflen = EMIN(mtmp) ? (int) sizeof (struct emin) : 0; bwrite(fd, (genericptr_t) &buflen, sizeof(int)); if (buflen > 0) bwrite(fd, (genericptr_t) EMIN(mtmp), buflen); - - if (EDOG(mtmp)) - buflen = sizeof(struct edog); - else - buflen = 0; + buflen = EDOG(mtmp) ? (int) sizeof (struct edog) : 0; bwrite(fd, (genericptr_t) &buflen, sizeof(int)); if (buflen > 0) bwrite(fd, (genericptr_t) EDOG(mtmp), buflen); - /* mcorpsenm is inline int rather than pointer to something, so doesn't need to be preceded by a length field */ bwrite(fd, (genericptr_t) &MCORPSENM(mtmp), sizeof MCORPSENM(mtmp)); @@ -1160,7 +1123,7 @@ register struct monst *mtmp; mtmp = mtmp2; } if (perform_bwrite(mode)) - bwrite(fd, (genericptr_t) &minusone, sizeof(int)); + bwrite(fd, (genericptr_t) &minusone, sizeof (int)); } /* save traps; ftrap is the only trap chain so the 2nd arg is superfluous */ @@ -1176,7 +1139,7 @@ int mode; while (trap) { trap2 = trap->ntrap; if (perform_bwrite(mode)) - bwrite(fd, (genericptr_t) trap, sizeof (struct trap)); + bwrite(fd, (genericptr_t) trap, sizeof *trap); if (release_data(mode)) dealloc_trap(trap); trap = trap2; @@ -1201,7 +1164,7 @@ int fd, mode; while (f1) { f2 = f1->nextf; if (f1->fid >= 0 && perform_bwrite(mode)) - bwrite(fd, (genericptr_t) f1, sizeof (struct fruit)); + bwrite(fd, (genericptr_t) f1, sizeof *f1); if (release_data(mode)) dealloc_fruit(f1); f1 = f2; @@ -1220,7 +1183,7 @@ int fd; bufoff(fd); /* bwrite() before bufon() uses plain write() */ - bwrite(fd, (genericptr_t) &plsiztmp, sizeof(plsiztmp)); + bwrite(fd, (genericptr_t) &plsiztmp, sizeof plsiztmp); bwrite(fd, (genericptr_t) plname, plsiztmp); bufon(fd); return; @@ -1246,11 +1209,11 @@ int fd, mode; no need to modify msg[] since terminator isn't written */ if (msglen > BUFSZ - 1) msglen = BUFSZ - 1; - bwrite(fd, (genericptr_t) &msglen, sizeof(msglen)); + bwrite(fd, (genericptr_t) &msglen, sizeof msglen); bwrite(fd, (genericptr_t) msg, msglen); ++msgcount; } - bwrite(fd, (genericptr_t) &minusone, sizeof(int)); + bwrite(fd, (genericptr_t) &minusone, sizeof (int)); } debugpline1("Stored %d messages into savefile.", msgcount); /* note: we don't attempt to handle release_data() here */ @@ -1266,15 +1229,14 @@ int fd; * sfsaveinfo (decl.c) describes the savefile info that actually * gets written into the savefile, and is used to determine the * save file being written. - + * * sfrestinfo (decl.c) describes the savefile info that is * being used to read the information from an existing savefile. - * */ bufoff(fd); /* bwrite() before bufon() uses plain write() */ - bwrite(fd, (genericptr_t) &sfsaveinfo, (unsigned) (sizeof sfsaveinfo)); + bwrite(fd, (genericptr_t) &sfsaveinfo, (unsigned) sizeof sfsaveinfo); bufon(fd); return; }