[balsa] mailboxlocal: Use g_ptr_array_new_with_free_func()



commit 18403bb74b76250b3d3e6981afe32fb3e55986fd
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Wed May 1 21:49:51 2019 -0400

    mailboxlocal: Use g_ptr_array_new_with_free_func()
    
    mailbox-local: Use g_ptr_array_new_with_free_func() to manage
    deallocation of threading_info structures.
    
    * libbalsa/mailbox_local.c
    (libbalsa_mailbox_local_set_threading_info),
    (libbalsa_mailbox_local_msgno_removed)

 ChangeLog                |  9 +++++++++
 libbalsa/mailbox_local.c | 11 +++++------
 2 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 143d0d320..eb304312c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2019-05-01  Peter Bloomfield  <pbloomfield bellsouth net>
+
+       mailbox-local: Use g_ptr_array_new_with_free_func() to manage
+       deallocation of threading_info structures.
+
+       * libbalsa/mailbox_local.c
+       (libbalsa_mailbox_local_set_threading_info),
+       (libbalsa_mailbox_local_msgno_removed)
+
 2019-05-01  Peter Bloomfield  <pbloomfield bellsouth net>
 
        mailbox: Use g_ptr_array_new_with_free_func() to manage
diff --git a/libbalsa/mailbox_local.c b/libbalsa/mailbox_local.c
index f32fdfbf4..daf4e589f 100644
--- a/libbalsa/mailbox_local.c
+++ b/libbalsa/mailbox_local.c
@@ -1101,8 +1101,9 @@ static void lbml_threading_flat(LibBalsaMailbox * mailbox);
 void 
 libbalsa_mailbox_local_set_threading_info(LibBalsaMailboxLocal * local)
 {
-    if (!local->threading_info)
-        local->threading_info = g_ptr_array_new();
+    if (local->threading_info == NULL)
+        local->threading_info =
+            g_ptr_array_new_with_free_func((GDestroyNotify) lbm_local_free_info);
 }
 
 static void
@@ -1207,11 +1208,9 @@ libbalsa_mailbox_local_msgno_removed(LibBalsaMailbox * mailbox,
 
     /* local might not have a threading-info array, and even if it does,
      * it might not be populated; we check both. */
-    if (local->threading_info && msgno <= local->threading_info->len) {
-       lbm_local_free_info(g_ptr_array_index(local->threading_info,
-                                             msgno - 1));
+    if (local->threading_info != NULL &&
+        msgno > 0 && msgno <= local->threading_info->len)
        g_ptr_array_remove_index(local->threading_info, msgno - 1);
-    }
 
     libbalsa_mailbox_msgno_removed(mailbox, msgno);
 }


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