]> xenbits.xensource.com Git - libvirt.git/commitdiff
virlog: Introduce virLogFilterListFree
authorErik Skultety <eskultet@redhat.com>
Tue, 29 Mar 2016 20:07:23 +0000 (22:07 +0200)
committerErik Skultety <eskultet@redhat.com>
Mon, 4 Jul 2016 14:44:58 +0000 (16:44 +0200)
This is just a convenience method for discarding a list of filters 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/util/virlog.c
src/util/virlog.h

index 81ce73f3d4d35838f8a4876397e05ce26d068292..06f9a602e10f6417b26a7383df50ff655f03ed7e 100644 (file)
@@ -239,11 +239,8 @@ virLogSetDefaultPriority(virLogPriority priority)
 static void
 virLogResetFilters(void)
 {
-    size_t i;
-
-    for (i = 0; i < virLogNbFilters; i++)
-        virLogFilterFree(virLogFilters[i]);
-    VIR_FREE(virLogFilters);
+    virLogFilterListFree(virLogFilters, virLogNbFilters);
+    virLogFilters = NULL;
     virLogNbFilters = 0;
     virLogFiltersSerial++;
 }
@@ -259,6 +256,28 @@ virLogFilterFree(virLogFilterPtr filter)
     VIR_FREE(filter);
 }
 
+
+/**
+ * virLogFilterFreeList:
+ * @list: list of filters to be freed
+ * @count: number of elements in the list
+ *
+ * Frees a list of filters.
+ */
+void
+virLogFilterListFree(virLogFilterPtr *list, int count)
+{
+    size_t i;
+
+    if (!list || count < 0)
+        return;
+
+    for (i = 0; i < count; i++)
+        virLogFilterFree(list[i]);
+    VIR_FREE(list);
+}
+
+
 /**
  * virLogDefineFilter:
  * @match: the pattern to match
index cea6b8e2b96d7773a9d01d69930a3f48d621e8ba..f6ee8e653898a919672dcd12b234eec9cc1ed05b 100644 (file)
@@ -196,6 +196,7 @@ int virLogDefineOutput(virLogOutputFunc f,
 void virLogOutputFree(virLogOutputPtr output);
 void virLogOutputListFree(virLogOutputPtr *list, int count);
 void virLogFilterFree(virLogFilterPtr filter);
+void virLogFilterListFree(virLogFilterPtr *list, int count);
 
 /*
  * Internal logging API