From 145cac3a376f307aa4f5a2d6965f209111ab70e5 Mon Sep 17 00:00:00 2001 From: Sebastian Keller Date: Mon, 6 Nov 2023 20:19:53 +0100 Subject: [PATCH] surface-actor: Fix leak when setting non-empty clip region When 655b4a9c75 ported this to MtkRegion, it removed the unref of the copied region after setting it in the shaped texture. Fixes: 655b4a9c7 ("Port to MtkRegion") Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3140 Part-of: --- src/compositor/meta-surface-actor.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/compositor/meta-surface-actor.c b/src/compositor/meta-surface-actor.c index 82e82f6e6..cad4cad73 100644 --- a/src/compositor/meta-surface-actor.c +++ b/src/compositor/meta-surface-actor.c @@ -157,10 +157,16 @@ set_clip_region (MetaSurfaceActor *surface_actor, MetaShapedTexture *stex = priv->texture; if (clip_region && !mtk_region_is_empty (clip_region)) - meta_shaped_texture_set_clip_region (stex, - mtk_region_copy (clip_region)); + { + g_autoptr (MtkRegion) clip_region_copy = NULL; + + clip_region_copy = mtk_region_copy (clip_region); + meta_shaped_texture_set_clip_region (stex, clip_region_copy); + } else - meta_shaped_texture_set_clip_region (stex, clip_region); + { + meta_shaped_texture_set_clip_region (stex, clip_region); + } } static void