summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plist.c2
-rw-r--r--src/plist.h1
-rw-r--r--src/xplist.c1
3 files changed, 3 insertions, 1 deletions
diff --git a/src/plist.c b/src/plist.c
index d20a252..703ac65 100644
--- a/src/plist.c
+++ b/src/plist.c
@@ -91,7 +91,7 @@ plist_data_t plist_new_plist_data(void)
91 return data; 91 return data;
92} 92}
93 93
94static void plist_free_data(plist_data_t data) 94void plist_free_data(plist_data_t data)
95{ 95{
96 if (data) 96 if (data)
97 { 97 {
diff --git a/src/plist.h b/src/plist.h
index 822144d..ad65dea 100644
--- a/src/plist.h
+++ b/src/plist.h
@@ -67,6 +67,7 @@ typedef struct plist_data_s *plist_data_t;
67plist_t plist_new_node(plist_data_t data); 67plist_t plist_new_node(plist_data_t data);
68plist_data_t plist_get_data(const plist_t node); 68plist_data_t plist_get_data(const plist_t node);
69plist_data_t plist_new_plist_data(void); 69plist_data_t plist_new_plist_data(void);
70void plist_free_data(plist_data_t data);
70int plist_data_compare(const void *a, const void *b); 71int plist_data_compare(const void *a, const void *b);
71 72
72 73
diff --git a/src/xplist.c b/src/xplist.c
index e0a76da..8fe3604 100644
--- a/src/xplist.c
+++ b/src/xplist.c
@@ -337,6 +337,7 @@ static void node_to_xml(node_t* node, void *xml_struct)
337 for (j = num; j > 0; j--) { 337 for (j = num; j > 0; j--) {
338 node_t* ch = node_nth_child(node, j-1); 338 node_t* ch = node_nth_child(node, j-1);
339 node_detach(node, ch); 339 node_detach(node, ch);
340 plist_free_data((plist_data_t)((node_t*)ch)->data);
340 node_destroy(ch); 341 node_destroy(ch);
341 } 342 }
342 node_data->type = PLIST_UID; 343 node_data->type = PLIST_UID;