[epiphany/mcatanzaro/session: 6/6] session: remove user data from task to workaround glib bug
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/mcatanzaro/session: 6/6] session: remove user data from task to workaround glib bug
- Date: Wed, 28 Apr 2021 19:58:23 +0000 (UTC)
commit ff8ecbf673cd25f8ed34d4ccb29cc5d3d13cd683
Author: Michael Catanzaro <mcatanzaro gnome org>
Date: Tue Apr 27 10:01:44 2021 -0500
session: remove user data from task to workaround glib bug
GTask is destroying our user data on the secondary thread instead of the
main thread, as required, causing UI process crashes. This is a
workaround for glib#1346.
Part-of: <https://gitlab.gnome.org/GNOME/epiphany/-/merge_requests/954>
src/ephy-session.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/src/ephy-session.c b/src/ephy-session.c
index a8767a759..84da2c1e1 100644
--- a/src/ephy-session.c
+++ b/src/ephy-session.c
@@ -823,6 +823,12 @@ save_session_in_thread_finished_cb (GObject *source_object,
{
g_object_unref (EPHY_SESSION (source_object));
g_application_release (G_APPLICATION (ephy_shell_get_default ()));
+
+ /* FIXME: this is a workaround for https://gitlab.gnome.org/GNOME/glib/-/issues/1346.
+ * After this GLib issue is fixed, we should instead pass save_data_free() as the
+ * GDestroyNotify parameter to g_task_set_task_data().
+ */
+ save_data_free (g_task_get_task_data (G_TASK (res)));
}
static gboolean
@@ -999,7 +1005,7 @@ ephy_session_save_timeout_cb (EphySession *session)
g_object_ref (session);
task = g_task_new (session, NULL, save_session_in_thread_finished_cb, NULL);
- g_task_set_task_data (task, data, (GDestroyNotify)save_data_free);
+ g_task_set_task_data (task, data, NULL);
g_task_run_in_thread (task, save_session_sync);
g_object_unref (task);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]