From d327cedb833d5826de43f3ae58601ab1ab1a266e Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Sun, 23 Feb 2020 17:27:08 -0800 Subject: [PATCH] clutter: avoid redundant _clutter_paint_node_init_types() This only needs to be initialized once but is in the hot path of creating new paint nodes (for which we create many). Instead, do this as part of the clutter_init() workflow to keep it out of the hot path. https://gitlab.gnome.org/GNOME/mutter/merge_requests/1087 --- clutter/clutter/clutter-main.c | 4 ++++ clutter/clutter/clutter-paint-node.c | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/clutter/clutter/clutter-main.c b/clutter/clutter/clutter-main.c index f306cd4a6..0114244b8 100644 --- a/clutter/clutter/clutter-main.c +++ b/clutter/clutter/clutter-main.c @@ -63,6 +63,7 @@ #include "clutter-main.h" #include "clutter-master-clock.h" #include "clutter-mutter.h" +#include "clutter-paint-node-private.h" #include "clutter-private.h" #include "clutter-settings-private.h" #include "clutter-stage-manager.h" @@ -970,6 +971,9 @@ clutter_init_real (GError **error) if (clutter_enable_accessibility) cally_accessibility_init (); + /* Initialize types required for paint nodes */ + _clutter_paint_node_init_types (); + return CLUTTER_INIT_SUCCESS; } diff --git a/clutter/clutter/clutter-paint-node.c b/clutter/clutter/clutter-paint-node.c index 708ebf195..138a64652 100644 --- a/clutter/clutter/clutter-paint-node.c +++ b/clutter/clutter/clutter-paint-node.c @@ -1194,8 +1194,6 @@ _clutter_paint_node_create (GType gtype) { g_return_val_if_fail (g_type_is_a (gtype, CLUTTER_TYPE_PAINT_NODE), NULL); - _clutter_paint_node_init_types (); - return (gpointer) g_type_create_instance (gtype); }