X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=blobdiff_plain;f=csrc%2Foceani.mdc;h=3aa170bd28978a117f7dc27603339437a37727ca;hp=76c8c9b4efd96414511685e620c4d7b7e849acbd;hb=6526e62830ba607ffd914cfc44e2bb90c5405f86;hpb=002a71e19a00ba60303b3406bfe3e5da3c828f5d diff --git a/csrc/oceani.mdc b/csrc/oceani.mdc index 76c8c9b..3aa170b 100644 --- a/csrc/oceani.mdc +++ b/csrc/oceani.mdc @@ -1068,15 +1068,16 @@ need to be freed. For this we need to be able to find it, so assume that context.varlist = b->next; free(b); while (v) { - struct variable *t = v; + struct variable *next = v->previous; - v = t->previous; - if (t->global) { - free_value(t->type, var_value(&context, t)); - if (t->depth == 0) - free_exec(t->where_decl); + if (v->global) { + free_value(v->type, var_value(&context, v)); + if (v->depth == 0) + // This is a global constant + free_exec(v->where_decl); } - free(t); + free(v); + v = next; } }