Jacek Caban : jscript: Avoid direct access to jsval_t struct.

Alexandre Julliard julliard at winehq.org
Mon Sep 17 14:06:35 CDT 2012


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Sep 17 15:21:26 2012 +0200

jscript: Avoid direct access to jsval_t struct.

---

 dlls/jscript/jsutils.c |   35 ++++++++++++++++++-----------------
 1 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c
index a33cb7e..7df45ea 100644
--- a/dlls/jscript/jsutils.c
+++ b/dlls/jscript/jsutils.c
@@ -219,15 +219,15 @@ void jsval_release(jsval_t val)
 {
     switch(jsval_type(val)) {
     case JSV_OBJECT:
-        if(val.u.obj)
-            IDispatch_Release(val.u.obj);
+        if(get_object(val))
+            IDispatch_Release(get_object(val));
         break;
     case JSV_STRING:
-        SysFreeString(val.u.str);
+        SysFreeString(get_string(val));
         break;
     case JSV_VARIANT:
-        VariantClear(val.u.v);
-        heap_free(val.u.v);
+        VariantClear(get_variant(val));
+        heap_free(get_variant(val));
         break;
     default:
         break;
@@ -236,17 +236,18 @@ void jsval_release(jsval_t val)
 
 HRESULT jsval_variant(jsval_t *val, VARIANT *var)
 {
+    VARIANT *v;
     HRESULT hres;
 
     val->type = JSV_VARIANT;
-    val->u.v = heap_alloc(sizeof(VARIANT));
-    if(!val->u.v)
+    val->u.v = v = heap_alloc(sizeof(VARIANT));
+    if(!v)
         return E_OUTOFMEMORY;
 
-    V_VT(val->u.v) = VT_EMPTY;
-    hres = VariantCopy(val->u.v, var);
+    V_VT(v) = VT_EMPTY;
+    hres = VariantCopy(v, var);
     if(FAILED(hres))
-        heap_free(val->u.v);
+        heap_free(v);
     return hres;
 }
 
@@ -338,14 +339,14 @@ HRESULT jsval_to_variant(jsval_t val, VARIANT *retv)
         return S_OK;
     case JSV_OBJECT:
         V_VT(retv) = VT_DISPATCH;
-        if(val.u.obj)
-            IDispatch_AddRef(val.u.obj);
-        V_DISPATCH(retv) = val.u.obj;
+        if(get_object(val))
+            IDispatch_AddRef(get_object(val));
+        V_DISPATCH(retv) = get_object(val);
         return S_OK;
     case JSV_STRING:
         V_VT(retv) = VT_BSTR;
-        if(val.u.str) {
-            V_BSTR(retv) = clone_bstr(val.u.str);
+        if(get_string(val)) {
+            V_BSTR(retv) = clone_bstr(get_string(val));
             if(!V_BSTR(retv))
                 return E_OUTOFMEMORY;
         }else {
@@ -367,11 +368,11 @@ HRESULT jsval_to_variant(jsval_t val, VARIANT *retv)
     }
     case JSV_BOOL:
         V_VT(retv) = VT_BOOL;
-        V_BOOL(retv) = val.u.b ? VARIANT_TRUE : VARIANT_FALSE;
+        V_BOOL(retv) = get_bool(val) ? VARIANT_TRUE : VARIANT_FALSE;
         return S_OK;
     case JSV_VARIANT:
         V_VT(retv) = VT_EMPTY;
-        return VariantCopy(retv, val.u.v);
+        return VariantCopy(retv, get_variant(val));
     }
 
     assert(0);




More information about the wine-cvs mailing list