From 6ad651bf77a465ef421ffc6febfafa3efc61d4e6 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Sat, 8 Mar 2014 14:52:35 +0100 Subject: [PATCH] vbscipt: Use VariantCopyInd in exec_script. --- dlls/vbscript/interp.c | 4 ++-- dlls/vbscript/tests/lang.vbs | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c index 8f5556381ec..d05c961bdb1 100644 --- a/dlls/vbscript/interp.c +++ b/dlls/vbscript/interp.c @@ -2029,9 +2029,9 @@ HRESULT exec_script(script_ctx_t *ctx, function_t *func, vbdisp_t *vbthis, DISPP if(func->args[i].by_ref) exec.args[i] = *v; else - hres = VariantCopy(exec.args+i, V_VARIANTREF(v)); + hres = VariantCopyInd(exec.args+i, V_VARIANTREF(v)); }else { - hres = VariantCopy(exec.args+i, v); + hres = VariantCopyInd(exec.args+i, v); } if(FAILED(hres)) { release_exec(&exec); diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs index 4c444f25141..9189163f00e 100644 --- a/dlls/vbscript/tests/lang.vbs +++ b/dlls/vbscript/tests/lang.vbs @@ -1067,4 +1067,13 @@ Set obj = new ArrClass 'todo_wine Call ok(getVT(obj.classarr) = "VT_ARRAY|VT_VARIANT", "getVT(obj.classarr) = " & getVT(obj.classarr)) 'todo_wine Call ok(obj.classarr(1) = 2, "obj.classarr(1) = " & obj.classarr(1)) +Sub arrarg(byref refarr, byval valarr, byref refarr2, byval valarr2) + Call ok(getVT(refarr) = "VT_ARRAY|VT_BYREF|VT_VARIANT*", "getVT(refarr) = " & getVT(refarr)) + Call ok(getVT(valarr) = "VT_ARRAY|VT_VARIANT*", "getVT(valarr) = " & getVT(valarr)) + Call ok(getVT(refarr2) = "VT_ARRAY|VT_VARIANT*", "getVT(refarr2) = " & getVT(refarr2)) + Call ok(getVT(valarr2) = "VT_ARRAY|VT_VARIANT*", "getVT(valarr2) = " & getVT(valarr2)) +End Sub + +Call arrarg(arr, arr, obj.classarr, obj.classarr) + reportSuccess() -- 2.11.4.GIT