From 574e832f20c8c3f278709531083a03b190f1adfa Mon Sep 17 00:00:00 2001
From: Ray Strode <rstrode@redhat.com>
Date: Fri, 25 Sep 2020 14:04:31 -0400
Subject: [PATCH 2/4] barriers: Fix leak in meta_barrier_destroy
meta_barrier_destroy is responsible for removing the extra
reference added in meta_barrier_constructed.
Unfortunately, it fails to do this because of a misplaced early
return statement.
This commit removes the spurious return.
---
src/backends/meta-barrier.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/backends/meta-barrier.c b/src/backends/meta-barrier.c
index a1e1180fe..2353ef150 100644
--- a/src/backends/meta-barrier.c
+++ b/src/backends/meta-barrier.c
@@ -264,61 +264,61 @@ meta_barrier_class_init (MetaBarrierClass *klass)
G_TYPE_NONE, 1,
META_TYPE_BARRIER_EVENT);
/**
* MetaBarrier::left:
* @barrier: The #MetaBarrier that was left
* @event: A #MetaBarrierEvent that has the details of how
* the barrier was left.
*
* When a pointer barrier hitbox was left, this will trigger.
* This requires an XI2-enabled server.
*/
obj_signals[LEFT] =
g_signal_new ("left",
G_TYPE_FROM_CLASS (object_class),
G_SIGNAL_RUN_FIRST,
0,
NULL, NULL, NULL,
G_TYPE_NONE, 1,
META_TYPE_BARRIER_EVENT);
g_type_class_add_private (object_class, sizeof(MetaBarrierPrivate));
}
void
meta_barrier_destroy (MetaBarrier *barrier)
{
MetaBarrierImpl *impl = barrier->priv->impl;
if (impl)
- return META_BARRIER_IMPL_GET_CLASS (impl)->destroy (impl);
+ META_BARRIER_IMPL_GET_CLASS (impl)->destroy (impl);
g_object_unref (barrier);
}
static void
meta_barrier_init (MetaBarrier *barrier)
{
barrier->priv = G_TYPE_INSTANCE_GET_PRIVATE (barrier, META_TYPE_BARRIER, MetaBarrierPrivate);
}
void
_meta_barrier_emit_hit_signal (MetaBarrier *barrier,
MetaBarrierEvent *event)
{
g_signal_emit (barrier, obj_signals[HIT], 0, event);
}
void
_meta_barrier_emit_left_signal (MetaBarrier *barrier,
MetaBarrierEvent *event)
{
g_signal_emit (barrier, obj_signals[LEFT], 0, event);
}
static void
meta_barrier_impl_class_init (MetaBarrierImplClass *klass)
{
klass->is_active = NULL;
klass->release = NULL;
klass->destroy = NULL;
--
2.26.2