[PATCH 2/3] jscript: Get rid of the jsdisp_addref() and jsdisp_release() wrappers.

Michael Stefaniuc mstefani at redhat.de
Sun Jan 16 05:06:01 CST 2011


---
Patch 1/3 is "jscript: COM cleanup for the IDispatchEx iface."


 dlls/jscript/activex.c  |    2 +-
 dlls/jscript/array.c    |   28 ++++++++++++++--------------
 dlls/jscript/bool.c     |    2 +-
 dlls/jscript/date.c     |    2 +-
 dlls/jscript/dispex.c   |   16 ++++++++--------
 dlls/jscript/engine.c   |   24 ++++++++++++------------
 dlls/jscript/error.c    |   10 +++++-----
 dlls/jscript/function.c |   30 +++++++++++++++---------------
 dlls/jscript/global.c   |    6 +++---
 dlls/jscript/jscript.c  |    2 +-
 dlls/jscript/jscript.h  |   10 ----------
 dlls/jscript/jsutils.c  |   10 +++++-----
 dlls/jscript/math.c     |    2 +-
 dlls/jscript/number.c   |    2 +-
 dlls/jscript/object.c   |    2 +-
 dlls/jscript/regexp.c   |   22 +++++++++++-----------
 dlls/jscript/string.c   |   26 +++++++++++++-------------
 dlls/jscript/vbarray.c  |    8 ++++----
 18 files changed, 97 insertions(+), 107 deletions(-)

diff --git a/dlls/jscript/activex.c b/dlls/jscript/activex.c
index c1f556b..6293505 100644
--- a/dlls/jscript/activex.c
+++ b/dlls/jscript/activex.c
@@ -200,6 +200,6 @@ HRESULT create_activex_constr(script_ctx_t *ctx, jsdisp_t **ret)
     hres = create_builtin_function(ctx, ActiveXObject_value, ActiveXObjectW, NULL,
             PROPF_CONSTR|1, prototype, ret);
 
-    jsdisp_release(prototype);
+    IDispatchEx_Release(&prototype->IDispatchEx_iface);
     return hres;
 }
diff --git a/dlls/jscript/array.c b/dlls/jscript/array.c
index b8fabe1..6fe4c7d 100644
--- a/dlls/jscript/array.c
+++ b/dlls/jscript/array.c
@@ -192,10 +192,10 @@ static HRESULT concat_obj(jsdisp_t *array, IDispatch *obj, DWORD *len, jsexcept_
     if(jsobj) {
         if(is_class(jsobj, JSCLASS_ARRAY)) {
             hres = concat_array(array, (ArrayInstance*)jsobj, len, ei, caller);
-            jsdisp_release(jsobj);
+            IDispatchEx_Release(&jsobj->IDispatchEx_iface);
             return hres;
         }
-        jsdisp_release(jsobj);
+        IDispatchEx_Release(&jsobj->IDispatchEx_iface);
     }
 
     V_VT(&var) = VT_DISPATCH;
@@ -238,7 +238,7 @@ static HRESULT Array_concat(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DISP
     if(retv)
         var_set_jsdisp(retv, ret);
     else
-        jsdisp_release(ret);
+        IDispatchEx_Release(&ret->IDispatchEx_iface);
     return S_OK;
 }
 
@@ -506,7 +506,7 @@ static HRESULT Array_reverse(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, DISP
     }
 
     if(retv) {
-        jsdisp_addref(jsthis);
+        IDispatchEx_AddRef(&jsthis->IDispatchEx_iface);
         var_set_jsdisp(retv, jsthis);
     }
 
@@ -632,7 +632,7 @@ static HRESULT Array_slice(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, DISPPA
         }
 
         if(FAILED(hres)) {
-            jsdisp_release(arr);
+            IDispatchEx_Release(&arr->IDispatchEx_iface);
             return hres;
         }
     }
@@ -640,7 +640,7 @@ static HRESULT Array_slice(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, DISPPA
     if(retv)
         var_set_jsdisp(retv, arr);
     else
-        jsdisp_release(arr);
+        IDispatchEx_Release(&arr->IDispatchEx_iface);
 
     return S_OK;
 }
