vbscript: Move create_script_disp call to SetScriptSite.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2019-10-18 16:20:34 +02:00 committed by Alexandre Julliard
parent cbf620491b
commit 229a583c54
2 changed files with 13 additions and 13 deletions

View File

@ -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);
}

View File

@ -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) {