[mutter] surface-actor: Fix memory leak
- From: Jonas Ã…dahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] surface-actor: Fix memory leak
- Date: Mon, 23 Mar 2020 20:54:29 +0000 (UTC)
commit 1d2004524728d337b0e98bedfc360549b9ee7d0e
Author: Robert Mader <robert mader posteo de>
Date: Tue Mar 17 20:57:18 2020 +0100
surface-actor: Fix memory leak
When we create a new region for an opaque texture we need to free it.
While on it, simplify the check slightly.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1108
src/compositor/meta-surface-actor.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/src/compositor/meta-surface-actor.c b/src/compositor/meta-surface-actor.c
index ff66f3c0a..41aa5a26d 100644
--- a/src/compositor/meta-surface-actor.c
+++ b/src/compositor/meta-surface-actor.c
@@ -285,8 +285,11 @@ meta_surface_actor_cull_out (MetaCullable *cullable,
int geometry_scale = 1;
opaque_region = meta_shaped_texture_get_opaque_region (priv->texture);
-
- if (!opaque_region && meta_shaped_texture_is_opaque (priv->texture))
+ if (opaque_region)
+ {
+ cairo_region_reference (opaque_region);
+ }
+ else if (meta_shaped_texture_is_opaque (priv->texture))
{
cairo_rectangle_int_t rect;
@@ -297,9 +300,10 @@ meta_surface_actor_cull_out (MetaCullable *cullable,
opaque_region = cairo_region_create_rectangle (&rect);
}
-
- if (!opaque_region)
- return;
+ else
+ {
+ return;
+ }
window_actor =
meta_window_actor_from_actor (CLUTTER_ACTOR (surface_actor));
@@ -313,6 +317,7 @@ meta_surface_actor_cull_out (MetaCullable *cullable,
if (clip_region)
cairo_region_subtract (clip_region, scaled_opaque_region);
+ cairo_region_destroy (opaque_region);
cairo_region_destroy (scaled_opaque_region);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]