free 'sysopt' strings upon termination

This commit is contained in:
PatR
2015-03-16 02:03:40 -07:00
parent 14525ed0c6
commit a983a58b6a
4 changed files with 27 additions and 9 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.5 extern.h $NHDT-Date: 1426465429 2015/03/16 00:23:49 $ $NHDT-Branch: debug $:$NHDT-Revision: 1.406 $ */
/* NetHack 3.5 extern.h $NHDT-Date: 1426496453 2015/03/16 09:00:53 $ $NHDT-Branch: master $:$NHDT-Revision: 1.407 $ */
/* NetHack 3.5 extern.h $Date: 2013/11/05 00:57:53 $ $Revision: 1.380 $ */
/* Copyright (c) Steve Creps, 1988. */
/* NetHack may be freely redistributed. See license for details. */
@@ -2065,6 +2065,8 @@ E void FDECL(play_sound_for_message, (const char *));
/* ### sys.c ### */
E void NDECL(sys_early_init);
E void NDECL(sysopt_release);
E void FDECL(sysopt_seduce_set,(int));
/* ### sys/msdos/sound.c ### */

View File

@@ -1,4 +1,4 @@
/* NetHack 3.5 sys.h $NHDT-Date$ $NHDT-Branch$:$NHDT-Revision$ */
/* NetHack 3.5 sys.h $NHDT-Date: 1426496454 2015/03/16 09:00:54 $ $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ */
/* NetHack 3.5 sys.h $Date: 2012/01/27 20:15:26 $ $Revision: 1.9 $ */
/* Copyright (c) Kenneth Lorber, Kensington, Maryland, 2008. */
/* NetHack may be freely redistributed. See license for details. */
@@ -6,10 +6,6 @@
#ifndef SYS_H
#define SYS_H
#define E extern
E void NDECL(sys_early_init);
struct sysopt {
char *support; /* local support contact */
char *recover; /* how to run recover - may be overridden by win port */
@@ -34,7 +30,8 @@ struct sysopt {
#endif
int seduce;
};
E struct sysopt sysopt;
extern struct sysopt sysopt;
#define SYSOPT_SEDUCE sysopt.seduce

View File

@@ -1,4 +1,4 @@
/* NetHack 3.5 save.c $NHDT-Date: 1426465440 2015/03/16 00:24:00 $ $NHDT-Branch: debug $:$NHDT-Revision: 1.61 $ */
/* NetHack 3.5 save.c $NHDT-Date: 1426496455 2015/03/16 09:00:55 $ $NHDT-Branch: master $:$NHDT-Revision: 1.62 $ */
/* NetHack 3.5 save.c $Date: 2012/02/16 02:40:24 $ $Revision: 1.53 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -1350,6 +1350,7 @@ freedynamicdata()
#ifdef STATUS_VIA_WINDOWPORT
status_finish();
#endif
sysopt_release(); /* SYSCF strings */
return;
}

View File

@@ -1,4 +1,4 @@
/* NetHack 3.5 sys.c $NHDT-Date: 1426465442 2015/03/16 00:24:02 $ $NHDT-Branch: debug $:$NHDT-Revision: 1.16 $ */
/* NetHack 3.5 sys.c $NHDT-Date: 1426496455 2015/03/16 09:00:55 $ $NHDT-Branch: master $:$NHDT-Revision: 1.17 $ */
/* NetHack 3.5 sys.c $Date: 2012/03/10 02:22:07 $ $Revision: 1.12 $ */
/* Copyright (c) Kenneth Lorber, Kensington, Maryland, 2008. */
/* NetHack may be freely redistributed. See license for details. */
@@ -67,6 +67,24 @@ sys_early_init()
sysopt_seduce_set(sysopt.seduce);
}
void
sysopt_release()
{
if (sysopt.support)
free(sysopt.support), sysopt.support = NULL;
if (sysopt.recover)
free(sysopt.recover), sysopt.recover = NULL;
if (sysopt.wizards)
free(sysopt.wizards), sysopt.wizards = NULL;
if (sysopt.debugfiles)
free(sysopt.debugfiles), sysopt.debugfiles = NULL;
#ifdef PANICTRACE
if (sysopt.gdbpath)
free(sysopt.gdbpath), sysopt.gdbpath = NULL;
if (sysopt.greppath)
free (sysopt.greppath), sysopt.greppath = NULL;
#endif
}
extern struct attack sa_yes[NATTK];
extern struct attack sa_no[NATTK];