Jacek Caban : vbscript: Move create_script_disp call to SetScriptSite.
Alexandre Julliard
julliard at winehq.org
Fri Oct 18 14:01:15 CDT 2019
Module: wine
Branch: master
Commit: 229a583c543499f4fcb565fd39206c393124f15d
URL: https://source.winehq.org/git/wine.git/?a=commit;h=229a583c543499f4fcb565fd39206c393124f15d
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Oct 18 16:20:34 2019 +0200
vbscript: Move create_script_disp call to SetScriptSite.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/vbscript/global.c | 12 ------------
dlls/vbscript/vbscript.c | 14 +++++++++++++-
2 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c
index 0f85f66bad..364ff0c02c 100644
--- a/dlls/vbscript/global.c
+++ b/dlls/vbscript/global.c
@@ -2860,14 +2860,6 @@ void detach_global_objects(script_ctx_t *ctx)
IDispatch_Release(&ctx->global_obj->IDispatch_iface);
ctx->global_obj = NULL;
}
-
- if(ctx->script_obj) {
- ScriptDisp *script_obj = ctx->script_obj;
-
- ctx->script_obj = NULL;
- script_obj->ctx = NULL;
- IDispatchEx_Release(&script_obj->IDispatchEx_iface);
- }
}
HRESULT init_global(script_ctx_t *ctx)
@@ -2878,9 +2870,5 @@ HRESULT init_global(script_ctx_t *ctx)
if(FAILED(hres))
return hres;
- hres = create_script_disp(ctx, &ctx->script_obj);
- if(FAILED(hres))
- return hres;
-
return create_builtin_dispatch(ctx, err_props, ARRAY_SIZE(err_props), &ctx->err_obj);
}
diff --git a/dlls/vbscript/vbscript.c b/dlls/vbscript/vbscript.c
index ad5dea5498..8b81b7a5e3 100644
--- a/dlls/vbscript/vbscript.c
+++ b/dlls/vbscript/vbscript.c
@@ -182,6 +182,14 @@ static void release_script(script_ctx_t *ctx)
ctx->site = NULL;
}
+ if(ctx->script_obj) {
+ ScriptDisp *script_obj = ctx->script_obj;
+
+ ctx->script_obj = NULL;
+ script_obj->ctx = NULL;
+ IDispatchEx_Release(&script_obj->IDispatchEx_iface);
+ }
+
detach_global_objects(ctx);
heap_pool_free(&ctx->heap);
heap_pool_init(&ctx->heap);
@@ -415,6 +423,10 @@ static HRESULT WINAPI VBScript_SetScriptSite(IActiveScript *iface, IActiveScript
if(InterlockedCompareExchange(&This->thread_id, GetCurrentThreadId(), 0))
return E_UNEXPECTED;
+ hres = create_script_disp(This->ctx, &This->ctx->script_obj);
+ if(FAILED(hres))
+ return hres;
+
This->ctx->site = pass;
IActiveScriptSite_AddRef(This->ctx->site);
@@ -514,7 +526,7 @@ static HRESULT WINAPI VBScript_AddNamedItem(IActiveScript *iface, LPCOLESTR pstr
TRACE("(%p)->(%s %x)\n", This, debugstr_w(pstrName), dwFlags);
- if(This->thread_id != GetCurrentThreadId() || This->state == SCRIPTSTATE_CLOSED)
+ if(This->thread_id != GetCurrentThreadId() || !This->ctx->site)
return E_UNEXPECTED;
if(dwFlags & SCRIPTITEM_GLOBALMEMBERS) {
More information about the wine-cvs
mailing list