From: Erik Skultety Date: Mon, 4 Jul 2016 10:16:36 +0000 (+0200) Subject: virlog: Introduce virLogFilterFree X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=18c3321b8bad704d4e8b8dea200c8cb6fbc70092;p=libvirt.git virlog: Introduce virLogFilterFree Provide a separate method to free a logging filter object. This will come handy once a method to create an individual logging filter object is introduced. Signed-off-by: Erik Skultety --- diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index b644fb3bfc..ccb4c5e855 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1815,6 +1815,7 @@ virLockSpaceReleaseResourcesForOwner; # util/virlog.h virLogDefineFilter; virLogDefineOutput; +virLogFilterFree; virLogGetDefaultPriority; virLogGetFilters; virLogGetNbFilters; diff --git a/src/util/virlog.c b/src/util/virlog.c index 96229d8473..81ce73f3d4 100644 --- a/src/util/virlog.c +++ b/src/util/virlog.c @@ -86,8 +86,6 @@ struct _virLogFilter { virLogPriority priority; unsigned int flags; }; -typedef struct _virLogFilter virLogFilter; -typedef virLogFilter *virLogFilterPtr; static int virLogFiltersSerial = 1; static virLogFilterPtr *virLogFilters; @@ -243,16 +241,24 @@ virLogResetFilters(void) { size_t i; - for (i = 0; i < virLogNbFilters; i++) { - VIR_FREE(virLogFilters[i]->match); - VIR_FREE(virLogFilters[i]); - } + for (i = 0; i < virLogNbFilters; i++) + virLogFilterFree(virLogFilters[i]); VIR_FREE(virLogFilters); virLogNbFilters = 0; virLogFiltersSerial++; } +void +virLogFilterFree(virLogFilterPtr filter) +{ + if (!filter) + return; + + VIR_FREE(filter->match); + VIR_FREE(filter); +} + /** * virLogDefineFilter: * @match: the pattern to match diff --git a/src/util/virlog.h b/src/util/virlog.h index 4e01b1ecc5..cea6b8e2b9 100644 --- a/src/util/virlog.h +++ b/src/util/virlog.h @@ -133,6 +133,9 @@ typedef struct _virLogMetadata *virLogMetadataPtr; typedef struct _virLogOutput virLogOutput; typedef virLogOutput *virLogOutputPtr; +typedef struct _virLogFilter virLogFilter; +typedef virLogFilter *virLogFilterPtr; + /** * virLogOutputFunc: * @src: the source of the log message @@ -192,6 +195,7 @@ int virLogDefineOutput(virLogOutputFunc f, unsigned int flags); void virLogOutputFree(virLogOutputPtr output); void virLogOutputListFree(virLogOutputPtr *list, int count); +void virLogFilterFree(virLogFilterPtr filter); /* * Internal logging API