]> xenbits.xensource.com Git - libvirt.git/commitdiff
virlog: Introduce virLogOutputListFree
authorErik Skultety <eskultet@redhat.com>
Wed, 30 Mar 2016 12:11:12 +0000 (14:11 +0200)
committerErik Skultety <eskultet@redhat.com>
Mon, 4 Jul 2016 14:44:20 +0000 (16:44 +0200)
This is just a convenience method for discarding a list of outputs instead of
using a 'for' loop everywhere. It is safe to pass -1 as the number of elements
in the list as well as passing NULL as list reference.

Signed-off-by: Erik Skultety <eskultet@redhat.com>
src/libvirt_private.syms
src/util/virlog.c
src/util/virlog.h

index 553e004421fd95631b02b6aea67b88703e18b6af..b644fb3bfc2577327e6ec09500cc66f9720de36b 100644 (file)
@@ -1823,6 +1823,7 @@ virLogGetOutputs;
 virLogLock;
 virLogMessage;
 virLogOutputFree;
+virLogOutputListFree;
 virLogParseDefaultPriority;
 virLogParseFilters;
 virLogParseOutputs;
index 5c5c5cdbbe57ab1af1594040b1045e11a619303c..96229d84731e99e08068531b7464c3b564f37c69 100644 (file)
@@ -325,12 +325,8 @@ virLogDefineFilter(const char *match,
 static void
 virLogResetOutputs(void)
 {
-    size_t i;
-
-    for (i = 0; i < virLogNbOutputs; i++)
-        virLogOutputFree(virLogOutputs[i]);
-
-    VIR_FREE(virLogOutputs);
+    virLogOutputListFree(virLogOutputs, virLogNbOutputs);
+    virLogOutputs = NULL;
     virLogNbOutputs = 0;
 }
 
@@ -348,6 +344,28 @@ virLogOutputFree(virLogOutputPtr output)
 
 }
 
+
+/**
+ * virLogOutputsFreeList:
+ * @list: list of outputs to be freed
+ * @count: number of elements in the list
+ *
+ * Frees a list of outputs.
+ */
+void
+virLogOutputListFree(virLogOutputPtr *list, int count)
+{
+    size_t i;
+
+    if (!list || count < 0)
+        return;
+
+    for (i = 0; i < count; i++)
+        virLogOutputFree(list[i]);
+    VIR_FREE(list);
+}
+
+
 /**
  * virLogDefineOutput:
  * @f: the function to call to output a message
index bdd9ae3aacaf96523896221d47156f67f096bf55..4e01b1ecc576b4b3fdc03713586e36677c928bc0 100644 (file)
@@ -191,6 +191,7 @@ int virLogDefineOutput(virLogOutputFunc f,
                        const char *name,
                        unsigned int flags);
 void virLogOutputFree(virLogOutputPtr output);
+void virLogOutputListFree(virLogOutputPtr *list, int count);
 
 /*
  * Internal logging API