[Libguestfs] [PATCH 2/3] builder: rename and make public the section/field free functions

Pino Toscano ptoscano at redhat.com
Thu Mar 20 13:48:12 UTC 2014


They will be needed also elsewhere.
---
 builder/index-struct.c | 19 ++++++++-----------
 builder/index-struct.h | 10 ++++++++++
 2 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/builder/index-struct.c b/builder/index-struct.c
index f32534c..eacca6c 100644
--- a/builder/index-struct.c
+++ b/builder/index-struct.c
@@ -24,9 +24,6 @@
 
 #include "index-struct.h"
 
-static void free_section (struct section *section);
-static void free_field (struct field *field);
-
 void
 parse_context_init (struct parse_context *context)
 {
@@ -36,25 +33,25 @@ parse_context_init (struct parse_context *context)
 void
 parse_context_free (struct parse_context *context)
 {
-  free_section (context->parsed_index);
+  section_free (context->parsed_index);
 }
 
-static void
-free_section (struct section *section)
+void
+section_free (struct section *section)
 {
   if (section) {
-    free_section (section->next);
+    section_free (section->next);
     free (section->name);
-    free_field (section->fields);
+    field_free (section->fields);
     free (section);
   }
 }
 
-static void
-free_field (struct field *field)
+void
+field_free (struct field *field)
 {
   if (field) {
-    free_field (field->next);
+    field_free (field->next);
     free (field->key);
     free (field->subkey);
     free (field->value);
diff --git a/builder/index-struct.h b/builder/index-struct.h
index 7e16637..3edd06d 100644
--- a/builder/index-struct.h
+++ b/builder/index-struct.h
@@ -53,4 +53,14 @@ extern void parse_context_init (struct parse_context *state);
 /* Free the content of a parse_context.  The actual pointer is not freed. */
 extern void parse_context_free (struct parse_context *state);
 
+/* Free the content of a section, recursively freeing also its fields.
+ * The actual pointer is not freed.
+ */
+extern void section_free (struct section *section);
+
+/* Free the content of a field, recursively freeing also its next field.
+ * The actual pointer is not freed.
+ */
+extern void field_free (struct field *field);
+
 #endif /* INDEX_STRUCT_H */
-- 
1.8.3.1




More information about the Libguestfs mailing list