@@ -736,16 +736,16 @@ static HRESULT Array_sort(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, DISPPAR
         if(!cmp_func || !is_class(cmp_func, JSCLASS_FUNCTION)) {
             WARN("cmp_func is not a function\n");
             if(cmp_func)
-                jsdisp_release(cmp_func);
+                IDispatchEx_Release(&cmp_func->IDispatchEx_iface);
             return E_FAIL;
         }
     }
 
     if(!length) {
         if(cmp_func)
-            jsdisp_release(cmp_func);
+            IDispatchEx_Release(&cmp_func->IDispatchEx_iface);
         if(retv) {
-            jsdisp_addref(jsthis);
+            IDispatchEx_AddRef(&jsthis->IDispatchEx_iface);
             var_set_jsdisp(retv, jsthis);
         }
         return S_OK;
@@ -844,13 +844,13 @@ static HRESULT Array_sort(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, DISPPAR
     }
     heap_free(sorttab);
     if(cmp_func)
-        jsdisp_release(cmp_func);
+        IDispatchEx_Release(&cmp_func->IDispatchEx_iface);
 
     if(FAILED(hres))
         return hres;
 
     if(retv) {
-        jsdisp_addref(jsthis);
+        IDispatchEx_AddRef(&jsthis->IDispatchEx_iface);
         var_set_jsdisp(retv, jsthis);
     }
 
@@ -956,7 +956,7 @@ static HRESULT Array_splice(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, DISPP
 
     if(FAILED(hres)) {
         if(ret_array)
-            jsdisp_release(ret_array);
+            IDispatchEx_Release(&ret_array->IDispatchEx_iface);
         return hres;
     }
 
@@ -1158,7 +1158,7 @@ static HRESULT ArrayConstr_value(script_ctx_t *ctx, vdisp_t *vthis, WORD flags,
                 break;
         }
         if(FAILED(hres)) {
-            jsdisp_release(obj);
+            IDispatchEx_Release(&obj->IDispatchEx_iface);
             return hres;
         }
 
@@ -1209,7 +1209,7 @@ HRESULT create_array_constr(script_ctx_t *ctx, jsdisp_t *object_prototype, jsdis
 
     hres = create_builtin_function(ctx, ArrayConstr_value, ArrayW, NULL, PROPF_CONSTR|1, &array->dispex, ret);
 
-    jsdisp_release(&array->dispex);
+    IDispatchEx_Release(&array->dispex.IDispatchEx_iface);
     return hres;
 }
 
diff --git a/dlls/jscript/bool.c b/dlls/jscript/bool.c
index 96ebdac..7575878 100644
--- a/dlls/jscript/bool.c
+++ b/dlls/jscript/bool.c
@@ -193,7 +193,7 @@ HRESULT create_bool_constr(script_ctx_t *ctx, jsdisp_t *object_prototype, jsdisp
     hres = create_builtin_function(ctx, BoolConstr_value, BooleanW, NULL,
             PROPF_CONSTR|1, &bool->dispex, ret);
 
-    jsdisp_release(&bool->dispex);
+    IDispatchEx_Release(&bool->dispex.IDispatchEx_iface);
     return hres;
 }
 
diff --git a/dlls/jscript/date.c b/dlls/jscript/date.c
index 7015e0f..14f3cc9 100644
--- a/dlls/jscript/date.c
+++ b/dlls/jscript/date.c
@@ -2670,6 +2670,6 @@ HRESULT create_date_constr(script_ctx_t *ctx, jsdisp_t *object_prototype, jsdisp
     hres = create_builtin_function(ctx, DateConstr_value, DateW, &DateConstr_info,
             PROPF_CONSTR|7, date, ret);
 
-    jsdisp_release(date);
+    IDispatchEx_Release(&date->IDispatchEx_iface);
     return hres;
 }
diff --git a/dlls/jscript/dispex.c b/dlls/jscript/dispex.c
index 653857c..7d2c6c3 100644
--- a/dlls/jscript/dispex.c
+++ b/dlls/jscript/dispex.c
@@ -440,7 +440,7 @@ static HRESULT WINAPI DispatchEx_QueryInterface(IDispatchEx *iface, REFIID riid,
         *ppv = &This->IDispatchEx_iface;
     }else if(IsEqualGUID(&IID_IDispatchJS, riid)) {
         TRACE("(%p)->(IID_IDispatchJS %p)\n", This, ppv);
-        jsdisp_addref(This);
+        IDispatchEx_AddRef(&This->IDispatchEx_iface);
         *ppv = This;
         return S_OK;
     }else {
@@ -481,7 +481,7 @@ static ULONG WINAPI DispatchEx_Release(IDispatchEx *iface)
         heap_free(This->props);
         script_release(This->ctx);
         if(This->prototype)
-            jsdisp_release(This->prototype);
+            IDispatchEx_Release(&This->prototype->IDispatchEx_iface);
 
         if(This->builtin_info->destructor)
             This->builtin_info->destructor(This);
@@ -758,7 +758,7 @@ HRESULT init_dispex(jsdisp_t *dispex, script_ctx_t *ctx, const builtin_info_t *b
 
     dispex->prototype = prototype;
     if(prototype)
-        jsdisp_addref(prototype);
+        IDispatchEx_AddRef(&prototype->IDispatchEx_iface);
 
     dispex->prop_cnt = 1;
     dispex->props[0].name = NULL;
@@ -831,7 +831,7 @@ HRESULT init_dispex_from_constr(jsdisp_t *dispex, script_ctx_t *ctx, const built
     hres = init_dispex(dispex, ctx, builtin_info, prot);
 
     if(prot)
-        jsdisp_release(prot);
+        IDispatchEx_Release(&prot->IDispatchEx_iface);
     if(FAILED(hres))
         return hres;
 
@@ -845,7 +845,7 @@ HRESULT init_dispex_from_constr(jsdisp_t *dispex, script_ctx_t *ctx, const built
         hres = prop_put(dispex, prop, &var, &jsexcept, NULL/*FIXME*/);
     }
     if(FAILED(hres))
-        jsdisp_release(dispex);
+        IDispatchEx_Release(&dispex->IDispatchEx_iface);
 
     return hres;
 }
@@ -938,7 +938,7 @@ HRESULT disp_call(script_ctx_t *ctx, IDispatch *disp, DISPID id, WORD flags, DIS
     jsdisp = iface_to_jsdisp((IUnknown*)disp);
     if(jsdisp) {
         hres = jsdisp_call(jsdisp, id, flags, dp, retv, ei, caller);
-        jsdisp_release(jsdisp);
+        IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
         return hres;
     }
 
@@ -1016,7 +1016,7 @@ HRESULT disp_propput(script_ctx_t *ctx, IDispatch *disp, DISPID id, VARIANT *val
         else
             hres = DISP_E_MEMBERNOTFOUND;
 
-        jsdisp_release(jsdisp);
+        IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
     }else {
         DISPID dispid = DISPID_PROPERTYPUT;
         DISPPARAMS dp  = {val, &dispid, 1, 1};
@@ -1099,7 +1099,7 @@ HRESULT disp_propget(script_ctx_t *ctx, IDispatch *disp, DISPID id, VARIANT *val
     jsdisp = iface_to_jsdisp((IUnknown*)disp);
     if(jsdisp) {
         hres = jsdisp_propget(jsdisp, id, val, ei, caller);
-        jsdisp_release(jsdisp);
+        IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
         return hres;
     }
 
diff --git a/dlls/jscript/engine.c b/dlls/jscript/engine.c
index 9a5ecbc..d4e0071 100644
--- a/dlls/jscript/engine.c
+++ b/dlls/jscript/engine.c
@@ -143,7 +143,7 @@ HRESULT scope_push(scope_chain_t *scope, jsdisp_t *obj, scope_chain_t **ret)
 
     new_scope->ref = 1;
 
-    jsdisp_addref(obj);
+    IDispatchEx_AddRef(&obj->IDispatchEx_iface);
     new_scope->obj = obj;
 
     if(scope) {
@@ -174,7 +174,7 @@ void scope_release(scope_chain_t *scope)
     if(scope->next)
         scope_release(scope->next);
 
-    jsdisp_release(scope->obj);
+    IDispatchEx_Release(&scope->obj->IDispatchEx_iface);
     heap_free(scope);
 }
 
@@ -198,7 +198,7 @@ HRESULT create_exec_ctx(script_ctx_t *script_ctx, IDispatch *this_obj, jsdisp_t
         ctx->this_obj = to_disp(script_ctx->global);
     IDispatch_AddRef(ctx->this_obj);
 
-    jsdisp_addref(var_disp);
+    IDispatchEx_AddRef(&var_disp->IDispatchEx_iface);
     ctx->var_disp = var_disp;
 
     if(scope) {
@@ -218,7 +218,7 @@ void exec_release(exec_ctx_t *ctx)
     if(ctx->scope_chain)
         scope_release(ctx->scope_chain);
     if(ctx->var_disp)
-        jsdisp_release(ctx->var_disp);
+        IDispatchEx_Release(&ctx->var_disp->IDispatchEx_iface);
     if(ctx->this_obj)
         IDispatch_Release(ctx->this_obj);
     heap_free(ctx);
@@ -435,7 +435,7 @@ HRESULT exec_source(exec_ctx_t *ctx, parser_ctx_t *parser, source_elements_t *so
 
         var_set_jsdisp(&var, func_obj);
         hres = jsdisp_propput_name(ctx->var_disp, func->expr->identifier, &var, ei, NULL);
-        jsdisp_release(func_obj);
+        IDispatchEx_Release(&func_obj->IDispatchEx_iface);
         if(FAILED(hres))
             return hres;
     }
@@ -1041,7 +1041,7 @@ HRESULT with_statement_eval(script_ctx_t *ctx, statement_t *_stat, return_type_t
     }
 
     hres = scope_push(ctx->exec_ctx->scope_chain, obj, &ctx->exec_ctx->scope_chain);
-    jsdisp_release(obj);
+    IDispatchEx_Release(&obj->IDispatchEx_iface);
     if(FAILED(hres))
         return hres;
 
@@ -1181,7 +1181,7 @@ static HRESULT catch_eval(script_ctx_t *ctx, catch_block_t *block, return_type_t
             }
         }
 
-        jsdisp_release(var_disp);
+        IDispatchEx_Release(&var_disp->IDispatchEx_iface);
     }
 
     VariantClear(&ex);
@@ -1726,7 +1726,7 @@ HRESULT array_literal_expression_eval(script_ctx_t *ctx, expression_t *_expr, DW
     }
 
     if(FAILED(hres)) {
-        jsdisp_release(array);
+        IDispatchEx_Release(&array->IDispatchEx_iface);
         return hres;
     }
 
@@ -1778,7 +1778,7 @@ HRESULT property_value_expression_eval(script_ctx_t *ctx, expression_t *_expr, D
     }
 
     if(FAILED(hres)) {
-        jsdisp_release(obj);
+        IDispatchEx_Release(&obj->IDispatchEx_iface);
         return hres;
     }
 
@@ -2010,7 +2010,7 @@ static HRESULT instanceof_eval(script_ctx_t *ctx, VARIANT *inst, VARIANT *objv,
         FIXME("throw TypeError\n");
         hres = E_FAIL;
     }
-    jsdisp_release(obj);
+    IDispatchEx_Release(&obj->IDispatchEx_iface);
     if(FAILED(hres))
         return hres;
 
@@ -2028,7 +2028,7 @@ static HRESULT instanceof_eval(script_ctx_t *ctx, VARIANT *inst, VARIANT *objv,
         }
 
         if(tmp)
-            jsdisp_release(tmp);
+            IDispatchEx_Release(&tmp->IDispatchEx_iface);
     }else {
         FIXME("prototype is not an object\n");
         hres = E_FAIL;
@@ -2403,7 +2403,7 @@ static HRESULT typeof_exprval(script_ctx_t *ctx, exprval_t *exprval, jsexcept_t
 
         if(V_DISPATCH(&val) && (dispex = iface_to_jsdisp((IUnknown*)V_DISPATCH(&val)))) {
             *ret = is_class(dispex, JSCLASS_FUNCTION) ? functionW : objectW;
-            jsdisp_release(dispex);
+            IDispatchEx_Release(&dispex->IDispatchEx_iface);
         }else {
             *ret = objectW;
         }
diff --git a/dlls/jscript/error.c b/dlls/jscript/error.c
index 21a8160..0635c7e 100644
--- a/dlls/jscript/error.c
+++ b/dlls/jscript/error.c
@@ -202,7 +202,7 @@ static HRESULT create_error(script_ctx_t *ctx, jsdisp_t *constr,
     V_I4(&v) = number;
     hres = jsdisp_propput_name(err, numberW, &v, NULL/*FIXME*/, NULL/*FIXME*/);
     if(FAILED(hres)) {
-        jsdisp_release(err);
+        IDispatchEx_Release(&err->IDispatchEx_iface);
         return hres;
     }
 
@@ -218,7 +218,7 @@ static HRESULT create_error(script_ctx_t *ctx, jsdisp_t *constr,
         hres = E_OUTOFMEMORY;
     }
     if(FAILED(hres)) {
-        jsdisp_release(err);
+        IDispatchEx_Release(&err->IDispatchEx_iface);
         return hres;
     }
 
@@ -266,7 +266,7 @@ static HRESULT error_constr(script_ctx_t *ctx, WORD flags, DISPPARAMS *dp,
         if(retv)
             var_set_jsdisp(retv, err);
         else
-            jsdisp_release(err);
+            IDispatchEx_Release(&err->IDispatchEx_iface);
 
         return S_OK;
 
@@ -365,7 +365,7 @@ HRESULT init_error_constr(script_ctx_t *ctx, jsdisp_t *object_prototype)
         V_VT(&v) = VT_BSTR;
         V_BSTR(&v) = SysAllocString(names[i]);
         if(!V_BSTR(&v)) {
-            jsdisp_release(err);
+            IDispatchEx_Release(&err->IDispatchEx_iface);
             return E_OUTOFMEMORY;
         }
 
@@ -375,7 +375,7 @@ HRESULT init_error_constr(script_ctx_t *ctx, jsdisp_t *object_prototype)
             hres = create_builtin_function(ctx, constr_val[i], names[i], NULL,
                     PROPF_CONSTR|1, err, constr_addr[i]);
 
-        jsdisp_release(err);
+        IDispatchEx_Release(&err->IDispatchEx_iface);
         VariantClear(&v);
         if(FAILED(hres))
             return hres;
diff --git a/dlls/jscript/function.c b/dlls/jscript/function.c
index ff5364a..2f5c5f1 100644
--- a/dlls/jscript/function.c
+++ b/dlls/jscript/function.c
@@ -151,7 +151,7 @@ static HRESULT create_arguments(script_ctx_t *ctx, IDispatch *calee, DISPPARAMS
     }
 
     if(FAILED(hres)) {
-        jsdisp_release(args);
+        IDispatchEx_Release(&args->IDispatchEx_iface);
         return hres;
     }
 
@@ -175,7 +175,7 @@ static HRESULT create_var_disp(script_ctx_t *ctx, FunctionInstance *function, js
     if(SUCCEEDED(hres))
         hres = init_parameters(var_disp, function, dp, ei, caller);
     if(FAILED(hres)) {
-        jsdisp_release(var_disp);
+        IDispatchEx_Release(&var_disp->IDispatchEx_iface);
         return hres;
     }
 
@@ -203,7 +203,7 @@ static HRESULT invoke_source(script_ctx_t *ctx, FunctionInstance *function, IDis
 
     hres = create_var_disp(ctx, function, arg_disp, dp, ei, caller, &var_disp);
     if(FAILED(hres)) {
-        jsdisp_release(arg_disp);
+        IDispatchEx_Release(&arg_disp->IDispatchEx_iface);
         return hres;
     }
 
@@ -212,7 +212,7 @@ static HRESULT invoke_source(script_ctx_t *ctx, FunctionInstance *function, IDis
         hres = create_exec_ctx(ctx, this_obj, var_disp, scope, FALSE, &exec_ctx);
         scope_release(scope);
     }
-    jsdisp_release(var_disp);
+    IDispatchEx_Release(&var_disp->IDispatchEx_iface);
     if(SUCCEEDED(hres)) {
         jsdisp_t *prev_args;
 
@@ -221,7 +221,7 @@ static HRESULT invoke_source(script_ctx_t *ctx, FunctionInstance *function, IDis
         hres = exec_source(exec_ctx, function->parser, function->source, FALSE, ei, retv);
         function->arguments = prev_args;
 
-        jsdisp_release(arg_disp);
+        IDispatchEx_Release(&arg_disp->IDispatchEx_iface);
         exec_release(exec_ctx);
     }
 
@@ -241,12 +241,12 @@ static HRESULT invoke_constructor(script_ctx_t *ctx, FunctionInstance *function,
 
     hres = invoke_source(ctx, function, to_disp(this_obj), dp, &var, ei, caller);
     if(FAILED(hres)) {
-        jsdisp_release(this_obj);
+        IDispatchEx_Release(&this_obj->IDispatchEx_iface);
         return hres;
     }
 
     if(V_VT(&var) == VT_DISPATCH) {
-        jsdisp_release(this_obj);
+        IDispatchEx_Release(&this_obj->IDispatchEx_iface);
         V_VT(retv) = VT_DISPATCH;
         V_DISPATCH(retv) = V_DISPATCH(&var);
     }else {
@@ -427,14 +427,14 @@ static HRESULT Function_apply(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DI
             arg_array = iface_to_jsdisp((IUnknown*)V_DISPATCH(get_arg(dp,1)));
             if(arg_array &&
                (!is_class(arg_array, JSCLASS_ARRAY) && !is_class(arg_array, JSCLASS_ARGUMENTS) )) {
-                jsdisp_release(arg_array);
+                IDispatchEx_Release(&arg_array->IDispatchEx_iface);
                 arg_array = NULL;
             }
         }
 
         if(arg_array) {
             hres = array_to_args(ctx, arg_array, ei, caller, &args);
-            jsdisp_release(arg_array);
+            IDispatchEx_Release(&arg_array->IDispatchEx_iface);
         }else {
             FIXME("throw TypeError\n");
             hres = E_FAIL;
@@ -547,7 +547,7 @@ static HRESULT Function_arguments(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
     switch(flags) {
     case DISPATCH_PROPERTYGET: {
         if(function->arguments) {
-            jsdisp_addref(function->arguments);
+            IDispatchEx_AddRef(&function->arguments->IDispatchEx_iface);
             var_set_jsdisp(retv, function->arguments);
         }else {
             V_VT(retv) = VT_NULL;
@@ -650,7 +650,7 @@ HRESULT create_builtin_function(script_ctx_t *ctx, builtin_invoke_t value_proc,
     if(SUCCEEDED(hres))
         hres = set_prototype(ctx, &function->dispex, prototype);
     if(FAILED(hres)) {
-        jsdisp_release(&function->dispex);
+        IDispatchEx_Release(&function->dispex.IDispatchEx_iface);
         return hres;
     }
 
@@ -678,9 +678,9 @@ HRESULT create_source_function(parser_ctx_t *ctx, parameter_t *parameters, sourc
     if(SUCCEEDED(hres)) {
         hres = set_prototype(ctx->script, &function->dispex, prototype);
         if(FAILED(hres))
-            jsdisp_release(&function->dispex);
+            IDispatchEx_Release(&function->dispex.IDispatchEx_iface);
     }
-    jsdisp_release(prototype);
+    IDispatchEx_Release(&prototype->IDispatchEx_iface);
     if(FAILED(hres))
         return hres;
 
@@ -851,9 +851,9 @@ HRESULT init_function_constr(script_ctx_t *ctx, jsdisp_t *object_prototype)
         constr->name = FunctionW;
         hres = set_prototype(ctx, &constr->dispex, &prot->dispex);
         if(FAILED(hres))
-            jsdisp_release(&constr->dispex);
+            IDispatchEx_Release(&constr->dispex.IDispatchEx_iface);
     }
-    jsdisp_release(&prot->dispex);
+    IDispatchEx_Release(&prot->dispex.IDispatchEx_iface);
     if(FAILED(hres))
         return hres;
 
diff --git a/dlls/jscript/global.c b/dlls/jscript/global.c
index 24698ac..ad3f82b 100644
--- a/dlls/jscript/global.c
+++ b/dlls/jscript/global.c
@@ -112,7 +112,7 @@ static HRESULT constructor_call(jsdisp_t *constr, WORD flags, DISPPARAMS *dp,
     if(flags != DISPATCH_PROPERTYGET)
         return jsdisp_call_value(constr, flags, dp, retv, ei, sp);
 
-    jsdisp_addref(constr);
+    IDispatchEx_AddRef(&constr->IDispatchEx_iface);
     var_set_jsdisp(retv, constr);
     return S_OK;
 }
@@ -1157,7 +1157,7 @@ HRESULT init_global(script_ctx_t *ctx)
         return hres;
 
     hres = init_constructors(ctx, object_prototype);
-    jsdisp_release(object_prototype);
+    IDispatchEx_Release(&object_prototype->IDispatchEx_iface);
     if(FAILED(hres))
         return hres;
 
@@ -1171,7 +1171,7 @@ HRESULT init_global(script_ctx_t *ctx)
 
     var_set_jsdisp(&var, math);
     hres = jsdisp_propput_name(ctx->global, MathW, &var, NULL/*FIXME*/, NULL/*FIXME*/);
-    jsdisp_release(math);
+    IDispatchEx_Release(&math->IDispatchEx_iface);
     if(FAILED(hres))
         return hres;
 
diff --git a/dlls/jscript/jscript.c b/dlls/jscript/jscript.c
index d682746..9be9966 100644
--- a/dlls/jscript/jscript.c
+++ b/dlls/jscript/jscript.c
@@ -467,7 +467,7 @@ static HRESULT WINAPI JScript_Close(IActiveScript *iface)
             change_state(This, SCRIPTSTATE_CLOSED);
 
         if(This->ctx->global) {
-            jsdisp_release(This->ctx->global);
+            IDispatchEx_Release(&This->ctx->global->IDispatchEx_iface);
             This->ctx->global = NULL;
         }
     }
diff --git a/dlls/jscript/jscript.h b/dlls/jscript/jscript.h
index 06258d3..37c9f1e 100644
--- a/dlls/jscript/jscript.h
+++ b/dlls/jscript/jscript.h
@@ -189,16 +189,6 @@ static inline IDispatch *to_disp(jsdisp_t *jsdisp)
     return (IDispatch*)&jsdisp->IDispatchEx_iface;
 }
 
-static inline void jsdisp_addref(jsdisp_t *jsdisp)
-{
-    IDispatchEx_AddRef(&jsdisp->IDispatchEx_iface);
-}
-
-static inline void jsdisp_release(jsdisp_t *jsdisp)
-{
-    IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
-}
-
 HRESULT create_dispex(script_ctx_t*,const builtin_info_t*,jsdisp_t*,jsdisp_t**);
 HRESULT init_dispex(jsdisp_t*,script_ctx_t*,const builtin_info_t*,jsdisp_t*);
 HRESULT init_dispex_from_constr(jsdisp_t*,script_ctx_t*,const builtin_info_t*,jsdisp_t*);
diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c
index 341b928..05d8ea5 100644
--- a/dlls/jscript/jsutils.c
+++ b/dlls/jscript/jsutils.c
@@ -222,11 +222,11 @@ HRESULT to_primitive(script_ctx_t *ctx, VARIANT *v, jsexcept_t *ei, VARIANT *ret
             hres = jsdisp_call(jsdisp, id, DISPATCH_METHOD, &dp, ret, ei, NULL /*FIXME*/);
             if(FAILED(hres)) {
                 WARN("call error - forwarding exception\n");
-                jsdisp_release(jsdisp);
+                IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
                 return hres;
             }
             else if(V_VT(ret) != VT_DISPATCH) {
-                jsdisp_release(jsdisp);
+                IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
                 return S_OK;
             }
             else
@@ -238,18 +238,18 @@ HRESULT to_primitive(script_ctx_t *ctx, VARIANT *v, jsexcept_t *ei, VARIANT *ret
             hres = jsdisp_call(jsdisp, id, DISPATCH_METHOD, &dp, ret, ei, NULL /*FIXME*/);
             if(FAILED(hres)) {
                 WARN("call error - forwarding exception\n");
-                jsdisp_release(jsdisp);
+                IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
                 return hres;
             }
             else if(V_VT(ret) != VT_DISPATCH) {
-                jsdisp_release(jsdisp);
+                IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
                 return S_OK;
             }
             else
                 IDispatch_Release(V_DISPATCH(ret));
         }
 
-        jsdisp_release(jsdisp);
+        IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
 
         WARN("failed\n");
         return throw_type_error(ctx, ei, JS_E_TO_PRIMITIVE, NULL);
diff --git a/dlls/jscript/math.c b/dlls/jscript/math.c
index 9fff6a9..8720f4c 100644
--- a/dlls/jscript/math.c
+++ b/dlls/jscript/math.c
@@ -570,7 +570,7 @@ HRESULT create_math(script_ctx_t *ctx, jsdisp_t **ret)
         V_R8(&v) = constants[i].val;
         hres = jsdisp_propput_const(math, constants[i].name, &v);
         if(FAILED(hres)) {
-            jsdisp_release(math);
+            IDispatchEx_Release(&math->IDispatchEx_iface);
             return hres;
         }
     }
diff --git a/dlls/jscript/number.c b/dlls/jscript/number.c
index f95a19a..05b0ee9 100644
--- a/dlls/jscript/number.c
+++ b/dlls/jscript/number.c
@@ -348,7 +348,7 @@ HRESULT create_number_constr(script_ctx_t *ctx, jsdisp_t *object_prototype, jsdi
     hres = create_builtin_function(ctx, NumberConstr_value, NumberW, NULL,
             PROPF_CONSTR|1, &number->dispex, ret);
 
-    jsdisp_release(&number->dispex);
+    IDispatchEx_Release(&number->dispex.IDispatchEx_iface);
     return hres;
 }
 
diff --git a/dlls/jscript/object.c b/dlls/jscript/object.c
index 9f2e4d5..b81b466 100644
--- a/dlls/jscript/object.c
+++ b/dlls/jscript/object.c
@@ -213,7 +213,7 @@ static HRESULT ObjectConstr_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
         if(retv)
             var_set_jsdisp(retv, obj);
         else
-            jsdisp_release(obj);
+            IDispatchEx_Release(&obj->IDispatchEx_iface);
         break;
     }
 
diff --git a/dlls/jscript/regexp.c b/dlls/jscript/regexp.c
index b7fb660..ae76780 100644
--- a/dlls/jscript/regexp.c
+++ b/dlls/jscript/regexp.c
@@ -3640,7 +3640,7 @@ static HRESULT create_match_array(script_ctx_t *ctx, BSTR input, const match_res
     }
 
     if(FAILED(hres)) {
-        jsdisp_release(array);
+        IDispatchEx_Release(&array->IDispatchEx_iface);
         return hres;
     }
 
@@ -3857,14 +3857,14 @@ HRESULT create_regexp(script_ctx_t *ctx, const WCHAR *exp, int len, DWORD flags,
     else
         regexp->str = SysAllocStringLen(exp, len);
     if(!regexp->str) {
-        jsdisp_release(&regexp->dispex);
+        IDispatchEx_Release(&regexp->dispex.IDispatchEx_iface);
         return E_OUTOFMEMORY;
     }
 
     regexp->jsregexp = js_NewRegExp(ctx, regexp->str, flags, FALSE);
     if(!regexp->jsregexp) {
         WARN("js_NewRegExp failed\n");
-        jsdisp_release(&regexp->dispex);
+        IDispatchEx_Release(&regexp->dispex.IDispatchEx_iface);
         return E_FAIL;
     }
 
@@ -3890,11 +3890,11 @@ HRESULT create_regexp_var(script_ctx_t *ctx, VARIANT *src_arg, VARIANT *flags_ar
                 RegExpInstance *regexp = (RegExpInstance*)obj;
 
                 hres = create_regexp(ctx, regexp->str, -1, regexp->jsregexp->flags, ret);
-                jsdisp_release(obj);
+                IDispatchEx_Release(&obj->IDispatchEx_iface);
                 return hres;
             }
 
-            jsdisp_release(obj);
+            IDispatchEx_Release(&obj->IDispatchEx_iface);
         }
     }
 
@@ -4018,7 +4018,7 @@ HRESULT regexp_string_match(script_ctx_t *ctx, jsdisp_t *re, BSTR str,
     if(SUCCEEDED(hres) && retv)
         var_set_jsdisp(retv, array);
     else
-        jsdisp_release(array);
+        IDispatchEx_Release(&array->IDispatchEx_iface);
     return hres;
 }
 
@@ -4088,17 +4088,17 @@ static HRESULT RegExpConstr_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
                 if(jsdisp) {
                     if(is_class(jsdisp, JSCLASS_REGEXP)) {
                         if(arg_cnt(dp) > 1 && V_VT(get_arg(dp,1)) != VT_EMPTY) {
-                            jsdisp_release(jsdisp);
+                            IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
                             return throw_regexp_error(ctx, ei, JS_E_REGEXP_SYNTAX, NULL);
                         }
 
                         if(retv)
                             var_set_jsdisp(retv, jsdisp);
                         else
-                            jsdisp_release(jsdisp);
+                            IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
                         return S_OK;
                     }
-                    jsdisp_release(jsdisp);
+                    IDispatchEx_Release(&jsdisp->IDispatchEx_iface);
                 }
             }
         }
@@ -4119,7 +4119,7 @@ static HRESULT RegExpConstr_value(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags
         if(retv)
             var_set_jsdisp(retv, ret);
         else
-            jsdisp_release(ret);
+            IDispatchEx_Release(&ret->IDispatchEx_iface);
         return S_OK;
     }
     default:
@@ -4158,7 +4158,7 @@ HRESULT create_regexp_constr(script_ctx_t *ctx, jsdisp_t *object_prototype, jsdi
     hres = create_builtin_function(ctx, RegExpConstr_value, RegExpW, &RegExpConstr_info,
             PROPF_CONSTR|2, &regexp->dispex, ret);
 
-    jsdisp_release(&regexp->dispex);
+    IDispatchEx_Release(&regexp->dispex.IDispatchEx_iface);
     return hres;
 }
 
diff --git a/dlls/jscript/string.c b/dlls/jscript/string.c
index 9c947a1..b714b73 100644
--- a/dlls/jscript/string.c
+++ b/dlls/jscript/string.c
@@ -645,7 +645,7 @@ static HRESULT String_match(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DISP
         if(regexp) {
             if(is_class(regexp, JSCLASS_REGEXP))
                 break;
-            jsdisp_release(regexp);
+            IDispatchEx_Release(&regexp->IDispatchEx_iface);
         }
     default: {
         BSTR match_str;
@@ -671,7 +671,7 @@ static HRESULT String_match(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DISP
             hres = E_OUTOFMEMORY;
     }
 
-    jsdisp_release(regexp);
+    IDispatchEx_Release(&regexp->IDispatchEx_iface);
     SysFreeString(val_str);
     return hres;
 }
@@ -813,7 +813,7 @@ static HRESULT String_replace(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DI
             if(is_class(regexp, JSCLASS_REGEXP)) {
                 break;
             }else {
-                jsdisp_release(regexp);
+                IDispatchEx_Release(&regexp->IDispatchEx_iface);
                 regexp = NULL;
             }
         }
@@ -835,7 +835,7 @@ static HRESULT String_replace(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DI
                 if(is_class(rep_func, JSCLASS_FUNCTION)) {
                     break;
                 }else {
-                    jsdisp_release(rep_func);
+                    IDispatchEx_Release(&rep_func->IDispatchEx_iface);
                     rep_func = NULL;
                 }
             }
@@ -968,7 +968,7 @@ static HRESULT String_replace(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DI
     }
 
     if(rep_func)
-        jsdisp_release(rep_func);
+        IDispatchEx_Release(&rep_func->IDispatchEx_iface);
     SysFreeString(rep_str);
     SysFreeString(match_str);
     heap_free(parens);
@@ -988,7 +988,7 @@ static HRESULT String_replace(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DI
     }
 
     if(regexp)
-        jsdisp_release(regexp);
+        IDispatchEx_Release(&regexp->IDispatchEx_iface);
     SysFreeString(val_str);
 
     if(SUCCEEDED(hres) && retv) {
@@ -1034,7 +1034,7 @@ static HRESULT String_search(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DIS
         regexp = iface_to_jsdisp((IUnknown*)V_DISPATCH(arg));
         if(regexp) {
             if(!is_class(regexp, JSCLASS_REGEXP)) {
-                jsdisp_release(regexp);
+                IDispatchEx_Release(&regexp->IDispatchEx_iface);
                 regexp = NULL;
             }
         }
@@ -1051,7 +1051,7 @@ static HRESULT String_search(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DIS
     cp = str;
     hres = regexp_match_next(ctx, regexp, REM_RESET_INDEX, str, length, &cp, NULL, NULL, NULL, &match);
     SysFreeString(val_str);
-    jsdisp_release(regexp);
+    IDispatchEx_Release(&regexp->IDispatchEx_iface);
     if(FAILED(hres))
         return hres;
 
@@ -1183,14 +1183,14 @@ static HRESULT String_split(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DISP
             if(is_class(regexp, JSCLASS_REGEXP)) {
                 use_regexp = TRUE;
                 hres = regexp_match(ctx, regexp, str, length, TRUE, &match_result, &match_cnt);
-                jsdisp_release(regexp);
+                IDispatchEx_Release(&regexp->IDispatchEx_iface);
                 if(FAILED(hres)) {
                     SysFreeString(val_str);
                     return hres;
                 }
                 break;
             }
-            jsdisp_release(regexp);
+            IDispatchEx_Release(&regexp->IDispatchEx_iface);
         }
     }
     default:
@@ -1270,7 +1270,7 @@ static HRESULT String_split(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags, DISP
     if(SUCCEEDED(hres) && retv)
         var_set_jsdisp(retv, array);
     else
-        jsdisp_release(array);
+        IDispatchEx_Release(&array->IDispatchEx_iface);
 
     return hres;
 }
@@ -1733,7 +1733,7 @@ HRESULT create_string_constr(script_ctx_t *ctx, jsdisp_t *object_prototype, jsdi
     hres = create_builtin_function(ctx, StringConstr_value, StringW, &StringConstr_info,
             PROPF_CONSTR|1, &string->dispex, ret);
 
-    jsdisp_release(&string->dispex);
+    IDispatchEx_Release(&string->dispex.IDispatchEx_iface);
     return hres;
 }
 
@@ -1752,7 +1752,7 @@ HRESULT create_string(script_ctx_t *ctx, const WCHAR *str, DWORD len, jsdisp_t *
     string->length = len;
     string->str = heap_alloc((len+1)*sizeof(WCHAR));
     if(!string->str) {
-        jsdisp_release(&string->dispex);
+        IDispatchEx_Release(&string->dispex.IDispatchEx_iface);
         return E_OUTOFMEMORY;
     }
 
diff --git a/dlls/jscript/vbarray.c b/dlls/jscript/vbarray.c
index da17a07..311d02d 100644
--- a/dlls/jscript/vbarray.c
+++ b/dlls/jscript/vbarray.c
@@ -169,7 +169,7 @@ static HRESULT VBArray_toArray(script_ctx_t *ctx, vdisp_t *vthis, WORD flags, DI
         hres = jsdisp_propput_idx(array, i, v, ei, caller);
         if(FAILED(hres)) {
             SafeArrayUnaccessData(vbarray->safearray);
-            jsdisp_release(array);
+            IDispatchEx_Release(&array->IDispatchEx_iface);
             return hres;
         }
         v++;
@@ -302,7 +302,7 @@ static HRESULT VBArrayConstr_value(script_ctx_t *ctx, vdisp_t *vthis, WORD flags
 
         hres = SafeArrayCopy(V_ARRAY(arg), &vbarray->safearray);
         if(FAILED(hres)) {
-            jsdisp_release(&vbarray->dispex);
+            IDispatchEx_Release(&vbarray->dispex.IDispatchEx_iface);
             return hres;
         }
 
@@ -330,7 +330,7 @@ HRESULT create_vbarray_constr(script_ctx_t *ctx, jsdisp_t *object_prototype, jsd
 
     hres = create_builtin_function(ctx, VBArrayConstr_value, VBArrayW, NULL, PROPF_CONSTR|1, &vbarray->dispex, ret);
 
-    jsdisp_release(&vbarray->dispex);
+    IDispatchEx_Release(&vbarray->dispex.IDispatchEx_iface);
     return hres;
 }
 
@@ -345,7 +345,7 @@ HRESULT create_vbarray(script_ctx_t *ctx, SAFEARRAY *sa, jsdisp_t **ret)
 
     hres = SafeArrayCopy(sa, &vbarray->safearray);
     if(FAILED(hres)) {
-        jsdisp_release(&vbarray->dispex);
+        IDispatchEx_Release(&vbarray->dispex.IDispatchEx_iface);
         return hres;
     }
 
-- 
1.7.3.4



More information about the wine-patches mailing list