[balsa/wip/gtk4: 205/351] libbalsa-message: streamline some list freeing



commit e555c4ecd782d42934af5990e3dbbe1655b996de
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Sun Mar 4 14:50:53 2018 -0500

    libbalsa-message: streamline some list freeing
    
    Drop the FREE_HEADER_LIST macro, and use g_list_free_full(header,
    g_strfreev) or libbalsa_clear_list(&header, g_strfreev), as appropriate.

 libbalsa/message.c |   20 +++++++-------------
 libbalsa/message.h |    3 ---
 2 files changed, 7 insertions(+), 16 deletions(-)
---
diff --git a/libbalsa/message.c b/libbalsa/message.c
index cdf7da2..949eaf6 100644
--- a/libbalsa/message.c
+++ b/libbalsa/message.c
@@ -182,14 +182,10 @@ libbalsa_message_finalize(GObject * object)
 static void
 lb_message_headers_extra_destroy(LibBalsaMessageHeaders * headers)
 {
-    if (!headers)
-       return;
-
-    FREE_HEADER_LIST(headers->user_hdrs);
-    headers->user_hdrs = NULL;
-
-    g_free(headers->fcc_url);
-    headers->fcc_url = NULL;
+    if (headers != NULL) {
+        libbalsa_clear_list(&headers->user_hdrs, (GDestroyNotify) g_strfreev);
+        g_clear_pointer(&headers->fcc_url, g_free);
+    }
 }
 
 void 
@@ -268,7 +264,7 @@ canonize_header_value(gchar *value)
    returns allocated GList containing (header=>value) ALL headers pairs
    as generated by g_strsplit.
    The list has to be freed by the following chunk of code:
-    FREE_HEADER_LIST(list);
+   g_list_free_full(list, (GDestroyNotify) g_strfreev)
 */
 static gchar **
 libbalsa_create_hdr_pair(const gchar * name, gchar * value)
@@ -378,7 +374,7 @@ libbalsa_message_set_user_header(LibBalsaMessage * message,
     if ((header = libbalsa_message_find_user_hdr(message, name))) {
         headers->user_hdrs =
             g_list_remove_link(headers->user_hdrs, header);
-        FREE_HEADER_LIST(header);
+        g_list_free_full(header, (GDestroyNotify) g_strfreev);
     }
 
     if (value && *value)
@@ -425,9 +421,7 @@ prepend_header_misc(GList      *res,
  * returns allocated GList containing (header=>value) ALL headers
  * pairs as generated by g_strsplit. The list has to be freed by the
  * following chunk of code (or something functionally similar):
- * 
- * g_list_foreach(list, (GFunc) g_strfreev, NULL);
- * g_list_free(list);
+ * g_list_free_full(list, (GDestroyNotify) g_strfreev)
 */
 
 
diff --git a/libbalsa/message.h b/libbalsa/message.h
index 3cc11c0..02f3a72 100644
--- a/libbalsa/message.h
+++ b/libbalsa/message.h
@@ -156,9 +156,6 @@ struct _LibBalsaMessageHeaders {
     GList *user_hdrs;
 };
 
-/** FREE_HEADER_LIST() frees user_hdrs */
-#define FREE_HEADER_LIST(l) g_list_free_full((l),(GDestroyNotify)g_strfreev)
-
 struct _LibBalsaMessage {
     GObject object;
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]