capture freezeGC in CPanic

This commit is contained in:
CPunch 2023-09-05 02:23:31 -05:00 committed by cpunch
parent ffff01e9d1
commit 6701a63a63
3 changed files with 3 additions and 0 deletions

View File

@ -12,6 +12,7 @@ CPanic *cosmoV_newPanic(CState *state)
CPanic *panic = cosmoM_xmalloc(state, sizeof(CPanic)); CPanic *panic = cosmoM_xmalloc(state, sizeof(CPanic));
panic->top = state->top; panic->top = state->top;
panic->frameCount = state->frameCount; panic->frameCount = state->frameCount;
panic->freezeGC = state->freezeGC;
panic->prev = state->panic; panic->prev = state->panic;
state->panic = panic; state->panic = panic;

View File

@ -46,6 +46,7 @@ typedef struct CPanic
StkPtr top; StkPtr top;
struct CPanic *prev; struct CPanic *prev;
int frameCount; int frameCount;
int freezeGC;
} CPanic; } CPanic;
struct CState struct CState

View File

@ -122,6 +122,7 @@ void cosmoV_throw(CState *state)
if (state->panic) { if (state->panic) {
state->top = state->panic->top; state->top = state->panic->top;
state->frameCount = state->panic->frameCount; state->frameCount = state->panic->frameCount;
state->freezeGC = state->panic->freezeGC;
cosmoV_pushValue(state, val); cosmoV_pushValue(state, val);
longjmp(state->panic->jmp, 1); longjmp(state->panic->jmp, 1);
} else { } else {