Module: wine Branch: master Commit: ea5c94f84d099b32701a5827bf8f1d6a3f252532 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ea5c94f84d099b32701a5827bf...
Author: Piotr Caban piotr.caban@gmail.com Date: Thu Jul 16 01:17:00 2009 +0200
jscript: Fix create_exec_ctx implementation.
---
dlls/jscript/engine.c | 2 ++ dlls/jscript/function.c | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c index b744904..f3ea33f 100644 --- a/dlls/jscript/engine.c +++ b/dlls/jscript/engine.c @@ -179,6 +179,8 @@ HRESULT create_exec_ctx(IDispatch *this_obj, DispatchEx *var_disp, scope_chain_t if(!ctx) return E_OUTOFMEMORY;
+ ctx->ref = 1; + IDispatch_AddRef(this_obj); ctx->this_obj = this_obj;
diff --git a/dlls/jscript/function.c b/dlls/jscript/function.c index 3863f7d..dac8d3e 100644 --- a/dlls/jscript/function.c +++ b/dlls/jscript/function.c @@ -197,9 +197,10 @@ static HRESULT invoke_constructor(FunctionInstance *function, LCID lcid, DISPPAR return hres;
hres = invoke_source(function, (IDispatch*)_IDispatchEx_(this_obj), lcid, dp, retv, ei, caller); - jsdisp_release(this_obj); - if(FAILED(hres)) + if(FAILED(hres)) { + jsdisp_release(this_obj); return hres; + }
V_VT(retv) = VT_DISPATCH; V_DISPATCH(retv) = (IDispatch*)_IDispatchEx_(this_obj);