]> granicus.if.org Git - nethack/commitdiff
free 'sysopt' strings upon termination
authorPatR <rankin@nethack.org>
Mon, 16 Mar 2015 09:03:40 +0000 (02:03 -0700)
committerPatR <rankin@nethack.org>
Mon, 16 Mar 2015 09:03:40 +0000 (02:03 -0700)
include/extern.h
include/sys.h
src/save.c
src/sys.c

index cd8843762e62318a2b025c23f3393128aed40d33..d901d364139a1563205487a3406d8f998fa113d6 100644 (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 ### */
index 8358021a20eef501a9f523a7e0d6c4dfe6f6d417..940e95a119cddc05adf3f8211f7a3deda1daaa59 100644 (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
 
index 165c792dbafe3981aeb2c888b88eec851f88330d..802d560a965cc6fe038a7d746a1dac48c9c713f4 100644 (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;
 }
 
index 0392d655423ca0d731a650a7faa9337245c2c824..52489135e4824eef83cb8b3678b1729d4913ce8b 100644 (file)
--- a/src/sys.c
+++ b/src/sys.c
@@ -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];