mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-12 07:34:50 +00:00
- finally found the reason why the garbage collector went haywire after a restart: PClass::StaticShutdown set the PClass::bShutdown variable which disables much of the garbage collector. This needs to be cleared after successful cleanup. Restart works now, except for some random CCMDs being executed right afterward.
- fixed incorrect variable init in A_Face* functions which was missed before.
This commit is contained in:
parent
646c135eff
commit
e42b688afa
2 changed files with 5 additions and 4 deletions
|
@ -2652,7 +2652,7 @@ void D_DoomMain (void)
|
||||||
ReleaseGlobalSymbols();
|
ReleaseGlobalSymbols();
|
||||||
PClass::StaticShutdown();
|
PClass::StaticShutdown();
|
||||||
|
|
||||||
GC::FullGC(); // perform one final garbage collection before deleting the class data
|
GC::FullGC(); // perform one final garbage collection after shutdown
|
||||||
|
|
||||||
for (DObject *obj = GC::Root; obj; obj = obj->ObjNext)
|
for (DObject *obj = GC::Root; obj; obj = obj->ObjNext)
|
||||||
{
|
{
|
||||||
|
@ -2660,6 +2660,7 @@ void D_DoomMain (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
restart++;
|
restart++;
|
||||||
|
PClass::bShutdown = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (1);
|
while (1);
|
||||||
|
|
|
@ -2891,7 +2891,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_FaceTarget)
|
||||||
PARAM_ACTION_PROLOGUE;
|
PARAM_ACTION_PROLOGUE;
|
||||||
PARAM_ANGLE_OPT(max_turn) { max_turn = 0; }
|
PARAM_ANGLE_OPT(max_turn) { max_turn = 0; }
|
||||||
PARAM_ANGLE_OPT(max_pitch) { max_pitch = 270; }
|
PARAM_ANGLE_OPT(max_pitch) { max_pitch = 270; }
|
||||||
PARAM_ANGLE_OPT(ang_offset) { max_turn = 0; }
|
PARAM_ANGLE_OPT(ang_offset) { ang_offset = 0; }
|
||||||
PARAM_ANGLE_OPT(pitch_offset) { pitch_offset = 0; }
|
PARAM_ANGLE_OPT(pitch_offset) { pitch_offset = 0; }
|
||||||
PARAM_INT_OPT(flags) { flags = 0; }
|
PARAM_INT_OPT(flags) { flags = 0; }
|
||||||
|
|
||||||
|
@ -2904,7 +2904,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_FaceMaster)
|
||||||
PARAM_ACTION_PROLOGUE;
|
PARAM_ACTION_PROLOGUE;
|
||||||
PARAM_ANGLE_OPT(max_turn) { max_turn = 0; }
|
PARAM_ANGLE_OPT(max_turn) { max_turn = 0; }
|
||||||
PARAM_ANGLE_OPT(max_pitch) { max_pitch = 270; }
|
PARAM_ANGLE_OPT(max_pitch) { max_pitch = 270; }
|
||||||
PARAM_ANGLE_OPT(ang_offset) { max_turn = 0; }
|
PARAM_ANGLE_OPT(ang_offset) { ang_offset = 0; }
|
||||||
PARAM_ANGLE_OPT(pitch_offset) { pitch_offset = 0; }
|
PARAM_ANGLE_OPT(pitch_offset) { pitch_offset = 0; }
|
||||||
PARAM_INT_OPT(flags) { flags = 0; }
|
PARAM_INT_OPT(flags) { flags = 0; }
|
||||||
|
|
||||||
|
@ -2917,7 +2917,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_FaceTracer)
|
||||||
PARAM_ACTION_PROLOGUE;
|
PARAM_ACTION_PROLOGUE;
|
||||||
PARAM_ANGLE_OPT(max_turn) { max_turn = 0; }
|
PARAM_ANGLE_OPT(max_turn) { max_turn = 0; }
|
||||||
PARAM_ANGLE_OPT(max_pitch) { max_pitch = 270; }
|
PARAM_ANGLE_OPT(max_pitch) { max_pitch = 270; }
|
||||||
PARAM_ANGLE_OPT(ang_offset) { max_turn = 0; }
|
PARAM_ANGLE_OPT(ang_offset) { ang_offset = 0; }
|
||||||
PARAM_ANGLE_OPT(pitch_offset) { pitch_offset = 0; }
|
PARAM_ANGLE_OPT(pitch_offset) { pitch_offset = 0; }
|
||||||
PARAM_INT_OPT(flags) { flags = 0; }
|
PARAM_INT_OPT(flags) { flags = 0; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue