[Libguestfs] [PATCH] utils: add new CLEANUP_XMLFREE cleanup, to call xmlFree()

Pino Toscano ptoscano at redhat.com
Thu Jul 28 14:21:08 UTC 2016


Small cleanup helper to dispose xmlChar* buffers.
---
 src/cleanup.c                   | 9 +++++++++
 src/guestfs-internal-frontend.h | 4 ++++
 2 files changed, 13 insertions(+)

diff --git a/src/cleanup.c b/src/cleanup.c
index 1aa3051..6c4558c 100644
--- a/src/cleanup.c
+++ b/src/cleanup.c
@@ -106,6 +106,15 @@ guestfs_int_cleanup_unlink_free (char **ptr)
 }
 
 void
+guestfs_int_cleanup_xmlFree (void *ptr)
+{
+  xmlChar *buf = * (xmlChar **) ptr;
+
+  if (buf)
+    xmlFree (buf);
+}
+
+void
 guestfs_int_cleanup_xmlBufferFree (void *ptr)
 {
   xmlBufferPtr xb = * (xmlBufferPtr *) ptr;
diff --git a/src/guestfs-internal-frontend.h b/src/guestfs-internal-frontend.h
index d1de76d..8689009 100644
--- a/src/guestfs-internal-frontend.h
+++ b/src/guestfs-internal-frontend.h
@@ -43,6 +43,8 @@
   __attribute__((cleanup(guestfs_int_cleanup_hash_free)))
 #define CLEANUP_UNLINK_FREE                                     \
   __attribute__((cleanup(guestfs_int_cleanup_unlink_free)))
+#define CLEANUP_XMLFREE                                         \
+  __attribute__((cleanup(guestfs_int_cleanup_xmlFree)))
 #define CLEANUP_XMLBUFFERFREE                                   \
   __attribute__((cleanup(guestfs_int_cleanup_xmlBufferFree)))
 #define CLEANUP_XMLFREEDOC                                      \
@@ -62,6 +64,7 @@
 #define CLEANUP_FREE_STRING_LIST
 #define CLEANUP_HASH_FREE
 #define CLEANUP_UNLINK_FREE
+#define CLEANUP_XMLFREE
 #define CLEANUP_XMLBUFFERFREE
 #define CLEANUP_XMLFREEDOC
 #define CLEANUP_XMLFREEURI
@@ -109,6 +112,7 @@ extern void guestfs_int_cleanup_free (void *ptr);
 extern void guestfs_int_cleanup_free_string_list (char ***ptr);
 extern void guestfs_int_cleanup_hash_free (void *ptr);
 extern void guestfs_int_cleanup_unlink_free (char **ptr);
+extern void guestfs_int_cleanup_xmlFree (void *ptr);
 extern void guestfs_int_cleanup_xmlBufferFree (void *ptr);
 extern void guestfs_int_cleanup_xmlFreeDoc (void *ptr);
 extern void guestfs_int_cleanup_xmlFreeURI (void *ptr);
-- 
2.7.4




More information about the Libguestfs mailing list