Gabriel Ivăncescu : vbscript: Return the named item itself from lookup_named_item.
Alexandre Julliard
julliard at winehq.org
Mon Feb 3 15:06:07 CST 2020
Module: wine
Branch: master
Commit: 07f902b0800e3388885109951f1fb6b0017f2a9b
URL: https://source.winehq.org/git/wine.git/?a=commit;h=07f902b0800e3388885109951f1fb6b0017f2a9b
Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date: Fri Jan 31 15:28:58 2020 +0200
vbscript: Return the named item itself from lookup_named_item.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/vbscript/interp.c | 7 +++----
dlls/vbscript/vbscript.c | 16 ++++++++--------
dlls/vbscript/vbscript.h | 2 +-
3 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c
index 906545cf4a..b328674b60 100644
--- a/dlls/vbscript/interp.c
+++ b/dlls/vbscript/interp.c
@@ -114,7 +114,6 @@ static HRESULT lookup_identifier(exec_ctx_t *ctx, BSTR name, vbdisp_invoke_type_
{
ScriptDisp *script_obj = ctx->script->script_obj;
named_item_t *item;
- IDispatch *disp;
unsigned i;
DISPID id;
HRESULT hres;
@@ -196,10 +195,10 @@ static HRESULT lookup_identifier(exec_ctx_t *ctx, BSTR name, vbdisp_invoke_type_
return S_OK;
}
- disp = lookup_named_item(ctx->script, name, SCRIPTITEM_ISVISIBLE);
- if(disp) {
+ item = lookup_named_item(ctx->script, name, SCRIPTITEM_ISVISIBLE);
+ if(item && item->disp) {
ref->type = REF_OBJ;
- ref->u.obj = disp;
+ ref->u.obj = item->disp;
return S_OK;
}
diff --git a/dlls/vbscript/vbscript.c b/dlls/vbscript/vbscript.c
index 2b691af583..0bbff30bf6 100644
--- a/dlls/vbscript/vbscript.c
+++ b/dlls/vbscript/vbscript.c
@@ -189,7 +189,7 @@ static void exec_queued_code(script_ctx_t *ctx)
}
}
-IDispatch *lookup_named_item(script_ctx_t *ctx, const WCHAR *name, unsigned flags)
+named_item_t *lookup_named_item(script_ctx_t *ctx, const WCHAR *name, unsigned flags)
{
named_item_t *item;
HRESULT hres;
@@ -214,7 +214,7 @@ IDispatch *lookup_named_item(script_ctx_t *ctx, const WCHAR *name, unsigned flag
}
}
- return item->disp;
+ return item;
}
}
@@ -870,7 +870,7 @@ static HRESULT WINAPI VBScriptParse_ParseScriptText(IActiveScriptParse *iface,
DWORD dwFlags, VARIANT *pvarResult, EXCEPINFO *pexcepinfo)
{
VBScript *This = impl_from_IActiveScriptParse(iface);
- IDispatch *context = NULL;
+ named_item_t *item = NULL;
vbscode_t *code;
HRESULT hres;
@@ -882,9 +882,9 @@ static HRESULT WINAPI VBScriptParse_ParseScriptText(IActiveScriptParse *iface,
return E_UNEXPECTED;
if(pstrItemName) {
- context = lookup_named_item(This->ctx, pstrItemName, 0);
- if(!context) {
- WARN("Inknown context %s\n", debugstr_w(pstrItemName));
+ item = lookup_named_item(This->ctx, pstrItemName, 0);
+ if(!item) {
+ WARN("Unknown context %s\n", debugstr_w(pstrItemName));
return E_INVALIDARG;
}
}
@@ -893,8 +893,8 @@ static HRESULT WINAPI VBScriptParse_ParseScriptText(IActiveScriptParse *iface,
if(FAILED(hres))
return hres;
- if(context)
- IDispatch_AddRef(code->context = context);
+ if(item && item->disp)
+ IDispatch_AddRef(code->context = item->disp);
if(!(dwFlags & SCRIPTTEXT_ISEXPRESSION) && !is_started(This)) {
code->pending_exec = TRUE;
diff --git a/dlls/vbscript/vbscript.h b/dlls/vbscript/vbscript.h
index 33ecb45bf4..a3f32fdf0b 100644
--- a/dlls/vbscript/vbscript.h
+++ b/dlls/vbscript/vbscript.h
@@ -372,7 +372,7 @@ HRESULT compile_script(script_ctx_t*,const WCHAR*,const WCHAR*,DWORD_PTR,unsigne
HRESULT compile_procedure(script_ctx_t*,const WCHAR*,const WCHAR*,DWORD_PTR,unsigned,DWORD,class_desc_t**) DECLSPEC_HIDDEN;
HRESULT exec_script(script_ctx_t*,BOOL,function_t*,vbdisp_t*,DISPPARAMS*,VARIANT*) DECLSPEC_HIDDEN;
void release_dynamic_var(dynamic_var_t*) DECLSPEC_HIDDEN;
-IDispatch *lookup_named_item(script_ctx_t*,const WCHAR*,unsigned) DECLSPEC_HIDDEN;
+named_item_t *lookup_named_item(script_ctx_t*,const WCHAR*,unsigned) DECLSPEC_HIDDEN;
void clear_ei(EXCEPINFO*) DECLSPEC_HIDDEN;
HRESULT report_script_error(script_ctx_t*,const vbscode_t*,unsigned) DECLSPEC_HIDDEN;
void detach_global_objects(script_ctx_t*) DECLSPEC_HIDDEN;
More information about the wine-cvs
mailing list