From 5b9c31a0cece7852a22a76e24a4738cb4c773d1d Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Tue, 25 Aug 2015 00:13:49 +0100 Subject: [PATCH] gdk: fix memory corruption g_hash_table_replace will free the list pointer we're modifying. Let's just do memory management ourselves. https://bugzilla.gnome.org/show_bug.cgi?id=754134 --- clutter/gdk/clutter-master-clock-gdk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clutter/gdk/clutter-master-clock-gdk.c b/clutter/gdk/clutter-master-clock-gdk.c index 91872c4ec..6a4a48050 100644 --- a/clutter/gdk/clutter-master-clock-gdk.c +++ b/clutter/gdk/clutter-master-clock-gdk.c @@ -310,6 +310,7 @@ clutter_master_clock_gdk_remove_stage_clock (ClutterMasterClockGdk *master_clock clutter_master_clock_gdk_update, master_clock); g_hash_table_remove (master_clock->clock_to_stage, frame_clock); + g_list_free (stages); } else { @@ -461,7 +462,7 @@ clutter_master_clock_gdk_init (ClutterMasterClockGdk *self) const GSList *stages, *l; self->clock_to_stage = g_hash_table_new_full (g_direct_hash, g_direct_equal, - g_object_unref, (GDestroyNotify) g_list_free); + g_object_unref, NULL); self->stage_to_clock = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL, g_object_unref);