]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: json: use VIR_AUTOPTR for aggregate types
authorSukrit Bhatnagar <skrtbhtngr@gmail.com>
Fri, 13 Jul 2018 17:54:59 +0000 (23:24 +0530)
committerErik Skultety <eskultet@redhat.com>
Sat, 14 Jul 2018 15:01:30 +0000 (17:01 +0200)
By making use of GNU C's cleanup attribute handled by the
VIR_AUTOPTR macro for declaring aggregate pointer variables,
majority of the calls to *Free functions can be dropped, which
in turn leads to getting rid of most of our cleanup sections.

Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@gmail.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
src/util/virjson.c

index 82f539fa03fbd3253bd851e3e4335b14598de967..29530dcb154ca2d2ca2aba452bd9023a6b320f4d 100644 (file)
@@ -1786,7 +1786,7 @@ virJSONValueFromString(const char *jsonstring)
     size_t len = strlen(jsonstring);
 # ifndef WITH_YAJL2
     yajl_parser_config cfg = { 0, 1 }; /* Match yajl 2 default behavior */
-    virJSONValuePtr tmp;
+    VIR_AUTOPTR(virJSONValue) tmp = NULL;
 # endif
 
     VIR_DEBUG("string=%s", jsonstring);
@@ -1850,7 +1850,6 @@ virJSONValueFromString(const char *jsonstring)
                            jsonstring);
         else
             ret = virJSONValueArraySteal(tmp, 0);
-        virJSONValueFree(tmp);
 # endif
     }
 
@@ -2023,16 +2022,12 @@ char *
 virJSONStringReformat(const char *jsonstr,
                       bool pretty)
 {
-    virJSONValuePtr json;
-    char *ret;
+    VIR_AUTOPTR(virJSONValue) json = NULL;
 
     if (!(json = virJSONValueFromString(jsonstr)))
         return NULL;
 
-    ret = virJSONValueToString(json, pretty);
-
-    virJSONValueFree(json);
-    return ret;
+    return virJSONValueToString(json, pretty);
 }
 
 
@@ -2121,7 +2116,7 @@ virJSONValueObjectDeflattenWorker(const char *key,
 virJSONValuePtr
 virJSONValueObjectDeflatten(virJSONValuePtr json)
 {
-    virJSONValuePtr deflattened;
+    VIR_AUTOPTR(virJSONValue) deflattened = NULL;
     virJSONValuePtr ret = NULL;
 
     if (!(deflattened = virJSONValueNewObject()))
@@ -2130,12 +2125,9 @@ virJSONValueObjectDeflatten(virJSONValuePtr json)
     if (virJSONValueObjectForeachKeyValue(json,
                                           virJSONValueObjectDeflattenWorker,
                                           deflattened) < 0)
-        goto cleanup;
+        return NULL;
 
     VIR_STEAL_PTR(ret, deflattened);
 
- cleanup:
-    virJSONValueFree(deflattened);
-
     return ret;
 }