[Libguestfs] [PATCH nbdkit 2/8] server: Add CLEANUP_EXTENTS_FREE macro.

Richard W.M. Jones rjones at redhat.com
Wed Mar 20 22:11:28 UTC 2019


Provides automatic cleanup of ‘struct nbdkit_extents_map *’ on exit
from a scope or function.
---
 server/internal.h  | 2 ++
 server/cleanup.c   | 8 +++++++-
 server/Makefile.am | 3 ++-
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/server/internal.h b/server/internal.h
index 71d2815..ae51804 100644
--- a/server/internal.h
+++ b/server/internal.h
@@ -139,6 +139,8 @@ extern void change_user (void);
 /* cleanup.c */
 extern void cleanup_free (void *ptr);
 #define CLEANUP_FREE __attribute__((cleanup (cleanup_free)))
+extern void cleanup_extents_free (void *ptr);
+#define CLEANUP_EXTENTS_FREE __attribute__((cleanup (cleanup_extents_free)))
 extern void cleanup_unlock (pthread_mutex_t **ptr);
 #define CLEANUP_UNLOCK __attribute__((cleanup (cleanup_unlock)))
 #define ACQUIRE_LOCK_FOR_CURRENT_SCOPE(mutex) \
diff --git a/server/cleanup.c b/server/cleanup.c
index c29ecec..1eec613 100644
--- a/server/cleanup.c
+++ b/server/cleanup.c
@@ -1,5 +1,5 @@
 /* nbdkit
- * Copyright (C) 2013-2018 Red Hat Inc.
+ * Copyright (C) 2013-2019 Red Hat Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -46,6 +46,12 @@ cleanup_free (void *ptr)
   free (* (void **) ptr);
 }
 
+void
+cleanup_extents_free (void *ptr)
+{
+  nbdkit_extents_free (* (void **) ptr);
+}
+
 void
 cleanup_unlock (pthread_mutex_t **ptr)
 {
diff --git a/server/Makefile.am b/server/Makefile.am
index c73223a..fb21d42 100644
--- a/server/Makefile.am
+++ b/server/Makefile.am
@@ -137,7 +137,8 @@ check_PROGRAMS = test-utils
 test_utils_SOURCES = \
 	test-utils.c \
 	utils.c \
-	cleanup.c
+	cleanup.c \
+	extents.c
 test_utils_CPPFLAGS = \
 	-I$(top_srcdir)/include \
 	-I$(top_srcdir)/common/include
-- 
2.20.1




More information about the Libguestfs mailing list