]> xenbits.xensource.com Git - libvirt.git/commitdiff
Introduce virTypedParamsClear public API
authorJiri Denemark <jdenemar@redhat.com>
Tue, 15 Jan 2013 23:42:35 +0000 (00:42 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 18 Jan 2013 14:04:00 +0000 (15:04 +0100)
The function is just a renamed public version of former
virTypedParameterArrayClear.

daemon/remote.c
include/libvirt/libvirt.h.in
python/generator.py
python/libvirt-override.c
src/libvirt_private.syms
src/libvirt_public.syms
src/remote/remote_driver.c
src/rpc/gendispatch.pl
src/util/virtypedparam.c
src/util/virtypedparam.h
tools/virsh-domain.c

index 20c385867362140c7f86f7f47949bfc4917a15ee..51dbd015ec5ddc630a42d6e31fcc52b0feed8760 100644 (file)
@@ -987,8 +987,8 @@ remoteDeserializeTypedParameters(remote_typed_param *args_params_val,
 
 cleanup:
     if (rv < 0) {
-        virTypedParameterArrayClear(params, i);
-        VIR_FREE(params);
+        virTypedParamsFree(params, i);
+        params = NULL;
     }
     return params;
 }
@@ -1037,8 +1037,7 @@ remoteDispatchDomainGetSchedulerParameters(virNetServerPtr server ATTRIBUTE_UNUS
 cleanup:
     if (rv < 0)
         virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     if (dom)
         virDomainFree(dom);
     return rv;
@@ -1147,8 +1146,7 @@ remoteDispatchDomainGetSchedulerParametersFlags(virNetServerPtr server ATTRIBUTE
 cleanup:
     if (rv < 0)
         virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     if (dom)
         virDomainFree(dom);
     return rv;
@@ -1336,8 +1334,7 @@ success:
 cleanup:
     if (rv < 0)
         virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     if (dom)
         virDomainFree(dom);
     return rv;
@@ -1966,8 +1963,7 @@ success:
 cleanup:
     if (rv < 0)
         virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     if (dom)
         virDomainFree(dom);
     return rv;
@@ -2031,8 +2027,7 @@ success:
 cleanup:
     if (rv < 0)
         virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     if (dom)
         virDomainFree(dom);
     return rv;
@@ -2096,8 +2091,7 @@ success:
 cleanup:
     if (rv < 0)
         virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     if (dom)
         virDomainFree(dom);
     return rv;
@@ -2358,8 +2352,7 @@ success:
 cleanup:
     if (rv < 0)
         virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     if (dom)
         virDomainFree(dom);
     return rv;
@@ -3862,8 +3855,7 @@ success:
 cleanup:
     if (rv < 0)
         virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     if (dom)
         virDomainFree(dom);
     return rv;
@@ -3937,8 +3929,7 @@ success:
 cleanup:
     if (rv < 0)
          virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, args->ncpus * args->nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, args->ncpus * args->nparams);
     if (dom)
         virDomainFree(dom);
     return rv;
@@ -4570,8 +4561,7 @@ success:
 cleanup:
     if (rv < 0)
         virNetMessageSaveError(rerr);
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return rv;
 }
 
index 2e75d11ac3abc0463adc880730fa2e2b5b8b1ece..8eb4a5901a578fe540b833898ed185d1c0d81b7e 100644 (file)
@@ -607,6 +607,9 @@ virTypedParamsAddFromString(virTypedParameterPtr *params,
                          int type,
                          const char *value);
 void
+virTypedParamsClear     (virTypedParameterPtr params,
+                         int nparams);
+void
 virTypedParamsFree      (virTypedParameterPtr params,
                          int nparams);
 
index 00e485829a155f453ea3d67523f7e9ce7e3543ef..f853d7749d44b1455df1717a4ad7f8f3953d3fa6 100755 (executable)
@@ -537,6 +537,7 @@ skip_function = (
     "virTypedParamsAddString",
     "virTypedParamsAddUInt",
     "virTypedParamsAddULLong",
+    "virTypedParamsClear",
     "virTypedParamsFree",
     "virTypedParamsGet",
     "virTypedParamsGetBoolean",
index 58ed39b4a4c4f65aba06c7bbb92a526ea992f510..81540249932e145560ed0a4eb966ff66adb7ef67 100644 (file)
@@ -367,8 +367,7 @@ libvirt_virDomainBlockStatsFlags(PyObject *self ATTRIBUTE_UNUSED,
     ret = getPyVirTypedParameter(params, nparams);
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return ret;
 }
 
@@ -456,7 +455,7 @@ libvirt_virDomainGetCPUStats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
 
             start_cpu += queried_ncpus;
             ncpus -= queried_ncpus;
-            virTypedParameterArrayClear(params, sumparams);
+            virTypedParamsClear(params, sumparams);
         }
     } else {
         LIBVIRT_BEGIN_ALLOW_THREADS;
@@ -498,13 +497,11 @@ libvirt_virDomainGetCPUStats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
         Py_DECREF(total);
     }
 
