Blame SOURCES/0001-clutter-avoid-redundant-_clutter_paint_node_init_typ.patch

32cb41
From 4c1c3541efa37acf3a03822289a8ab8705cbbc4e Mon Sep 17 00:00:00 2001
32cb41
From: Christian Hergert <chergert@redhat.com>
32cb41
Date: Sun, 23 Feb 2020 17:27:08 -0800
32cb41
Subject: [PATCH 1/3] clutter: avoid redundant _clutter_paint_node_init_types()
32cb41
32cb41
This only needs to be initialized once but is in the hot path of creating
32cb41
new paint nodes (for which we create many). Instead, do this as part of
32cb41
the clutter_init() workflow to keep it out of the hot path.
32cb41
32cb41
https://gitlab.gnome.org/GNOME/mutter/merge_requests/1087
32cb41
---
32cb41
 clutter/clutter/clutter-main.c       | 4 ++++
32cb41
 clutter/clutter/clutter-paint-node.c | 2 --
32cb41
 2 files changed, 4 insertions(+), 2 deletions(-)
32cb41
32cb41
diff --git a/clutter/clutter/clutter-main.c b/clutter/clutter/clutter-main.c
32cb41
index 71ec0d80c..645c8bceb 100644
32cb41
--- a/clutter/clutter/clutter-main.c
32cb41
+++ b/clutter/clutter/clutter-main.c
32cb41
@@ -61,6 +61,7 @@
32cb41
 #include "clutter-main.h"
32cb41
 #include "clutter-master-clock.h"
32cb41
 #include "clutter-mutter.h"
32cb41
+#include "clutter-paint-node-private.h"
32cb41
 #include "clutter-private.h"
32cb41
 #include "clutter-settings-private.h"
32cb41
 #include "clutter-stage-manager.h"
32cb41
@@ -1366,6 +1367,9 @@ clutter_init_real (GError **error)
32cb41
   if (clutter_enable_accessibility)
32cb41
     cally_accessibility_init ();
32cb41
 
32cb41
+  /* Initialize types required for paint nodes */
32cb41
+  _clutter_paint_node_init_types ();
32cb41
+
32cb41
   return CLUTTER_INIT_SUCCESS;
32cb41
 }
32cb41
 
32cb41
diff --git a/clutter/clutter/clutter-paint-node.c b/clutter/clutter/clutter-paint-node.c
32cb41
index e731ca60a..73765a4e9 100644
32cb41
--- a/clutter/clutter/clutter-paint-node.c
32cb41
+++ b/clutter/clutter/clutter-paint-node.c
32cb41
@@ -1177,8 +1177,6 @@ _clutter_paint_node_create (GType gtype)
32cb41
 {
32cb41
   g_return_val_if_fail (g_type_is_a (gtype, CLUTTER_TYPE_PAINT_NODE), NULL);
32cb41
 
32cb41
-  _clutter_paint_node_init_types ();
32cb41
-
32cb41
   return (gpointer) g_type_create_instance (gtype);
32cb41
 }
32cb41
 
32cb41
-- 
32cb41
2.26.0
32cb41