Jacek Caban : jscript: Allow 'this' to be host object in invoke_value_proc.

Alexandre Julliard julliard at winehq.org
Wed Sep 23 11:03:59 CDT 2009


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Sep 23 16:20:27 2009 +0200

jscript: Allow 'this' to be host object in invoke_value_proc.

---

 dlls/jscript/function.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/dlls/jscript/function.c b/dlls/jscript/function.c
index 74c4e47..88bf9c3 100644
--- a/dlls/jscript/function.c
+++ b/dlls/jscript/function.c
@@ -257,21 +257,19 @@ static HRESULT invoke_constructor(script_ctx_t *ctx, FunctionInstance *function,
 static HRESULT invoke_value_proc(script_ctx_t *ctx, FunctionInstance *function, WORD flags, DISPPARAMS *dp,
         VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller)
 {
-    DispatchEx *this_obj = NULL;
     IDispatch *this_disp;
     vdisp_t vthis;
     HRESULT hres;
 
     this_disp = get_this(dp);
     if(this_disp)
-        this_obj = iface_to_jsdisp((IUnknown*)this_disp);
+        set_disp(&vthis, this_disp);
+    else
+        set_jsdisp(&vthis, ctx->script_disp);
 
-    set_jsdisp(&vthis, this_obj ? this_obj : ctx->script_disp);
     hres = function->value_proc(ctx, &vthis, flags, dp, retv, ei, caller);
-    vdisp_release(&vthis);
 
-    if(this_obj)
-        jsdisp_release(this_obj);
+    vdisp_release(&vthis);
     return hres;
 }
 




More information about the wine-cvs mailing list