follow-up for --showpaths

Ensure that memory allocations are freed up.

Windows:
  Fix a Windows compiler warning.
  Fix an undefined link symbol.
This commit is contained in:
nhmall
2024-12-22 20:45:55 -05:00
parent 57f86662fd
commit a62c62fd96
3 changed files with 11 additions and 1 deletions

View File

@@ -342,7 +342,7 @@ struct instance_globals_d {
/* new */
boolean deferred_showpaths;
const char *deferred_showpaths_dir;
char *deferred_showpaths_dir;
boolean havestate;
unsigned long magic; /* validate that structure layout is preserved */

View File

@@ -4482,12 +4482,19 @@ do_deferred_showpaths(int code)
gd.deferred_showpaths = FALSE;
reveal_paths(code);
/* cleanup before heading to an exit */
freedynamicdata();
dlb_cleanup();
l_nhcore_done();
#ifdef UNIX
after_opt_showpaths(gd.deferred_showpaths_dir);
#else
#ifndef WIN32
#ifdef CHDIR
chdirx(gd.deferred_showpaths_dir, 0);
#endif
#endif
#if defined(WIN32) || defined(MICRO) || defined(OS2)
nethack_exit(EXIT_SUCCESS);
#else

View File

@@ -1278,6 +1278,9 @@ freedynamicdata(void)
if (options_set_window_colors_flag)
options_free_window_colors();
if (glyphid_cache_status())
free_glyphid_cache();
/* last, because it frees data that might be used by panic() to provide
feedback to the user; conceivably other freeing might trigger panic */
sysopt_release(); /* SYSCF strings */