Sfoglia il codice sorgente

additional cleanup: fixes the cleanup of NULL routines

main
Ludovic 'Archivist' Lagouardette 6 giorni fa
parent
commit
f9ed5f3fb8
1 ha cambiato i file con 9 aggiunte e 5 eliminazioni
  1. +9
    -5
      lib.c

+ 9
- 5
lib.c Vedi 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;

Caricamento…
Annulla
Salva