[gtk+] stack-allocate GtkCssLookup instances



commit 355b883f32314fb6d3bff3d9dccbae264c542df5
Author: Timm Bäder <mail baedert org>
Date:   Tue Jan 2 08:36:10 2018 +0100

    stack-allocate GtkCssLookup instances

 gtk/gtkcsslookup.c        |   16 +++++-----------
 gtk/gtkcsslookupprivate.h |    5 +++--
 gtk/gtkcssstaticstyle.c   |   10 +++++-----
 3 files changed, 13 insertions(+), 18 deletions(-)
---
diff --git a/gtk/gtkcsslookup.c b/gtk/gtkcsslookup.c
index 3a4c02d..cc1df1d 100644
--- a/gtk/gtkcsslookup.c
+++ b/gtk/gtkcsslookup.c
@@ -24,12 +24,11 @@
 #include "gtkprivatetypebuiltins.h"
 #include "gtkprivate.h"
 
-GtkCssLookup *
-_gtk_css_lookup_new (const GtkBitmask *relevant)
+void
+_gtk_css_lookup_init (GtkCssLookup     *lookup,
+                      const GtkBitmask *relevant)
 {
-  GtkCssLookup *lookup;
-
-  lookup = g_malloc0 (sizeof (GtkCssLookup));
+  memset (lookup, 0, sizeof (*lookup));
 
   if (relevant)
     {
@@ -40,17 +39,12 @@ _gtk_css_lookup_new (const GtkBitmask *relevant)
       lookup->missing = _gtk_bitmask_new ();
       lookup->missing = _gtk_bitmask_invert_range (lookup->missing, 0, GTK_CSS_PROPERTY_N_PROPERTIES);
     }
-
-  return lookup;
 }
 
 void
-_gtk_css_lookup_free (GtkCssLookup *lookup)
+_gtk_css_lookup_destroy (GtkCssLookup *lookup)
 {
-  gtk_internal_return_if_fail (lookup != NULL);
-
   _gtk_bitmask_free (lookup->missing);
-  g_free (lookup);
 }
 
 gboolean
diff --git a/gtk/gtkcsslookupprivate.h b/gtk/gtkcsslookupprivate.h
index 8aaa913..ca4094d 100644
--- a/gtk/gtkcsslookupprivate.h
+++ b/gtk/gtkcsslookupprivate.h
@@ -38,8 +38,9 @@ struct _GtkCssLookup {
   GtkCssLookupValue  values[GTK_CSS_PROPERTY_N_PROPERTIES];
 };
 
-GtkCssLookup *          _gtk_css_lookup_new                     (const GtkBitmask           *relevant);
-void                    _gtk_css_lookup_free                    (GtkCssLookup               *lookup);
+void                    _gtk_css_lookup_init                    (GtkCssLookup               *lookup,
+                                                                 const GtkBitmask           *relevant);
+void                    _gtk_css_lookup_destroy                 (GtkCssLookup               *lookup);
 
 static inline const GtkBitmask *_gtk_css_lookup_get_missing     (const GtkCssLookup         *lookup);
 gboolean                _gtk_css_lookup_is_missing              (const GtkCssLookup         *lookup,
diff --git a/gtk/gtkcssstaticstyle.c b/gtk/gtkcssstaticstyle.c
index 1152399..a87b409 100644
--- a/gtk/gtkcssstaticstyle.c
+++ b/gtk/gtkcssstaticstyle.c
@@ -172,27 +172,27 @@ gtk_css_static_style_new_compute (GtkStyleProvider    *provider,
                                   GtkCssStyle         *parent)
 {
   GtkCssStaticStyle *result;
-  GtkCssLookup *lookup;
+  GtkCssLookup lookup;
   GtkCssChange change = GTK_CSS_CHANGE_ANY_SELF | GTK_CSS_CHANGE_ANY_SIBLING | GTK_CSS_CHANGE_ANY_PARENT;
 
-  lookup = _gtk_css_lookup_new (NULL);
+  _gtk_css_lookup_init (&lookup, NULL);
 
   if (matcher)
     gtk_style_provider_lookup (provider,
                                matcher,
-                               lookup,
+                               &lookup,
                                &change);
 
   result = g_object_new (GTK_TYPE_CSS_STATIC_STYLE, NULL);
 
   result->change = change;
 
-  _gtk_css_lookup_resolve (lookup,
+  _gtk_css_lookup_resolve (&lookup,
                            provider,
                            result,
                            parent);
 
-  _gtk_css_lookup_free (lookup);
+  _gtk_css_lookup_destroy (&lookup);
 
   return GTK_CSS_STYLE (result);
 }


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