]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: virtypedparam: Introduce 'virTypedParamListFetch'
authorPeter Krempa <pkrempa@redhat.com>
Tue, 18 Apr 2023 13:45:31 +0000 (15:45 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 2 May 2023 12:32:46 +0000 (14:32 +0200)
Introduce a helper that fetches the typed parameters from the list while
still preserving ownership of the pointer by the list.

In the future this will be also able to report errors stored in the
list.

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

index 0f42c2de0b9e9014599e17de75f5d86ee7fbe711..f1999d0e99379a4b65ba58888a378d8035e8b069 100644 (file)
@@ -3556,6 +3556,7 @@ virTypedParamListAddString;
 virTypedParamListAddUInt;
 virTypedParamListAddULLong;
 virTypedParamListConcat;
+virTypedParamListFetch;
 virTypedParamListFree;
 virTypedParamListFromParams;
 virTypedParamListNew;
index 6ac9a4e2f3c268e6cebdda98f8b139d44bbe25d6..05dea25165c8ea6f74d3a783bc9405ce4d39b712 100644 (file)
@@ -746,6 +746,32 @@ virTypedParamListFree(virTypedParamList *list)
 }
 
 
+/**
+ * virTypedParamListFetch:
+ *
+ * @list: virTypedParamList object
+ * @par: if not NULL filled with the typed parameters stored in @list
+ * @npar: if not NULL filled with the number of typed parameters stored in @list
+ *
+ * Checks that @list has no errors stored and optionally fills @par and @npar
+ * with a valid list of typed parameters. The typed parameters still belong to
+ * @list and will be freed together.
+ */
+int
+virTypedParamListFetch(virTypedParamList *list,
+                       virTypedParameterPtr *par,
+                       size_t *npar)
+{
+    if (par)
+        *par = list->par;
+
+    if (npar)
+        *npar = list->npar;
+
+    return 0;
+}
+
+
 size_t
 virTypedParamListStealParams(virTypedParamList *list,
                              virTypedParameterPtr *params)
index 45422c2673c5f561c731c3f89db0bb6cef33e5c7..628c951432a5f822e753b9d8592d53ef57eff8af 100644 (file)
@@ -152,6 +152,12 @@ size_t
 virTypedParamListStealParams(virTypedParamList *list,
                              virTypedParameterPtr *params);
 
+int
+virTypedParamListFetch(virTypedParamList *list,
+                           virTypedParameterPtr *par,
+                           size_t *npar)
+    G_GNUC_WARN_UNUSED_RESULT;
+
 virTypedParamList *
 virTypedParamListFromParams(virTypedParameterPtr *params,
                             size_t nparams);