From 5c4813da519537ae6b3d448e516e51ec6ca7975e Mon Sep 17 00:00:00 2001 From: Thilo Schulz Date: Sat, 25 Jun 2011 09:05:57 +0000 Subject: [PATCH] Add forced VM unloading to Com_Quit_f --- code/qcommon/common.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/qcommon/common.c b/code/qcommon/common.c index cf7fbbe5..4c709c2d 100644 --- a/code/qcommon/common.c +++ b/code/qcommon/common.c @@ -362,8 +362,14 @@ void Com_Quit_f( void ) { // don't try to shutdown if we are in a recursive error char *p = Cmd_Args( ); if ( !com_errorEntered ) { + // Some VMs might execute "quit" command directly, + // which would trigger an unload of active VM error. + // Sys_Quit will kill this process anyways, so + // a corrupt call stack makes no difference + VM_Forced_Unload_Start(); SV_Shutdown (p[0] ? p : "Server quit"); CL_Shutdown (p[0] ? p : "Client quit", qtrue); + VM_Forced_Unload_Done(); Com_Shutdown (); FS_Shutdown(qtrue); }