|
Jakub Filak |
60c913 |
From 25a3f7f6f61e387d903e4e1547ad91184131dd8e Mon Sep 17 00:00:00 2001
|
|
Jakub Filak |
60c913 |
From: Jakub Filak <jfilak@redhat.com>
|
|
Jakub Filak |
60c913 |
Date: Thu, 19 Mar 2015 13:58:16 +0100
|
|
Jakub Filak |
60c913 |
Subject: [PATCH] applet: fix freeing of the notify problem list
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
The functions that process the list also frees the list.
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
Jakub Filak |
60c913 |
---
|
|
Jakub Filak |
60c913 |
src/applet/applet.c | 24 ++++++++++++++++--------
|
|
Jakub Filak |
60c913 |
1 file changed, 16 insertions(+), 8 deletions(-)
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
diff --git a/src/applet/applet.c b/src/applet/applet.c
|
|
Jakub Filak |
60c913 |
index b471dbc..0cf9b49 100644
|
|
Jakub Filak |
60c913 |
--- a/src/applet/applet.c
|
|
Jakub Filak |
60c913 |
+++ b/src/applet/applet.c
|
|
Jakub Filak |
60c913 |
@@ -87,11 +87,17 @@ static bool is_networking_enabled(void)
|
|
Jakub Filak |
60c913 |
static void show_problem_list_notification(GList *problems);
|
|
Jakub Filak |
60c913 |
static void problem_info_unref(gpointer data);
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
-static gboolean process_deferred_queue_timeout_fn(GList *queue)
|
|
Jakub Filak |
60c913 |
+static gboolean process_deferred_queue_timeout_fn(void)
|
|
Jakub Filak |
60c913 |
{
|
|
Jakub Filak |
60c913 |
g_deferred_timeout = 0;
|
|
Jakub Filak |
60c913 |
- show_problem_list_notification(queue);
|
|
Jakub Filak |
60c913 |
- g_list_free_full (queue, problem_info_unref);
|
|
Jakub Filak |
60c913 |
+
|
|
Jakub Filak |
60c913 |
+ GList *tmp = g_deferred_crash_queue;
|
|
Jakub Filak |
60c913 |
+ g_deferred_crash_queue = NULL;
|
|
Jakub Filak |
60c913 |
+
|
|
Jakub Filak |
60c913 |
+ /* this function calls push_to_deferred_queue() which appends data to
|
|
Jakub Filak |
60c913 |
+ * g_deferred_crash_queue but the function also modifies the argument
|
|
Jakub Filak |
60c913 |
+ * so we must reset g_deferred_crash_queue before the call */
|
|
Jakub Filak |
60c913 |
+ show_problem_list_notification(tmp);
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
/* Remove this timeout fn from the main loop*/
|
|
Jakub Filak |
60c913 |
return G_SOURCE_REMOVE;
|
|
Jakub Filak |
60c913 |
@@ -107,8 +113,7 @@ static void connectivity_changed_cb(GObject *gobject,
|
|
Jakub Filak |
60c913 |
if (g_deferred_timeout)
|
|
Jakub Filak |
60c913 |
g_source_remove(g_deferred_timeout);
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
- g_deferred_timeout = g_idle_add ((GSourceFunc)process_deferred_queue_timeout_fn,
|
|
Jakub Filak |
60c913 |
- g_deferred_crash_queue);
|
|
Jakub Filak |
60c913 |
+ g_deferred_timeout = g_idle_add ((GSourceFunc)process_deferred_queue_timeout_fn, NULL);
|
|
Jakub Filak |
60c913 |
}
|
|
Jakub Filak |
60c913 |
}
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
@@ -583,6 +588,9 @@ add_restart_app_button (NotifyNotification *notification,
|
|
Jakub Filak |
60c913 |
problem_info_ref (pi), problem_info_unref);
|
|
Jakub Filak |
60c913 |
}
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
+/*
|
|
Jakub Filak |
60c913 |
+ * Destroys the problems argument
|
|
Jakub Filak |
60c913 |
+ */
|
|
Jakub Filak |
60c913 |
static void notify_problem_list(GList *problems)
|
|
Jakub Filak |
60c913 |
{
|
|
Jakub Filak |
60c913 |
if (problems == NULL)
|
|
Jakub Filak |
60c913 |
@@ -890,6 +898,9 @@ static void run_event_async(problem_info_t *pi, const char *event_name)
|
|
Jakub Filak |
60c913 |
handle_event_output_cb, state);
|
|
Jakub Filak |
60c913 |
}
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
+/*
|
|
Jakub Filak |
60c913 |
+ * Destroys the problems argument
|
|
Jakub Filak |
60c913 |
+ */
|
|
Jakub Filak |
60c913 |
static void show_problem_list_notification(GList *problems)
|
|
Jakub Filak |
60c913 |
{
|
|
Jakub Filak |
60c913 |
if (is_autoreporting_enabled())
|
|
Jakub Filak |
60c913 |
@@ -1086,10 +1097,7 @@ next:
|
|
Jakub Filak |
60c913 |
}
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
if (notify_list)
|
|
Jakub Filak |
60c913 |
- {
|
|
Jakub Filak |
60c913 |
show_problem_list_notification(notify_list);
|
|
Jakub Filak |
60c913 |
- g_list_free_full (notify_list, problem_info_unref);
|
|
Jakub Filak |
60c913 |
- }
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
list_free_with_free(new_dirs);
|
|
Jakub Filak |
60c913 |
|
|
Jakub Filak |
60c913 |
--
|
|
Jakub Filak |
60c913 |
2.3.2
|
|
Jakub Filak |
60c913 |
|