-    virTypedParameterArrayClear(params, sumparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, sumparams);
     return ret;
 
 error:
-    virTypedParameterArrayClear(params, sumparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, sumparams);
     Py_DECREF(ret);
     return error;
 }
@@ -668,8 +665,7 @@ libvirt_virDomainGetSchedulerParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = getPyVirTypedParameter(params, nparams);
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return ret;
 }
 
@@ -717,8 +713,7 @@ libvirt_virDomainGetSchedulerParametersFlags(PyObject *self ATTRIBUTE_UNUSED,
     ret = getPyVirTypedParameter(params, nparams);
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return ret;
 }
 
@@ -791,8 +786,7 @@ libvirt_virDomainSetSchedulerParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = VIR_PY_INT_SUCCESS;
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     VIR_FREE(new_params);
     return ret;
 }
@@ -868,8 +862,7 @@ libvirt_virDomainSetSchedulerParametersFlags(PyObject *self ATTRIBUTE_UNUSED,
     ret = VIR_PY_INT_SUCCESS;
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     VIR_FREE(new_params);
     return ret;
 }
@@ -943,8 +936,7 @@ libvirt_virDomainSetBlkioParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = VIR_PY_INT_SUCCESS;
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     VIR_FREE(new_params);
     return ret;
 }
@@ -991,8 +983,7 @@ libvirt_virDomainGetBlkioParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = getPyVirTypedParameter(params, nparams);
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return ret;
 }
 
@@ -1065,8 +1056,7 @@ libvirt_virDomainSetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = VIR_PY_INT_SUCCESS;
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     VIR_FREE(new_params);
     return ret;
 }
@@ -1113,8 +1103,7 @@ libvirt_virDomainGetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = getPyVirTypedParameter(params, nparams);
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return ret;
 }
 
@@ -1187,8 +1176,7 @@ libvirt_virDomainSetNumaParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = VIR_PY_INT_SUCCESS;
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     VIR_FREE(new_params);
     return ret;
 }
@@ -1235,8 +1223,7 @@ libvirt_virDomainGetNumaParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = getPyVirTypedParameter(params, nparams);
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return ret;
 }
 
@@ -1310,8 +1297,7 @@ libvirt_virDomainSetInterfaceParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = VIR_PY_INT_SUCCESS;
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     VIR_FREE(new_params);
     return ret;
 }
@@ -1359,8 +1345,7 @@ libvirt_virDomainGetInterfaceParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = getPyVirTypedParameter(params, nparams);
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return ret;
 }
 
@@ -4305,8 +4290,7 @@ libvirt_virDomainSetBlockIoTune(PyObject *self ATTRIBUTE_UNUSED,
     ret = VIR_PY_INT_SUCCESS;
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     VIR_FREE(new_params);
     return ret;
 }
@@ -4354,8 +4338,7 @@ libvirt_virDomainGetBlockIoTune(PyObject *self ATTRIBUTE_UNUSED,
     ret = getPyVirTypedParameter(params, nparams);
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return ret;
 }
 
@@ -6466,8 +6449,7 @@ libvirt_virNodeSetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = VIR_PY_INT_SUCCESS;
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     VIR_FREE(new_params);
     return ret;
 }
@@ -6514,8 +6496,7 @@ libvirt_virNodeGetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
     ret = getPyVirTypedParameter(params, nparams);
 
 cleanup:
-    virTypedParameterArrayClear(params, nparams);
-    VIR_FREE(params);
+    virTypedParamsFree(params, nparams);
     return ret;
 }
 
index 521f8e045cb45ceff1055443507de2e08b7a2e56..fc23adc1818227e6b88085d0704735b5e34846f6 100644 (file)
@@ -1876,7 +1876,6 @@ virTimeStringThenRaw;
 
 
 # virtypedparam.h
-virTypedParameterArrayClear;
 virTypedParameterArrayValidate;
 virTypedParameterAssign;
 virTypedParameterAssignFromStr;
index 7631b199f02eaf132c675ffbb40fb7180bc737c0..9777703a914ee3b659da56f42c01239ffc691270 100644 (file)
@@ -591,6 +591,7 @@ LIBVIRT_1.0.2 {
         virTypedParamsAddString;
         virTypedParamsAddUInt;
         virTypedParamsAddULLong;
+        virTypedParamsClear;
         virTypedParamsFree;
         virTypedParamsGet;
         virTypedParamsGetBoolean;
index a9072bbca6e042b9c59a93e4f780939374111f62..3555dac9c8a9cfb1d9a4a5da08f7a4e702a2c6d7 100644 (file)
@@ -1612,7 +1612,7 @@ remoteDeserializeTypedParameters(remote_typed_param *ret_params_val,
 
 cleanup:
     if (rv < 0)
-        virTypedParameterArrayClear(params, i);
+        virTypedParamsClear(params, i);
     return rv;
 }
 
@@ -2754,7 +2754,7 @@ static int remoteDomainGetCPUStats(virDomainPtr domain,
     rv = ret.nparams;
 cleanup:
     if (rv < 0)
-        virTypedParameterArrayClear(params, nparams * ncpus);
+        virTypedParamsClear(params, nparams * ncpus);
 
     xdr_free((xdrproc_t) xdr_remote_domain_get_cpu_stats_ret,
              (char *) &ret);
index 899f4bc73282a39ef4fdfe95fd3f9c0f2e36cbba..f00ed7c68bf5bec93bb43a67ca68fe350fcfa814 100755 (executable)
@@ -490,8 +490,7 @@ elsif ($opt_b) {
                                         "                                                   $2,\n" .
                                         "                                                   &n$1)) == NULL)\n" .
                                         "        goto cleanup;\n");
-                    push(@free_list, "    virTypedParameterArrayClear($1, n$1);");
-                    push(@free_list, "    VIR_FREE($1);");
+                    push(@free_list, "    virTypedParamsFree($1, n$1);");
                 } elsif ($args_member =~ m/<\S+>;/ or $args_member =~ m/\[\S+\];/) {
                     # just make all other array types fail
                     die "unhandled type for argument value: $args_member";
index 1b153a480a0d28cd4690e33aa9a64fcf0eb9dc0e..ae2855a660387034118762e9bdaeeb1b0392ab2f 100644 (file)
@@ -41,20 +41,6 @@ VIR_ENUM_IMPL(virTypedParameter, VIR_TYPED_PARAM_LAST,
               "boolean",
               "string")
 
-void
-virTypedParameterArrayClear(virTypedParameterPtr params, int nparams)
-{
-    int i;
-
-    if (!params)
-        return;
-
-    for (i = 0; i < nparams; i++) {
-        if (params[i].type == VIR_TYPED_PARAM_STRING)
-            VIR_FREE(params[i].value.s);
-    }
-}
-
 /* Validate that PARAMS contains only recognized parameter names with
  * correct types, and with no duplicates.  Pass in as many name/type
  * pairs as appropriate, and pass NULL to end the list of accepted
@@ -897,7 +883,7 @@ error:
  *
  * Adds new parameter called @name with char * type and sets its value to
  * @value. The function creates its own copy of @value string, which needs to
- * be freed using virTypedParamsFree. If @params array
+ * be freed using virTypedParamsFree or virTypedParamsClear. If @params array
  * points to NULL or to a space that is not large enough to accommodate the
  * new parameter (@maxparams < @nparams + 1), the function allocates more
  * space for it and updates @maxparams. On success, @nparams is incremented
@@ -959,7 +945,7 @@ error:
  * Adds new parameter called @name with the requested @type and parses its
  * value from the @value string. If the requested type is string, the function
  * creates its own copy of the @value string, which needs to be freed using
- * virTypedParamsFree. If @params array points to NULL
+ * virTypedParamsFree or virTypedParamsClear. If @params array points to NULL
  * or to a space that is not large enough to accommodate the new parameter
  * (@maxparams < @nparams + 1), the function allocates more space for it and
  * updates @maxparams. On success, @nparams is incremented by one. The
@@ -1000,6 +986,32 @@ error:
 }
 
 
+/**
+ * virTypedParamsClear:
+ * @params: the array of typed parameters
+ * @nparams: number of parameters in the @params array
+ *
+ * Frees all memory used by string parameters. The memory occupied by @params
+ * is not freed; use virTypedParamsFree if you want it to be freed too.
+ *
+ * Returns nothing.
+ */
+void
+virTypedParamsClear(virTypedParameterPtr params,
+                    int nparams)
+{
+    int i;
+
+    if (!params)
+        return;
+
+    for (i = 0; i < nparams; i++) {
+        if (params[i].type == VIR_TYPED_PARAM_STRING)
+            VIR_FREE(params[i].value.s);
+    }
+}
+
+
 /**
  * virTypedParamsFree:
  * @params: the array of typed parameters
@@ -1015,6 +1027,6 @@ virTypedParamsFree(virTypedParameterPtr params,
                    int nparams)
 {
     virResetLastError();
-    virTypedParameterArrayClear(params, nparams);
+    virTypedParamsClear(params, nparams);
     VIR_FREE(params);
 }
index d46e9fef55f934149eb02f2ef0b855f4cac1c432..c777a5539f86bf9c618f0e957459c907afe55484 100644 (file)
@@ -25,8 +25,6 @@
 
 # include "internal.h"
 
-void virTypedParameterArrayClear(virTypedParameterPtr params, int nparams);
-
 int virTypedParameterArrayValidate(virTypedParameterPtr params, int nparams,
                                    /* const char *name, int type ... */ ...)
     ATTRIBUTE_SENTINEL ATTRIBUTE_RETURN_CHECK;
index 772dbcc99739cd4fa48ea0ddde22c38abd66b41d..f4b662272f7621e3861ccb1610f72af5843e05fa 100644 (file)
@@ -6182,7 +6182,7 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
         }
         cpu += ncpus;
         show_count -= ncpus;
-        virTypedParameterArrayClear(params, nparams * ncpus);
+        virTypedParamsClear(params, nparams * ncpus);
     }
     VIR_FREE(params);