Jacek Caban : jscript: Do not pass DISPATCH_JSCRIPT_CALLEREXECSSOURCE flag for calls across different script contexts.

Alexandre Julliard julliard at winehq.org
Tue Dec 12 16:30:10 CST 2017


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Dec 12 15:27:51 2017 +0100

jscript: Do not pass DISPATCH_JSCRIPT_CALLEREXECSSOURCE flag for calls across different script contexts.

Fixes regression in calls between different contexts. Spotted by Nikolay.

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

---

 dlls/jscript/dispex.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c
index ed88c6f..40c02a0 100644
--- a/dlls/jscript/dispex.c
+++ b/dlls/jscript/dispex.c
@@ -1103,6 +1103,8 @@ HRESULT disp_call(script_ctx_t *ctx, IDispatch *disp, DISPID id, WORD flags, uns
             return E_FAIL;
         }
 
+        if(ctx != jsdisp->ctx)
+            flags &= ~DISPATCH_JSCRIPT_INTERNAL_MASK;
         hres = jsdisp_call(jsdisp, id, flags, argc, argv, ret);
         jsdisp_release(jsdisp);
         return hres;
@@ -1191,6 +1193,8 @@ HRESULT disp_call_value(script_ctx_t *ctx, IDispatch *disp, IDispatch *jsthis, W
 
     jsdisp = iface_to_jsdisp(disp);
     if(jsdisp) {
+        if(ctx != jsdisp->ctx)
+            flags &= ~DISPATCH_JSCRIPT_INTERNAL_MASK;
         hres = jsdisp_call_value(jsdisp, jsthis, flags, argc, argv, r);
         jsdisp_release(jsdisp);
         return hres;




More information about the wine-cvs mailing list