summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2020-09-25 14:04:31 -0400
committerRay Strode <rstrode@redhat.com>2020-09-27 00:38:58 -0400
commit1e78d90a37903d1eaef8f503bf7711a6829df82e (patch)
tree2145d829447193e86e0012d5e04de76424ed2746
parent97f10a0d215388c3d2870847b2d38a719bcfe001 (diff)
downloadmutter-wip/fix-barrier-leak.tar.gz
barriers: Free backend implementation at dispose timewip/fix-barrier-leak
When a MetaBarrier is first created it allocates a backend impl object which does the actual heavy lifting. Unfortunately, that backend object is never freed. This commit ensures the implementation gets freed when the barrier object is freed. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1451
-rw-r--r--src/backends/meta-barrier.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backends/meta-barrier.c b/src/backends/meta-barrier.c
index ad6c8d583..71536c3d7 100644
--- a/src/backends/meta-barrier.c
+++ b/src/backends/meta-barrier.c
@@ -128,6 +128,7 @@ static void
meta_barrier_dispose (GObject *object)
{
MetaBarrier *barrier = META_BARRIER (object);
+ MetaBarrierPrivate *priv = barrier->priv;
if (meta_barrier_is_active (barrier))
{
@@ -135,6 +136,8 @@ meta_barrier_dispose (GObject *object)
barrier);
}
+ g_clear_object (&priv->impl);
+
G_OBJECT_CLASS (meta_barrier_parent_class)->dispose (object);
}