]> granicus.if.org Git - nethack/commitdiff
tiny symset memory leak
authorPatR <rankin@nethack.org>
Tue, 10 Nov 2015 03:11:41 +0000 (19:11 -0800)
committerPatR <rankin@nethack.org>
Tue, 10 Nov 2015 03:11:41 +0000 (19:11 -0800)
Symbol set names weren't being freed upon exit.

include/extern.h
src/drawing.c
src/options.c
src/save.c

index 8f6bb1c84f471f52b43b559b6ded991d6a238dd8..54c6ed2b301a0acbbd0ef0093314b9f234e3153e 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 extern.h        $NHDT-Date: 1446516834 2015/11/03 02:13:54 $  $NHDT-Branch: master $:$NHDT-Revision: 1.513 $ */
+/* NetHack 3.6 extern.h        $NHDT-Date: 1447124656 2015/11/10 03:04:16 $  $NHDT-Branch: master $:$NHDT-Revision: 1.515 $ */
 /* Copyright (c) Steve Creps, 1988.                              */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -1638,6 +1638,7 @@ E void FDECL(set_option_mod_status, (const char *, int));
 E int FDECL(add_autopickup_exception, (const char *));
 E void NDECL(free_autopickup_exceptions);
 E int FDECL(load_symset, (const char *, int));
+E void NDECL(free_symsets);
 E void FDECL(parsesymbols, (char *));
 E struct symparse *FDECL(match_sym, (char *));
 E void NDECL(set_playmode);
index 515872a2aeb752c767eaae88a3853b2ab0f378db..96bbd2da2c0b44131c3c55b8547eb6a57a51e49d 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 drawing.c       $NHDT-Date: 1446975466 2015/11/08 09:37:46 $  $NHDT-Branch: master $:$NHDT-Revision: 1.48 $ */
+/* NetHack 3.6 drawing.c       $NHDT-Date: 1447124657 2015/11/10 03:04:17 $  $NHDT-Branch: master $:$NHDT-Revision: 1.49 $ */
 /* Copyright (c) NetHack Development Team 1992.                   */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -520,9 +520,7 @@ boolean name_too;
         free((genericptr_t) symset[which_set].desc);
     symset[which_set].desc = (char *) 0;
 
-    symset[which_set].nocolor = 0;
     symset[which_set].handling = H_UNK;
-    symset[which_set].desc = (char *) 0;
     symset[which_set].nocolor = 0;
     /* initialize restriction bits */
     symset[which_set].primary = 0;
index 140fb02da8a88c2cc09a2f706c26d3e17e7ab417..dd3097f33084e2fbfe9d8df8466d250c8da9e786 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 options.c       $NHDT-Date: 1446854231 2015/11/06 23:57:11 $  $NHDT-Branch: master $:$NHDT-Revision: 1.236 $ */
+/* NetHack 3.6 options.c       $NHDT-Date: 1447124657 2015/11/10 03:04:17 $  $NHDT-Branch: master $:$NHDT-Revision: 1.238 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -4933,6 +4933,17 @@ int which_set;
     return 1;
 }
 
+void
+free_symsets()
+{
+    clear_symsetentry(PRIMARY, TRUE);
+    clear_symsetentry(ROGUESET, TRUE);
+
+    /* symset_list is cleaned up as soon as it's used, so we shouldn't
+       have to anything about it here */
+    /* assert( symset_list == NULL ); */
+}
+
 /* Parse the value of a SYMBOLS line from a config file */
 void
 parsesymbols(opts)
index 18d9a153464e8cc53867f4a85898a92e82e5a955..dccd3a78511c2f34673136d6e988ce2b45364c06 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 save.c  $NHDT-Date: 1446892456 2015/11/07 10:34:16 $  $NHDT-Branch: master $:$NHDT-Revision: 1.92 $ */
+/* NetHack 3.6 save.c  $NHDT-Date: 1447124658 2015/11/10 03:04:18 $  $NHDT-Branch: master $:$NHDT-Revision: 1.93 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -1396,6 +1396,7 @@ freedynamicdata()
 
     /* miscellaneous */
     free_pickinv_cache();
+    free_symsets();
 #endif /* FREE_ALL_MEMORY */
 #ifdef STATUS_VIA_WINDOWPORT
     status_finish();