diff --git a/dlls/jscript/array.c b/dlls/jscript/array.c index 118624963cf..1bdc68e1139 100644 --- a/dlls/jscript/array.c +++ b/dlls/jscript/array.c @@ -599,7 +599,7 @@ static HRESULT sort_cmp(script_ctx_t *ctx, DispatchEx *cmp_func, VARIANT *v1, VA args[0] = *v2; args[1] = *v1; - hres = jsdisp_call_value(cmp_func, ctx->lcid, DISPATCH_METHOD, &dp, &res, ei, caller); + hres = jsdisp_call_value(cmp_func, DISPATCH_METHOD, &dp, &res, ei, caller); if(FAILED(hres)) return hres; diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c index 77a1fab5238..73382f18d55 100644 --- a/dlls/jscript/dispex.c +++ b/dlls/jscript/dispex.c @@ -239,7 +239,7 @@ static HRESULT set_this(DISPPARAMS *dp, DISPPARAMS *olddp, IDispatch *jsthis) return S_OK; } -static HRESULT invoke_prop_func(DispatchEx *This, DispatchEx *jsthis, dispex_prop_t *prop, LCID lcid, WORD flags, +static HRESULT invoke_prop_func(DispatchEx *This, DispatchEx *jsthis, dispex_prop_t *prop, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller) { HRESULT hres; @@ -250,9 +250,9 @@ static HRESULT invoke_prop_func(DispatchEx *This, DispatchEx *jsthis, dispex_pro WARN("%s is not a constructor\n", debugstr_w(prop->name)); return E_INVALIDARG; } - return prop->u.p->invoke(jsthis, lcid, flags, dp, retv, ei, caller); + return prop->u.p->invoke(jsthis, This->ctx->lcid, flags, dp, retv, ei, caller); case PROP_PROTREF: - return invoke_prop_func(This->prototype, jsthis, This->prototype->props+prop->u.ref, lcid, flags, dp, retv, ei, caller); + return invoke_prop_func(This->prototype, jsthis, This->prototype->props+prop->u.ref, flags, dp, retv, ei, caller); case PROP_VARIANT: { DISPPARAMS new_dp; @@ -267,7 +267,7 @@ static HRESULT invoke_prop_func(DispatchEx *This, DispatchEx *jsthis, dispex_pro if(FAILED(hres)) return hres; - hres = disp_call(V_DISPATCH(&prop->u.var), DISPID_VALUE, lcid, flags, &new_dp, retv, ei, caller); + hres = disp_call(This->ctx, V_DISPATCH(&prop->u.var), DISPID_VALUE, flags, &new_dp, retv, ei, caller); if(new_dp.rgvarg != dp->rgvarg) { heap_free(new_dp.rgvarg); @@ -553,7 +553,7 @@ static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc switch(wFlags) { case DISPATCH_METHOD: case DISPATCH_CONSTRUCT: - hres = invoke_prop_func(This, This, prop, lcid, wFlags, pdp, pvarRes, &jsexcept, pspCaller); + hres = invoke_prop_func(This, This, prop, wFlags, pdp, pvarRes, &jsexcept, pspCaller); break; case DISPATCH_PROPERTYGET: hres = prop_get(This, prop, lcid, pdp, pvarRes, &jsexcept, pspCaller); @@ -823,13 +823,13 @@ HRESULT jsdisp_get_id(DispatchEx *jsdisp, const WCHAR *name, DWORD flags, DISPID return DISP_E_UNKNOWNNAME; } -HRESULT jsdisp_call_value(DispatchEx *disp, LCID lcid, WORD flags, DISPPARAMS *dp, VARIANT *retv, +HRESULT jsdisp_call_value(DispatchEx *disp, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller) { - return disp->builtin_info->value_prop.invoke(disp, lcid, flags, dp, retv, ei, caller); + return disp->builtin_info->value_prop.invoke(disp, disp->ctx->lcid, flags, dp, retv, ei, caller); } -HRESULT jsdisp_call(DispatchEx *disp, DISPID id, LCID lcid, WORD flags, DISPPARAMS *dp, VARIANT *retv, +HRESULT jsdisp_call(DispatchEx *disp, DISPID id, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller) { dispex_prop_t *prop; @@ -842,10 +842,10 @@ HRESULT jsdisp_call(DispatchEx *disp, DISPID id, LCID lcid, WORD flags, DISPPARA if(!prop) return DISP_E_MEMBERNOTFOUND; - return invoke_prop_func(disp, disp, prop, lcid, flags, dp, retv, ei, caller); + return invoke_prop_func(disp, disp, prop, flags, dp, retv, ei, caller); } -HRESULT jsdisp_call_name(DispatchEx *disp, const WCHAR *name, LCID lcid, WORD flags, DISPPARAMS *dp, VARIANT *retv, +HRESULT jsdisp_call_name(DispatchEx *disp, const WCHAR *name, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller) { dispex_prop_t *prop; @@ -859,10 +859,10 @@ HRESULT jsdisp_call_name(DispatchEx *disp, const WCHAR *name, LCID lcid, WORD fl if(retv) V_VT(retv) = VT_EMPTY; - return invoke_prop_func(disp, disp, prop, lcid, flags, dp, retv, ei, caller); + return invoke_prop_func(disp, disp, prop, flags, dp, retv, ei, caller); } -HRESULT disp_call(IDispatch *disp, DISPID id, LCID lcid, WORD flags, DISPPARAMS *dp, VARIANT *retv, +HRESULT disp_call(script_ctx_t *ctx, IDispatch *disp, DISPID id, WORD flags, DISPPARAMS *dp, VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller) { DispatchEx *jsdisp; @@ -871,7 +871,7 @@ HRESULT disp_call(IDispatch *disp, DISPID id, LCID lcid, WORD flags, DISPPARAMS jsdisp = iface_to_jsdisp((IUnknown*)disp); if(jsdisp) { - hres = jsdisp_call(jsdisp, id, lcid, flags, dp, retv, ei, caller); + hres = jsdisp_call(jsdisp, id, flags, dp, retv, ei, caller); jsdisp_release(jsdisp); return hres; } @@ -890,10 +890,10 @@ HRESULT disp_call(IDispatch *disp, DISPID id, LCID lcid, WORD flags, DISPPARAMS } TRACE("using IDispatch\n"); - return IDispatch_Invoke(disp, id, &IID_NULL, lcid, flags, dp, retv, &ei->ei, &err); + return IDispatch_Invoke(disp, id, &IID_NULL, ctx->lcid, flags, dp, retv, &ei->ei, &err); } - hres = IDispatchEx_InvokeEx(dispex, id, lcid, flags, dp, retv, &ei->ei, caller); + hres = IDispatchEx_InvokeEx(dispex, id, ctx->lcid, flags, dp, retv, &ei->ei, caller); IDispatchEx_Release(dispex); return hres; diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c index 5ae829ec7aa..a18eb6bf273 100644 --- a/dlls/jscript/engine.c +++ b/dlls/jscript/engine.c @@ -1550,7 +1550,7 @@ HRESULT new_expression_eval(exec_ctx_t *ctx, expression_t *_expr, DWORD flags, j return E_FAIL; } - hres = disp_call(V_DISPATCH(&constr), DISPID_VALUE, ctx->parser->script->lcid, + hres = disp_call(ctx->parser->script, V_DISPATCH(&constr), DISPID_VALUE, DISPATCH_CONSTRUCT, &dp, &var, ei, NULL/*FIXME*/); IDispatch_Release(V_DISPATCH(&constr)); if(FAILED(hres)) @@ -1581,13 +1581,13 @@ HRESULT call_expression_eval(exec_ctx_t *ctx, expression_t *_expr, DWORD flags, switch(exprval.type) { case EXPRVAL_VARIANT: if(V_VT(&exprval.u.var) == VT_DISPATCH) - hres = disp_call(V_DISPATCH(&exprval.u.var), DISPID_VALUE, ctx->parser->script->lcid, + hres = disp_call(ctx->parser->script, V_DISPATCH(&exprval.u.var), DISPID_VALUE, DISPATCH_METHOD, &dp, flags & EXPR_NOVAL ? NULL : &var, ei, NULL/*FIXME*/); else hres = throw_type_error(ctx->var_disp->ctx, ei, IDS_NO_PROPERTY, NULL); break; case EXPRVAL_IDREF: - hres = disp_call(exprval.u.idref.disp, exprval.u.idref.id, ctx->parser->script->lcid, + hres = disp_call(ctx->parser->script, exprval.u.idref.disp, exprval.u.idref.id, DISPATCH_METHOD, &dp, flags & EXPR_NOVAL ? NULL : &var, ei, NULL/*FIXME*/); break; case EXPRVAL_INVALID: diff --git a/dlls/jscript/global.c b/dlls/jscript/global.c index 6e932efddb6..442da9647c5 100644 --- a/dlls/jscript/global.c +++ b/dlls/jscript/global.c @@ -107,7 +107,7 @@ static HRESULT constructor_call(DispatchEx *constr, LCID lcid, WORD flags, DISPP VARIANT *retv, jsexcept_t *ei, IServiceProvider *sp) { if(flags != DISPATCH_PROPERTYGET) - return jsdisp_call_value(constr, lcid, flags, dp, retv, ei, sp); + return jsdisp_call_value(constr, flags, dp, retv, ei, sp); V_VT(retv) = VT_DISPATCH; V_DISPATCH(retv) = (IDispatch*)_IDispatchEx_(constr); diff --git a/dlls/jscript/jscript.h b/dlls/jscript/jscript.h index 6f861b858f3..89eab82390b 100644 --- a/dlls/jscript/jscript.h +++ b/dlls/jscript/jscript.h @@ -130,10 +130,10 @@ HRESULT init_dispex(DispatchEx*,script_ctx_t*,const builtin_info_t*,DispatchEx*) HRESULT init_dispex_from_constr(DispatchEx*,script_ctx_t*,const builtin_info_t*,DispatchEx*); DispatchEx *iface_to_jsdisp(IUnknown*); -HRESULT disp_call(IDispatch*,DISPID,LCID,WORD,DISPPARAMS*,VARIANT*,jsexcept_t*,IServiceProvider*); -HRESULT jsdisp_call_value(DispatchEx*,LCID,WORD,DISPPARAMS*,VARIANT*,jsexcept_t*,IServiceProvider*); -HRESULT jsdisp_call(DispatchEx*,DISPID,LCID,WORD,DISPPARAMS*,VARIANT*,jsexcept_t*,IServiceProvider*); -HRESULT jsdisp_call_name(DispatchEx*,const WCHAR*,LCID,WORD,DISPPARAMS*,VARIANT*,jsexcept_t*,IServiceProvider*); +HRESULT disp_call(script_ctx_t*,IDispatch*,DISPID,WORD,DISPPARAMS*,VARIANT*,jsexcept_t*,IServiceProvider*); +HRESULT jsdisp_call_value(DispatchEx*,WORD,DISPPARAMS*,VARIANT*,jsexcept_t*,IServiceProvider*); +HRESULT jsdisp_call(DispatchEx*,DISPID,WORD,DISPPARAMS*,VARIANT*,jsexcept_t*,IServiceProvider*); +HRESULT jsdisp_call_name(DispatchEx*,const WCHAR*,WORD,DISPPARAMS*,VARIANT*,jsexcept_t*,IServiceProvider*); HRESULT disp_propget(IDispatch*,DISPID,LCID,VARIANT*,jsexcept_t*,IServiceProvider*); HRESULT disp_propput(IDispatch*,DISPID,LCID,VARIANT*,jsexcept_t*,IServiceProvider*); HRESULT jsdisp_propget(DispatchEx*,DISPID,LCID,VARIANT*,jsexcept_t*,IServiceProvider*); diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c index cef141a5e31..5f5bdad5afa 100644 --- a/dlls/jscript/jsutils.c +++ b/dlls/jscript/jsutils.c @@ -219,7 +219,7 @@ HRESULT to_primitive(script_ctx_t *ctx, VARIANT *v, jsexcept_t *ei, VARIANT *ret hres = jsdisp_get_id(jsdisp, hint == HINT_STRING ? toStringW : valueOfW, 0, &id); if(SUCCEEDED(hres)) { - hres = jsdisp_call(jsdisp, id, ctx->lcid, DISPATCH_METHOD, &dp, ret, ei, NULL /*FIXME*/); + hres = jsdisp_call(jsdisp, id, DISPATCH_METHOD, &dp, ret, ei, NULL /*FIXME*/); if(FAILED(hres)) { WARN("call error - forwarding exception\n"); jsdisp_release(jsdisp); @@ -235,7 +235,7 @@ HRESULT to_primitive(script_ctx_t *ctx, VARIANT *v, jsexcept_t *ei, VARIANT *ret hres = jsdisp_get_id(jsdisp, hint == HINT_STRING ? valueOfW : toStringW, 0, &id); if(SUCCEEDED(hres)) { - hres = jsdisp_call(jsdisp, id, ctx->lcid, DISPATCH_METHOD, &dp, ret, ei, NULL /*FIXME*/); + hres = jsdisp_call(jsdisp, id, DISPATCH_METHOD, &dp, ret, ei, NULL /*FIXME*/); if(FAILED(hres)) { WARN("call error - forwarding exception\n"); jsdisp_release(jsdisp); diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c index 66e4b532d61..b947fd80724 100644 --- a/dlls/jscript/object.c +++ b/dlls/jscript/object.c @@ -78,7 +78,7 @@ static HRESULT Object_toLocaleString(DispatchEx *dispex, LCID lcid, WORD flags, TRACE("\n"); - return jsdisp_call_name(dispex, toStringW, lcid, DISPATCH_METHOD, ¶ms, retv, ei, sp); + return jsdisp_call_name(dispex, toStringW, DISPATCH_METHOD, ¶ms, retv, ei, sp); } static HRESULT Object_valueOf(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *dp, diff --git a/dlls/jscript/string.c b/dlls/jscript/string.c index 355961a9c3c..2a023b7a9a2 100644 --- a/dlls/jscript/string.c +++ b/dlls/jscript/string.c @@ -854,7 +854,7 @@ static HRESULT rep_call(DispatchEx *func, const WCHAR *str, match_result_t *matc } if(SUCCEEDED(hres)) - hres = jsdisp_call_value(func, lcid, DISPATCH_METHOD, &dp, &var, ei, caller); + hres = jsdisp_call_value(func, DISPATCH_METHOD, &dp, &var, ei, caller); for(i=0; i < parens_cnt+1; i++) { if(i != parens_cnt+1)