Jacek Caban : jscript: Don't use dispex->ctx in function.c.
Alexandre Julliard
julliard at winehq.org
Wed Sep 23 11:03:54 CDT 2009
Module: wine
Branch: master
Commit: a9dc89a3e1647f41aff3bc64637e2fd66822baa9
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a9dc89a3e1647f41aff3bc64637e2fd66822baa9
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Sep 23 16:16:43 2009 +0200
jscript: Don't use dispex->ctx in function.c.
---
dlls/jscript/function.c | 57 +++++++++++++++++++++++------------------------
1 files changed, 28 insertions(+), 29 deletions(-)
diff --git a/dlls/jscript/function.c b/dlls/jscript/function.c
index 7d4be89..bd7c99b 100644
--- a/dlls/jscript/function.c
+++ b/dlls/jscript/function.c
@@ -147,7 +147,7 @@ static HRESULT create_arguments(script_ctx_t *ctx, IDispatch *calee, DISPPARAMS
return S_OK;
}
-static HRESULT create_var_disp(FunctionInstance *function, DISPPARAMS *dp, jsexcept_t *ei,
+static HRESULT create_var_disp(script_ctx_t *ctx, FunctionInstance *function, DISPPARAMS *dp, jsexcept_t *ei,
IServiceProvider *caller, DispatchEx **ret)
{
DispatchEx *var_disp, *arg_disp;
@@ -155,11 +155,11 @@ static HRESULT create_var_disp(FunctionInstance *function, DISPPARAMS *dp, jsexc
static const WCHAR argumentsW[] = {'a','r','g','u','m','e','n','t','s',0};
- hres = create_dispex(function->dispex.ctx, NULL, NULL, &var_disp);
+ hres = create_dispex(ctx, NULL, NULL, &var_disp);
if(FAILED(hres))
return hres;
- hres = create_arguments(function->dispex.ctx, (IDispatch*)_IDispatchEx_(&function->dispex),
+ hres = create_arguments(ctx, (IDispatch*)_IDispatchEx_(&function->dispex),
dp, ei, caller, &arg_disp);
if(SUCCEEDED(hres)) {
VARIANT var;
@@ -181,7 +181,7 @@ static HRESULT create_var_disp(FunctionInstance *function, DISPPARAMS *dp, jsexc
return S_OK;
}
-static HRESULT invoke_source(FunctionInstance *function, IDispatch *this_obj, DISPPARAMS *dp,
+static HRESULT invoke_source(script_ctx_t *ctx, FunctionInstance *function, IDispatch *this_obj, DISPPARAMS *dp,
VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller)
{
DispatchEx *var_disp;
@@ -194,7 +194,7 @@ static HRESULT invoke_source(FunctionInstance *function, IDispatch *this_obj, DI
return E_FAIL;
}
- hres = create_var_disp(function, dp, ei, caller, &var_disp);
+ hres = create_var_disp(ctx, function, dp, ei, caller, &var_disp);
if(FAILED(hres))
return hres;
@@ -212,28 +212,28 @@ static HRESULT invoke_source(FunctionInstance *function, IDispatch *this_obj, DI
return hres;
}
-static HRESULT invoke_function(FunctionInstance *function, DISPPARAMS *dp,
+static HRESULT invoke_function(script_ctx_t *ctx, FunctionInstance *function, DISPPARAMS *dp,
VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller)
{
IDispatch *this_obj;
if(!(this_obj = get_this(dp)))
- this_obj = (IDispatch*)_IDispatchEx_(function->dispex.ctx->script_disp);
+ this_obj = (IDispatch*)_IDispatchEx_(ctx->script_disp);
- return invoke_source(function, this_obj, dp, retv, ei, caller);
+ return invoke_source(ctx, function, this_obj, dp, retv, ei, caller);
}
-static HRESULT invoke_constructor(FunctionInstance *function, DISPPARAMS *dp,
+static HRESULT invoke_constructor(script_ctx_t *ctx, FunctionInstance *function, DISPPARAMS *dp,
VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller)
{
DispatchEx *this_obj;
HRESULT hres;
- hres = create_object(function->dispex.ctx, &function->dispex, &this_obj);
+ hres = create_object(ctx, &function->dispex, &this_obj);
if(FAILED(hres))
return hres;
- hres = invoke_source(function, (IDispatch*)_IDispatchEx_(this_obj), dp, retv, ei, caller);
+ hres = invoke_source(ctx, function, (IDispatch*)_IDispatchEx_(this_obj), dp, retv, ei, caller);
if(FAILED(hres)) {
jsdisp_release(this_obj);
return hres;
@@ -244,7 +244,7 @@ static HRESULT invoke_constructor(FunctionInstance *function, DISPPARAMS *dp,
return S_OK;
}
-static HRESULT invoke_value_proc(FunctionInstance *function, WORD flags, DISPPARAMS *dp,
+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;
@@ -255,7 +255,7 @@ static HRESULT invoke_value_proc(FunctionInstance *function, WORD flags, DISPPAR
if(this_disp)
this_obj = iface_to_jsdisp((IUnknown*)this_disp);
- hres = function->value_proc(function->dispex.ctx, this_obj ? this_obj : function->dispex.ctx->script_disp,
+ hres = function->value_proc(ctx, this_obj ? this_obj : ctx->script_disp,
flags, dp, retv, ei, caller);
if(this_obj)
@@ -263,7 +263,7 @@ static HRESULT invoke_value_proc(FunctionInstance *function, WORD flags, DISPPAR
return hres;
}
-static HRESULT call_function(FunctionInstance *function, IDispatch *this_obj, DISPPARAMS *args,
+static HRESULT call_function(script_ctx_t *ctx, FunctionInstance *function, IDispatch *this_obj, DISPPARAMS *args,
VARIANT *retv, jsexcept_t *ei, IServiceProvider *caller)
{
HRESULT hres;
@@ -277,14 +277,13 @@ static HRESULT call_function(FunctionInstance *function, IDispatch *this_obj, DI
FIXME("this_obj is not DispatchEx\n");
}
- hres = function->value_proc(function->dispex.ctx, jsthis ? jsthis : function->dispex.ctx->script_disp,
+ hres = function->value_proc(ctx, jsthis ? jsthis : ctx->script_disp,
DISPATCH_METHOD, args, retv, ei, caller);
if(jsthis)
jsdisp_release(jsthis);
}else {
- hres = invoke_source(function,
- this_obj ? this_obj : (IDispatch*)_IDispatchEx_(function->dispex.ctx->script_disp),
+ hres = invoke_source(ctx, function, this_obj ? this_obj : (IDispatch*)_IDispatchEx_(ctx->script_disp),
args, retv, ei, caller);
}
@@ -350,7 +349,7 @@ static HRESULT Function_toString(script_ctx_t *ctx, DispatchEx *dispex, WORD fla
TRACE("\n");
if(!is_class(dispex, JSCLASS_FUNCTION))
- return throw_type_error(dispex->ctx, ei, IDS_NOT_FUNC, NULL);
+ return throw_type_error(ctx, ei, IDS_NOT_FUNC, NULL);
function = (FunctionInstance*)dispex;
@@ -367,7 +366,7 @@ static HRESULT Function_toString(script_ctx_t *ctx, DispatchEx *dispex, WORD fla
return S_OK;
}
-static HRESULT array_to_args(DispatchEx *arg_array, jsexcept_t *ei, IServiceProvider *caller,
+static HRESULT array_to_args(script_ctx_t *ctx, DispatchEx *arg_array, jsexcept_t *ei, IServiceProvider *caller,
DISPPARAMS *args)
{
VARIANT var, *argv;
@@ -378,7 +377,7 @@ static HRESULT array_to_args(DispatchEx *arg_array, jsexcept_t *ei, IServiceProv
if(FAILED(hres))
return hres;
- hres = to_uint32(arg_array->ctx, &var, ei, &length);
+ hres = to_uint32(ctx, &var, ei, &length);
VariantClear(&var);
if(FAILED(hres))
return hres;
@@ -422,7 +421,7 @@ static HRESULT Function_apply(script_ctx_t *ctx, DispatchEx *dispex, WORD flags,
argc = arg_cnt(dp);
if(argc) {
- hres = to_object(dispex->ctx, get_arg(dp,0), &this_obj);
+ hres = to_object(ctx, get_arg(dp,0), &this_obj);
if(FAILED(hres))
return hres;
}
@@ -440,7 +439,7 @@ static HRESULT Function_apply(script_ctx_t *ctx, DispatchEx *dispex, WORD flags,
}
if(arg_array) {
- hres = array_to_args(arg_array, ei, caller, &args);
+ hres = array_to_args(ctx, arg_array, ei, caller, &args);
jsdisp_release(arg_array);
}else {
FIXME("throw TypeError\n");
@@ -448,7 +447,7 @@ static HRESULT Function_apply(script_ctx_t *ctx, DispatchEx *dispex, WORD flags,
}
}
- hres = call_function(function, this_obj, &args, retv, ei, caller);
+ hres = call_function(ctx, function, this_obj, &args, retv, ei, caller);
if(this_obj)
IDispatch_Release(this_obj);
@@ -478,7 +477,7 @@ static HRESULT Function_call(script_ctx_t *ctx, DispatchEx *dispex, WORD flags,
argc = arg_cnt(dp);
if(argc) {
- hres = to_object(dispex->ctx, get_arg(dp,0), &this_obj);
+ hres = to_object(ctx, get_arg(dp,0), &this_obj);
if(FAILED(hres))
return hres;
args.cArgs = argc-1;
@@ -487,7 +486,7 @@ static HRESULT Function_call(script_ctx_t *ctx, DispatchEx *dispex, WORD flags,
if(args.cArgs)
args.rgvarg = dp->rgvarg + dp->cArgs - args.cArgs-1;
- hres = call_function(function, this_obj, &args, retv, ei, caller);
+ hres = call_function(ctx, function, this_obj, &args, retv, ei, caller);
if(this_obj)
IDispatch_Release(this_obj);
@@ -511,9 +510,9 @@ HRESULT Function_value(script_ctx_t *ctx, DispatchEx *dispex, WORD flags, DISPPA
switch(flags) {
case DISPATCH_METHOD:
if(function->value_proc)
- return invoke_value_proc(function, flags, dp, retv, ei, caller);
+ return invoke_value_proc(ctx, function, flags, dp, retv, ei, caller);
- return invoke_function(function, dp, retv, ei, caller);
+ return invoke_function(ctx, function, dp, retv, ei, caller);
case DISPATCH_PROPERTYGET: {
HRESULT hres;
@@ -530,9 +529,9 @@ HRESULT Function_value(script_ctx_t *ctx, DispatchEx *dispex, WORD flags, DISPPA
case DISPATCH_CONSTRUCT:
if(function->value_proc)
- return invoke_value_proc(function, flags, dp, retv, ei, caller);
+ return invoke_value_proc(ctx, function, flags, dp, retv, ei, caller);
- return invoke_constructor(function, dp, retv, ei, caller);
+ return invoke_constructor(ctx, function, dp, retv, ei, caller);
default:
FIXME("not implemented flags %x\n", flags);
More information about the wine-cvs
mailing list