void genstackfree(int stop_id) { memuse_list_t *curlist = stackusage; while (curlist && curlist->list_id > stop_id) { _stack_genusage(curlist, 0); curlist = curlist->prev; } }
void popstacklist(int codegen) { memuse_list_t *oldlist; assert(stackusage != NULL); if (codegen) { _stack_genusage(stackusage, 1); assert(stackusage->head==NULL); } oldlist = stackusage->prev; free(stackusage); stackusage = oldlist; }
void popstacklist(int codegen) { memuse_list_t *oldlist; assert(stackusage != NULL); if (codegen) { _stack_genusage(stackusage, 1); assert(stackusage->head==NULL); } else { memuse_t *use = stackusage->head; while (use) { memuse_t *temp = use->prev; free(use); use = temp; } } oldlist = stackusage->prev; free(stackusage); stackusage = oldlist; }