Jacek Caban : vbscript: Fix array reference handling in do_icall.

Alexandre Julliard julliard at winehq.org
Wed Oct 23 15:31:31 CDT 2019


Module: wine
Branch: master
Commit: 9e3c806e53bbf78dffa05b4e86c3332b2de34fa8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=9e3c806e53bbf78dffa05b4e86c3332b2de34fa8

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Oct 23 15:10:58 2019 +0200

vbscript: Fix array reference handling in do_icall.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/vbscript/interp.c       | 4 ++--
 dlls/vbscript/tests/lang.vbs | 3 +--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/dlls/vbscript/interp.c b/dlls/vbscript/interp.c
index a77f974772..fee3e72959 100644
--- a/dlls/vbscript/interp.c
+++ b/dlls/vbscript/interp.c
@@ -544,10 +544,10 @@ static HRESULT do_icall(exec_ctx_t *ctx, VARIANT *res)
 
             switch(V_VT(v)) {
             case VT_ARRAY|VT_BYREF|VT_VARIANT:
-                array = *V_ARRAYREF(ref.u.v);
+                array = *V_ARRAYREF(v);
                 break;
             case VT_ARRAY|VT_VARIANT:
-                array = V_ARRAY(ref.u.v);
+                array = V_ARRAY(v);
                 break;
             case VT_DISPATCH:
                 vbstack_to_dp(ctx, arg_cnt, FALSE, &dp);
diff --git a/dlls/vbscript/tests/lang.vbs b/dlls/vbscript/tests/lang.vbs
index 6ddb2e79f5..ef31004cc4 100644
--- a/dlls/vbscript/tests/lang.vbs
+++ b/dlls/vbscript/tests/lang.vbs
@@ -1300,8 +1300,7 @@ Call testarrarg(false, "VT_BOOL*")
 Call testarrarg(Empty, "VT_EMPTY*")
 
 Sub modifyarr(arr)
-    'Following test crashes on wine
-    'Call ok(arr(0) = "not modified", "arr(0) = " & arr(0))
+    Call ok(arr(0) = "not modified", "arr(0) = " & arr(0))
     arr(0) = "modified"
 End Sub
 




More information about the wine-cvs mailing list