committed by
Kalev Lember
parent
75565b2364
commit
bd4d6ff3e4
@@ -0,0 +1,94 @@
|
||||
From 71a62bb18fe3aebc6668bd37ef6917398ef71ae1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Sat, 20 Oct 2018 15:46:37 +0200
|
||||
Subject: [PATCH 1/2] constraints: Make current placement rule stack allocated
|
||||
|
||||
We're not going to keep it past the function scope, so no reason to put
|
||||
it on the heap. We also didn't free it, so this'll fix a memory leak.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell/issues/653
|
||||
---
|
||||
src/core/constraints.c | 21 ++++++++++-----------
|
||||
1 file changed, 10 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/core/constraints.c b/src/core/constraints.c
|
||||
index a205ea0fd7..3652b3d8e1 100644
|
||||
--- a/src/core/constraints.c
|
||||
+++ b/src/core/constraints.c
|
||||
@@ -787,7 +787,7 @@ constrain_custom_rule (MetaWindow *window,
|
||||
MetaPlacementRule *placement_rule;
|
||||
MetaRectangle intersection;
|
||||
gboolean constraint_satisfied;
|
||||
- MetaPlacementRule *current_rule;
|
||||
+ MetaPlacementRule current_rule;
|
||||
MetaWindow *parent;
|
||||
MetaRectangle parent_rect;
|
||||
|
||||
@@ -820,25 +820,24 @@ constrain_custom_rule (MetaWindow *window,
|
||||
if (check_only)
|
||||
return constraint_satisfied;
|
||||
|
||||
- current_rule = g_new0 (MetaPlacementRule, 1);
|
||||
- *current_rule = *placement_rule;
|
||||
+ current_rule = *placement_rule;
|
||||
|
||||
if (constraint_satisfied)
|
||||
goto done;
|
||||
|
||||
if (info->current.width != intersection.width &&
|
||||
- (current_rule->constraint_adjustment &
|
||||
+ (current_rule.constraint_adjustment &
|
||||
META_PLACEMENT_CONSTRAINT_ADJUSTMENT_FLIP_X))
|
||||
{
|
||||
- try_flip_window_position (window, info, current_rule,
|
||||
+ try_flip_window_position (window, info, ¤t_rule,
|
||||
META_PLACEMENT_CONSTRAINT_ADJUSTMENT_FLIP_X,
|
||||
&info->current, &intersection);
|
||||
}
|
||||
if (info->current.height != intersection.height &&
|
||||
- (current_rule->constraint_adjustment &
|
||||
+ (current_rule.constraint_adjustment &
|
||||
META_PLACEMENT_CONSTRAINT_ADJUSTMENT_FLIP_Y))
|
||||
{
|
||||
- try_flip_window_position (window, info, current_rule,
|
||||
+ try_flip_window_position (window, info, ¤t_rule,
|
||||
META_PLACEMENT_CONSTRAINT_ADJUSTMENT_FLIP_Y,
|
||||
&info->current, &intersection);
|
||||
}
|
||||
@@ -852,7 +851,7 @@ constrain_custom_rule (MetaWindow *window,
|
||||
if (constraint_satisfied)
|
||||
goto done;
|
||||
|
||||
- if (current_rule->constraint_adjustment &
|
||||
+ if (current_rule.constraint_adjustment &
|
||||
META_PLACEMENT_CONSTRAINT_ADJUSTMENT_SLIDE_X)
|
||||
{
|
||||
if (info->current.x != intersection.x)
|
||||
@@ -860,7 +859,7 @@ constrain_custom_rule (MetaWindow *window,
|
||||
else if (info->current.width != intersection.width)
|
||||
info->current.x -= info->current.width - intersection.width;
|
||||
}
|
||||
- if (current_rule->constraint_adjustment &
|
||||
+ if (current_rule.constraint_adjustment &
|
||||
META_PLACEMENT_CONSTRAINT_ADJUSTMENT_SLIDE_Y)
|
||||
{
|
||||
if (info->current.y != intersection.y)
|
||||
@@ -878,13 +877,13 @@ constrain_custom_rule (MetaWindow *window,
|
||||
if (constraint_satisfied)
|
||||
goto done;
|
||||
|
||||
- if (current_rule->constraint_adjustment &
|
||||
+ if (current_rule.constraint_adjustment &
|
||||
META_PLACEMENT_CONSTRAINT_ADJUSTMENT_RESIZE_X)
|
||||
{
|
||||
info->current.x = intersection.x;
|
||||
info->current.width = intersection.width;
|
||||
}
|
||||
- if (current_rule->constraint_adjustment &
|
||||
+ if (current_rule.constraint_adjustment &
|
||||
META_PLACEMENT_CONSTRAINT_ADJUSTMENT_RESIZE_Y)
|
||||
{
|
||||
info->current.y = intersection.y;
|
||||
--
|
||||
2.19.1
|
||||
|
||||
Reference in New Issue
Block a user