summaryrefslogtreecommitdiff
path: root/src/ui/frames.c
diff options
context:
space:
mode:
authorVictor Kareh <[email protected]>2019-05-21 14:15:37 -0400
committerraveit65 <[email protected]>2019-06-16 18:12:44 +0200
commitaff2e261a7331f35fa7821fd9b524e217723c2fb (patch)
tree53dc0bc4cf4c0ed49e05f350114a7a1a30eade18 /src/ui/frames.c
parentfd8ca12037660a7fb6903a053c89899adeb78dd5 (diff)
downloadmarco-aff2e261a7331f35fa7821fd9b524e217723c2fb.tar.bz2
marco-aff2e261a7331f35fa7821fd9b524e217723c2fb.tar.xz
fix a crash-on-exit
meta_frames_destroy() was not safe to be called multiple times, which was causing a crash on exit due to something else changing somewhere that makes it get called multiple times. https://bugzilla.gnome.org/show_bug.cgi?id=654489 upstream commit: https://gitlab.gnome.org/GNOME/metacity/commit/e35be641
Diffstat (limited to 'src/ui/frames.c')
-rw-r--r--src/ui/frames.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/ui/frames.c b/src/ui/frames.c
index 058fdb91..95f037c3 100644
--- a/src/ui/frames.c
+++ b/src/ui/frames.c
@@ -303,8 +303,17 @@ meta_frames_destroy (GtkWidget *widget)
}
g_slist_free (winlist);
+ if (frames->normal_style)
+ {
g_object_unref (frames->normal_style);
+ frames->normal_style = NULL;
+ }
+
+ if (frames->style_variants)
+ {
g_hash_table_destroy (frames->style_variants);
+ frames->style_variants = NULL;
+ }
GTK_WIDGET_CLASS (meta_frames_parent_class)->destroy (widget);
}