[mutter/wip/chergert/less-type-init] clutter: avoid redundant _clutter_paint_node_init_types()



commit 757875118679d1a1b8a084eab7a0be3c9c45bcb5
Author: Christian Hergert <chergert redhat com>
Date:   Sun Feb 23 17:27:08 2020 -0800

    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.

 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);
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]