Browse Source

additional cleanup: fixes the cleanup of NULL routines

main
Ludovic 'Archivist' Lagouardette 5 days ago
parent
commit
f9ed5f3fb8
1 changed files with 9 additions and 5 deletions
  1. +9
    -5
      lib.c

+ 9
- 5
lib.c View File

@ -1207,12 +1207,16 @@ void ink_clean_routines(struct context* ctx) {
null.type = INK_INTEGER;
for(i = 0; i < ctx->routines_top; ++i) {
if(ctx->routines[i].panic == INK_ROUTINE_CAN_REUSE || ctx->routines[i].panic == INK_ROUTINE_SUCCESS) {
for (j = 0; j < ctx->routines[i].top; ++j) {
ctx->routines[i].stack[j] = null;
if(ctx->routines[i].stack != NULL) {
for (j = 0; j < ctx->routines[i].top; ++j) {
ctx->routines[i].stack[j] = null;
}
}
for (j = 0; j < ctx->routines[i].function_stack_top; ++j) {
ctx->routines[i].function_stack[j].executing = null;
ctx->routines[i].function_stack[j].index = 0;
if(ctx->routines[i].function_stack != NULL) {
for (j = 0; j < ctx->routines[i].function_stack_top; ++j) {
ctx->routines[i].function_stack[j].executing = null;
ctx->routines[i].function_stack[j].index = 0;
}
}
ctx->routines[i].top = 0;
ctx->routines[i].function_stack_top = 0;

Loading…
Cancel
Save