[quake3-commits] r1837 - trunk/code/qcommon
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Wed Feb 2 18:57:22 EST 2011
Author: thilo
Date: 2011-02-02 18:57:22 -0500 (Wed, 02 Feb 2011)
New Revision: 1837
Modified:
trunk/code/qcommon/common.c
Log:
Server crash can cause recursive call to Com_Error, too
Modified: trunk/code/qcommon/common.c
===================================================================
--- trunk/code/qcommon/common.c 2011-02-02 16:49:52 UTC (rev 1836)
+++ trunk/code/qcommon/common.c 2011-02-02 23:57:22 UTC (rev 1837)
@@ -287,9 +287,9 @@
Cvar_Set("com_errorMessage", com_errorMessage);
if (code == ERR_DISCONNECT || code == ERR_SERVERDISCONNECT) {
+ VM_Forced_Unload_Start();
SV_Shutdown( "Server disconnected" );
CL_Disconnect( qtrue );
- VM_Forced_Unload_Start();
CL_FlushMemory( );
VM_Forced_Unload_Done();
// make sure we can get at our local stuff
@@ -298,32 +298,36 @@
longjmp (abortframe, -1);
} else if (code == ERR_DROP) {
Com_Printf ("********************\nERROR: %s\n********************\n", com_errorMessage);
+ VM_Forced_Unload_Start();
SV_Shutdown (va("Server crashed: %s", com_errorMessage));
CL_Disconnect( qtrue );
- VM_Forced_Unload_Start();
CL_FlushMemory( );
VM_Forced_Unload_Done();
FS_PureServerSetLoadedPaks("", "");
com_errorEntered = qfalse;
longjmp (abortframe, -1);
} else if ( code == ERR_NEED_CD ) {
+ VM_Forced_Unload_Start();
SV_Shutdown( "Server didn't have CD" );
if ( com_cl_running && com_cl_running->integer ) {
CL_Disconnect( qtrue );
- VM_Forced_Unload_Start();
CL_FlushMemory( );
VM_Forced_Unload_Done();
CL_CDDialog();
} else {
Com_Printf("Server didn't have CD\n" );
+ VM_Forced_Unload_Done();
}
+
FS_PureServerSetLoadedPaks("", "");
com_errorEntered = qfalse;
longjmp (abortframe, -1);
} else {
+ VM_Forced_Unload_Start();
CL_Shutdown (va("Client fatal crashed: %s", com_errorMessage));
SV_Shutdown (va("Server fatal crashed: %s", com_errorMessage));
+ VM_Forced_Unload_Done();
}
Com_Shutdown ();
More information about the quake3-commits
mailing list