From 5cc730196570f75736e33ec1c6594889bf8b375f Mon Sep 17 00:00:00 2001 From: PatR Date: Sat, 25 May 2019 23:43:42 -0700 Subject: [PATCH] free overview->final_resting_place The #overview command can provide some feedback about levels loaded from bones files; that data wasn't being released at end of game. (There are two copies of that data, one set always in memory with the overview data [final_resting_place field in the 'mapseen' data], and another set with portions attached to each relevant level [via level.bonesinfo]. Neither set was being properly freed; this only addresses one of them, so far. The per-level data can probably be eliminated--for post-3.6--since DUNGEON_OVERVIEW isn't a conditional feature as it was when that was implemented.) --- doc/fixes36.3 | 3 ++- src/dungeon.c | 10 ++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/doc/fixes36.3 b/doc/fixes36.3 index 41c2e8b89..41ef3f97e 100644 --- a/doc/fixes36.3 +++ b/doc/fixes36.3 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.18 $ $NHDT-Date: 1558794988 2019/05/25 14:36:28 $ +$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.22 $ $NHDT-Date: 1558853011 2019/05/26 06:43:31 $ This fixes36.3 file is here to capture information about updates in the 3.6.x lineage following the release of 3.6.2 in May 2019. Please note, however, @@ -24,6 +24,7 @@ when co-located with a boulder you could sometimes swap places with pets of on rare occasions, multiple mine's end luckstones were being marked as the prize and triggering an impossible() on a public server make sure the correct luckstone is the prize in mine's end +free dungeon overview's bones information at end of game Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository diff --git a/src/dungeon.c b/src/dungeon.c index 08722645b..d473e1c2e 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -1,4 +1,4 @@ -/* NetHack 3.6 dungeon.c $NHDT-Date: 1554341477 2019/04/04 01:31:17 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.92 $ */ +/* NetHack 3.6 dungeon.c $NHDT-Date: 1558853012 2019/05/26 06:43:32 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.94 $ */ /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ /*-Copyright (c) Robert Patrick Rankin, 2012. */ /* NetHack may be freely redistributed. See license for details. */ @@ -181,6 +181,8 @@ boolean perform_write, free_data; next_ms = curr_ms->next; if (curr_ms->custom) free((genericptr_t) curr_ms->custom); + if (curr_ms->final_resting_place) + savecemetery(fd, FREE_SAVE, &curr_ms->final_resting_place); free((genericptr_t) curr_ms); } mapseenchn = 0; @@ -2155,7 +2157,8 @@ int ledger_num; struct cemetery *bp, *bpnext; for (mptr = mapseenchn; mptr; mprev = mptr, mptr = mptr->next) - if (dungeons[mptr->lev.dnum].ledger_start + mptr->lev.dlevel == ledger_num) + if (dungeons[mptr->lev.dnum].ledger_start + mptr->lev.dlevel + == ledger_num) break; if (!mptr) @@ -2652,8 +2655,7 @@ recalc_mapseen() } /*ARGUSED*/ -/* valley and sanctum levels get automatic annotation once temple is entered - */ +/* valley and sanctum levels get automatic annotation once temple is entered */ void mapseen_temple(priest) struct monst *priest UNUSED; /* currently unused; might be useful someday */