mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-11-15 01:01:33 +00:00
Add myargmalloc boolean to detect whether we allocated myargv ourselves or not, so we don't free myargv if we didn't
This commit is contained in:
parent
fe43deacec
commit
08af33c51f
5 changed files with 12 additions and 3 deletions
|
@ -25,6 +25,10 @@ INT32 myargc;
|
|||
*/
|
||||
char **myargv;
|
||||
|
||||
/** \brief did we alloc myargv ourselves?
|
||||
*/
|
||||
boolean myargmalloc = false;
|
||||
|
||||
/** \brief founded the parm
|
||||
*/
|
||||
static INT32 found;
|
||||
|
@ -176,6 +180,7 @@ void M_FindResponseFile(void)
|
|||
free(file);
|
||||
I_Error("Not enough memory to read response file");
|
||||
}
|
||||
myargmalloc = true; // mark as having been allocated by us
|
||||
memset(myargv, 0, sizeof (char *) * MAXARGVS);
|
||||
myargv[0] = firstargv;
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
//
|
||||
extern INT32 myargc;
|
||||
extern char **myargv;
|
||||
extern boolean myargmalloc;
|
||||
|
||||
// Returns the position of the given parameter in the arg list (0 if not found).
|
||||
INT32 M_CheckParm(const char *check);
|
||||
|
|
|
@ -2139,7 +2139,8 @@ void I_Quit(void)
|
|||
printf("\r");
|
||||
ShowEndTxt();
|
||||
}
|
||||
free(myargv); // Deallocate allocated memory
|
||||
if (myargmalloc)
|
||||
free(myargv); // Deallocate allocated memory
|
||||
death:
|
||||
W_Shutdown();
|
||||
exit(0);
|
||||
|
|
|
@ -2301,7 +2301,8 @@ void I_Quit(void)
|
|||
printf("\r");
|
||||
ShowEndTxt();
|
||||
}
|
||||
free(myargv); // Deallocate allocated memory
|
||||
if (myargmalloc)
|
||||
free(myargv); // Deallocate allocated memory
|
||||
death:
|
||||
W_Shutdown();
|
||||
#ifdef GP2X
|
||||
|
|
|
@ -771,7 +771,8 @@ void I_Quit(void)
|
|||
ShowEndTxt(co);
|
||||
}
|
||||
fflush(stderr);
|
||||
free(myargv); // Deallocate allocated memory
|
||||
if (myargmalloc)
|
||||
free(myargv); // Deallocate allocated memory
|
||||
W_Shutdown();
|
||||
exit(0);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue