]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: virtypedparam: Refactor return value of virTypedParamListStealParams
authorPeter Krempa <pkrempa@redhat.com>
Tue, 18 Apr 2023 14:19:58 +0000 (16:19 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 2 May 2023 12:32:46 +0000 (14:32 +0200)
Return the number of parameters via pointer passed as argument to free
up possibility to report errors. Strangely all callers actually use
'int' as type for storing the count of elements, thus this function will
use the same.

The function is also renamed to virTypedParamListSteal.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/admin/admin_server.c
src/libvirt_private.syms
src/qemu/qemu_domainjob.c
src/qemu/qemu_driver.c
src/test/test_driver.c
src/util/virtypedparam.c
src/util/virtypedparam.h

index 394de0dfab66b0fc8bca15270628cc738bf631df..1d1ae97f2f9978e65869ab9fe753c9df96d3d4a0 100644 (file)
@@ -113,7 +113,8 @@ adminServerGetThreadPoolParameters(virNetServer *srv,
                                  "%s", VIR_THREADPOOL_JOB_QUEUE_DEPTH) < 0)
         return -1;
 
-    *nparams = virTypedParamListStealParams(paramlist, params);
+    if (virTypedParamListSteal(paramlist, params, nparams) < 0)
+        return -1;
 
     return 0;
 }
@@ -279,7 +280,9 @@ adminClientGetInfo(virNetServerClient *client,
                                    "%s", VIR_CLIENT_INFO_SELINUX_CONTEXT) < 0)
         return -1;
 
-    *nparams = virTypedParamListStealParams(paramlist, params);
+    if (virTypedParamListSteal(paramlist, params, nparams) < 0)
+        return -1;
+
     return 0;
 }
 
@@ -322,7 +325,8 @@ adminServerGetClientLimits(virNetServer *srv,
                                  "%s", VIR_SERVER_CLIENTS_UNAUTH_CURRENT) < 0)
         return -1;
 
-    *nparams = virTypedParamListStealParams(paramlist, params);
+    if (virTypedParamListSteal(paramlist, params, nparams) < 0)
+        return -1;
 
     return 0;
 }
index f1999d0e99379a4b65ba58888a378d8035e8b069..b58be6aa3330719ff8f7d3dff768c061faa84db8 100644 (file)
@@ -3560,7 +3560,7 @@ virTypedParamListFetch;
 virTypedParamListFree;
 virTypedParamListFromParams;
 virTypedParamListNew;
-virTypedParamListStealParams;
+virTypedParamListSteal;
 virTypedParamsCheck;
 virTypedParamsCopy;
 virTypedParamsDeserialize;
index 4df1af0ce753186da637a76bcccad6bdd990a371..6be48118b926b8025408bdea965ec35d79787a9d 100644 (file)
@@ -522,7 +522,9 @@ qemuDomainBackupJobDataToParams(virDomainJobData *jobData,
         virTypedParamListAddString(par, jobData->errmsg, VIR_DOMAIN_JOB_ERRMSG) < 0)
         return -1;
 
-    *nparams = virTypedParamListStealParams(par, params);
+    if (virTypedParamListSteal(par, params, nparams) < 0)
+        return -1;
+
     *type = virDomainJobStatusToType(jobData->status);
     return 0;
 }
index b6639ba7e9b03721ac94cf51036ba746bc924111..24f6f811418f95bacbbf0458e7a00f2d5a0c3b2e 100644 (file)
@@ -17946,7 +17946,9 @@ qemuDomainGetStats(virConnectPtr conn,
                                   dom->def->uuid, dom->def->id)))
         return -1;
 
-    tmp->nparams = virTypedParamListStealParams(params, &tmp->params);
+    if (virTypedParamListSteal(params, &tmp->params, &tmp->nparams) < 0)
+        return -1;
+
     *record = g_steal_pointer(&tmp);
     return 0;
 }
index 47c74c420c9844c3d53997a14c1ab8ed2d36854d..ac12488de9199e4923b8abeb51a0f7a76c6ed432 100644 (file)
@@ -9873,7 +9873,9 @@ testDomainGetStats(virConnectPtr conn,
                                   dom->def->uuid, dom->def->id)))
         return -1;
 
-    tmp->nparams = virTypedParamListStealParams(params, &tmp->params);
+    if (virTypedParamListSteal(params, &tmp->params, &tmp->nparams) < 0)
+        return -1;
+
     *record = g_steal_pointer(&tmp);
     return 0;
 }
index 2157b89e1b57ed458a34c2ae8b9c3e4d641a28a1..a78bcdc298bb8e6e8f578fe5281985d09eee24f9 100644 (file)
@@ -779,19 +779,27 @@ virTypedParamListFetch(virTypedParamList *list,
 }
 
 
-size_t
-virTypedParamListStealParams(virTypedParamList *list,
-                             virTypedParameterPtr *params)
+int
+virTypedParamListSteal(virTypedParamList *list,
+                       virTypedParameterPtr *par,
+                       int *npar)
 {
-    size_t ret = list->npar;
+    size_t nparams;
+
+    if (virTypedParamListFetch(list, par, &nparams) < 0)
+        return -1;
 
-    *params = g_steal_pointer(&list->par);
+    /* most callers expect 'int', so help them out */
+    *npar = nparams;
+
+    list->par = NULL;
     list->npar = 0;
     list->par_alloc = 0;
 
-    return ret;
+    return 0;
 }
 
+
 virTypedParamList *
 virTypedParamListFromParams(virTypedParameterPtr *params,
                             size_t nparams)
index b6ad209e25d47775d6d7bfb2ea2d20791448ae62..b2869173e1e9b06efb5bdf0f9f33cb2115f6802c 100644 (file)
@@ -143,9 +143,10 @@ virTypedParamListFree(virTypedParamList *list);
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(virTypedParamList, virTypedParamListFree);
 virTypedParamList *virTypedParamListNew(void);
 
-size_t
-virTypedParamListStealParams(virTypedParamList *list,
-                             virTypedParameterPtr *params);
+int
+virTypedParamListSteal(virTypedParamList *list,
+                       virTypedParameterPtr *par,
+                       int *npar);
 
 int
 virTypedParamListFetch(virTypedParamList *list,