From d481efee3929a109cf484718ca09dfa2a13e4be7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= Date: Thu, 7 Nov 2019 19:30:22 +0100 Subject: [PATCH] vbscript: Release the code list when the script is closed. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gabriel Ivăncescu Signed-off-by: Jacek Caban Signed-off-by: Alexandre Julliard --- dlls/vbscript/vbscript.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/dlls/vbscript/vbscript.c b/dlls/vbscript/vbscript.c index 6d2bb54e52a..938e517c234 100644 --- a/dlls/vbscript/vbscript.c +++ b/dlls/vbscript/vbscript.c @@ -193,13 +193,10 @@ static void release_script(script_ctx_t *ctx) heap_pool_init(&ctx->heap); } -static void destroy_script(script_ctx_t *ctx) +static void release_code_list(script_ctx_t *ctx) { while(!list_empty(&ctx->code_list)) release_vbscode(LIST_ENTRY(list_head(&ctx->code_list), vbscode_t, entry)); - - release_script(ctx); - heap_free(ctx); } static void decrease_state(VBScript *This, SCRIPTSTATE state) @@ -221,6 +218,8 @@ static void decrease_state(VBScript *This, SCRIPTSTATE state) break; release_script(This->ctx); This->thread_id = 0; + if(state == SCRIPTSTATE_CLOSED) + release_code_list(This->ctx); break; case SCRIPTSTATE_CLOSED: break; @@ -396,7 +395,7 @@ static ULONG WINAPI VBScript_Release(IActiveScript *iface) if(!ref) { decrease_state(This, SCRIPTSTATE_CLOSED); - destroy_script(This->ctx); + heap_free(This->ctx); heap_free(This); }