[metacity] constraints: fix mem leak in meta_window_constrain()
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] constraints: fix mem leak in meta_window_constrain()
- Date: Mon, 19 Jan 2015 03:16:54 +0000 (UTC)
commit 7e7f25f40ce3b15cbc63d6e8743215e287f08710
Author: Pavel Vasin <rat4vier gmail com>
Date: Fri Jun 29 13:20:08 2012 +0400
constraints: fix mem leak in meta_window_constrain()
MetaFrameBorders leaked when orig_borders != NULL and
window->fullscreen == TRUE
https://bugzilla.gnome.org/show_bug.cgi?id=679153
src/core/constraints.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
---
diff --git a/src/core/constraints.c b/src/core/constraints.c
index b93f42e..a462184 100644
--- a/src/core/constraints.c
+++ b/src/core/constraints.c
@@ -116,6 +116,7 @@ typedef struct
MetaRectangle orig;
MetaRectangle current;
MetaFrameBorders *borders;
+ gboolean must_free_borders;
ActionType action_type;
gboolean is_user_action;
@@ -330,7 +331,7 @@ meta_window_constrain (MetaWindow *window,
* not gobject-style--gobject would be more pain than it's worth) or
* smart pointers would be so much nicer here. *shrug*
*/
- if (!orig_borders)
+ if (info.must_free_borders)
g_free (info.borders);
}
@@ -351,9 +352,15 @@ setup_constraint_info (ConstraintInfo *info,
/* Create a fake frame geometry if none really exists */
if (orig_borders && !window->fullscreen)
- info->borders = orig_borders;
+ {
+ info->borders = orig_borders;
+ info->must_free_borders = FALSE;
+ }
else
- info->borders = g_new0 (MetaFrameBorders, 1);
+ {
+ info->borders = g_new0 (MetaFrameBorders, 1);
+ info->must_free_borders = TRUE;
+ }
if (flags & META_IS_MOVE_ACTION && flags & META_IS_RESIZE_ACTION)
info->action_type = ACTION_MOVE_AND_RESIZE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]