Jacek Caban : vbscipt: Use VariantCopyInd in exec_script.

Alexandre Julliard julliard at winehq.org
Mon Mar 10 14:38:29 CDT 2014


Module: wine
Branch: master
Commit: 6ad651bf77a465ef421ffc6febfafa3efc61d4e6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6ad651bf77a465ef421ffc6febfafa3efc61d4e6

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Sat Mar  8 14:52:35 2014 +0100

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 8f55563..d05c961 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 4c444f2..9189163 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()




More information about the wine-cvs mailing list