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