[evolution/evolution-3-12] Fix memory leaks when generating message list



commit 42589e7aa004ee1aa1e97ee70bce0c5328111341
Author: Milan Crha <mcrha redhat com>
Date:   Mon Jun 16 18:12:58 2014 +0200

    Fix memory leaks when generating message list
    
    It turned out that the values returned from ml_tree_value_at_ex() can
    be dynamically allocated, thus proper free functions should be called
    for these too.

 mail/message-list.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/mail/message-list.c b/mail/message-list.c
index 7852e67..995dac5 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -5144,8 +5144,16 @@ free_message_info_data (gpointer uid,
                         struct sort_array_data *sort_data)
 {
        if (data->values) {
-               /* values in this array are not newly allocated, even ml_tree_value_at_ex
-                * returns gpointer, not a gconstpointer */
+               gint ii;
+
+               for (ii = 0; ii < sort_data->sort_columns->len && ii < data->values->len; ii++) {
+                       struct sort_column_data *scol = g_ptr_array_index (sort_data->sort_columns, ii);
+
+                       message_list_free_value ((ETreeModel *) sort_data->message_list,
+                               scol->col->spec->compare_col,
+                               g_ptr_array_index (data->values, ii));
+               }
+
                g_ptr_array_free (data->values, TRUE);
        }
 


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