summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2020-09-24 17:21:18 +0200
committerJonas Ã…dahl <jadahl@gmail.com>2020-10-07 19:54:57 +0200
commit1bb1440586aa756b03863ea990e8d282149bcb6b (patch)
treefad4b52874d63cfce50fc74614e9886a1688698e
parent6721d61189f710567593b2d9c736c13233cba07a (diff)
downloadmutter-1bb1440586aa756b03863ea990e8d282149bcb6b.tar.gz
clutter: Do not use stack-allocated ClutterEvents
Use ClutterEvent* and clutter_event_new() to always allocate events. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1460 (cherry picked from commit 66640446796f148f4b92bb3194a8938aa456cd53)
-rw-r--r--clutter/clutter/clutter-stage.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c
index ba2f2440a..9723ce49e 100644
--- a/clutter/clutter/clutter-stage.c
+++ b/clutter/clutter/clutter-stage.c
@@ -4238,7 +4238,7 @@ _clutter_stage_update_state (ClutterStage *stage,
ClutterStageState set_flags)
{
ClutterStageState new_state;
- ClutterEvent event;
+ ClutterEvent *event;
new_state = stage->priv->current_state;
new_state |= set_flags;
@@ -4247,16 +4247,16 @@ _clutter_stage_update_state (ClutterStage *stage,
if (new_state == stage->priv->current_state)
return FALSE;
- memset (&event, 0, sizeof (event));
- event.type = CLUTTER_STAGE_STATE;
- clutter_event_set_stage (&event, stage);
+ event = clutter_event_new (CLUTTER_STAGE_STATE);
+ clutter_event_set_stage (event, stage);
- event.stage_state.new_state = new_state;
- event.stage_state.changed_mask = new_state ^ stage->priv->current_state;
+ event->stage_state.new_state = new_state;
+ event->stage_state.changed_mask = new_state ^ stage->priv->current_state;
stage->priv->current_state = new_state;
- clutter_stage_event (stage, &event);
+ clutter_stage_event (stage, event);
+ clutter_event_free (event);
return TRUE;
}