void CL_dispose_interpreter(CL_Interpreter *interpreter) { release_global_strings(interpreter); if (interpreter->execute_storage) { MEM_dispose_storage(interpreter->execute_storage); } MEM_dispose_storage(interpreter->interpreter_storage); }
void DKC_dispose_compiler(DKC_Compiler *compiler) { CompilerList *list = NULL; CompilerList *pos; FunctionDefinition *fd_pos; CompilerList *temp; list = traversal_compiler(list, compiler); for (pos = list; pos; ) { for (fd_pos = pos->compiler->function_list; fd_pos; fd_pos = fd_pos->next) { MEM_free(fd_pos->local_variable); } while (pos->compiler->required_list) { temp = pos->compiler->required_list; pos->compiler->required_list = temp->next; MEM_free(temp); } MEM_dispose_storage(pos->compiler->compile_storage); temp = pos->next; MEM_free(pos); pos = temp; } }
void CRB_dispose_interpreter(CRB_Interpreter *interpreter) { release_global_strings(interpreter); if (interpreter->execute_storage) { MEM_dispose_storage(interpreter->execute_storage); } interpreter->variable = NULL; crb_garbage_collect(interpreter); DBG_assert(interpreter->heap.current_heap_size == 0, ("%d bytes leaked.\n", interpreter->heap.current_heap_size)); MEM_free(interpreter->stack.stack); crb_dispose_regexp_literals(interpreter); MEM_dispose_storage(interpreter->interpreter_storage); }
void DKC_dispose_compiler(DKC_Compiler *compiler) { FunctionDefinition *fd_pos; for (fd_pos = compiler->function_list; fd_pos; fd_pos = fd_pos->next) { MEM_free(fd_pos->local_variable); } MEM_dispose_storage(compiler->compile_storage); }