X-Git-Url: https://code.kerkeslager.com/?p=fur;a=blobdiff_plain;f=templates%2Fprogram.c;h=7cfd1e3ed31a0ebbdd651b914282fdb46f7873eb;hp=08921b1807d3d38d06648f7d8391eb9c1b51f754;hb=4c47216656579a0e5b81cc3fbab17362ffde3e94;hpb=85dd9abe3cd977cd7f9bdeb9aea15c5b4135d0b2 diff --git a/templates/program.c b/templates/program.c index 08921b1..7cfd1e3 100644 --- a/templates/program.c +++ b/templates/program.c @@ -163,6 +163,11 @@ void Stack_initialize(Stack* self) self->length = 0; } +bool Stack_any(Stack* self) +{ + return self->length > 0; +} + void Stack_push(Stack* self, Object item) { assert(self->length < 256); @@ -695,6 +700,12 @@ int main(int argc, char** argv) if(setjmp(jump) != 0) { fprintf(stderr, "\tin __main__\n"); + + while(Stack_any(stack)) + { + Object item = Stack_pop(stack); + Object_deinitialize(&item); + } Environment_setLive(environment, false); EnvironmentPool_destruct(environmentPool);