[gtk+] css: Use GArray in GtkCssComputedValues



commit fd4f701c50aa012eee2ff4473ab7a45cabbaeeb7
Author: Benjamin Otte <otte redhat com>
Date:   Wed Jan 25 18:26:56 2012 +0100

    css: Use GArray in GtkCssComputedValues
    
    GValueArray is deprecated in glib. Also, bump the required glib version
    for g_array_set_clear_func().

 configure.ac                      |    2 +-
 gtk/gtkcsscomputedvalues.c        |   19 +++++++++++--------
 gtk/gtkcsscomputedvaluesprivate.h |    2 +-
 3 files changed, 13 insertions(+), 10 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 424f455..d8da8bb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -39,7 +39,7 @@ AC_CONFIG_AUX_DIR([build-aux])
 m4_define([gtk_binary_version], [3.0.0])
 
 # required versions of other packages
-m4_define([glib_required_version], [2.31.11])
+m4_define([glib_required_version], [2.31.13])
 m4_define([pango_required_version], [1.29.0])
 m4_define([atk_required_version], [2.1.5])
 m4_define([cairo_required_version], [1.10.0])
diff --git a/gtk/gtkcsscomputedvalues.c b/gtk/gtkcsscomputedvalues.c
index 8423be7..9a3c1b0 100644
--- a/gtk/gtkcsscomputedvalues.c
+++ b/gtk/gtkcsscomputedvalues.c
@@ -35,7 +35,7 @@ gtk_css_computed_values_dispose (GObject *object)
 
   if (values->values)
     {
-      g_value_array_free (values->values);
+      g_array_free (values->values, TRUE);
       values->values = NULL;
     }
   if (values->sections)
@@ -92,9 +92,12 @@ _gtk_css_computed_values_compute_value (GtkCssComputedValues *values,
   parent = gtk_style_context_get_parent (context);
 
   if (values->values == NULL)
-    values->values = g_value_array_new (id + 1);
-  while (values->values->n_values <= id)
-    g_value_array_append (values->values, NULL);
+    {
+      values->values = g_array_new (FALSE, TRUE, sizeof (GValue));
+      g_array_set_clear_func (values->values, (GDestroyNotify) g_value_unset);
+    }
+  if (id <= values->values->len)
+   g_array_set_size (values->values, id + 1);
 
   /* http://www.w3.org/TR/css3-cascade/#cascade
    * Then, for every element, the value for each property can be found
@@ -158,14 +161,14 @@ _gtk_css_computed_values_compute_value (GtkCssComputedValues *values,
   if (specified)
     {
       _gtk_css_style_property_compute_value (prop,
-                                             g_value_array_get_nth (values->values, id),
+                                             &g_array_index (values->values, GValue, id),
                                              context,
                                              specified);
     }
   else
     {
       const GValue *parent_value;
-      GValue *value = g_value_array_get_nth (values->values, id);
+      GValue *value = &g_array_index (values->values, GValue, id);
       /* Set NULL here and do the inheritance upon lookup? */
       parent_value = _gtk_style_context_peek_property (parent,
                                                        _gtk_style_property_get_name (GTK_STYLE_PROPERTY (prop)));
@@ -193,10 +196,10 @@ _gtk_css_computed_values_get_value (GtkCssComputedValues *values,
   g_return_val_if_fail (GTK_IS_CSS_COMPUTED_VALUES (values), NULL);
 
   if (values->values == NULL ||
-      id >= values->values->n_values)
+      id >= values->values->len)
     return NULL;
 
-  v = g_value_array_get_nth (values->values, id);
+  v = &g_array_index (values->values, GValue, id);
   if (!G_IS_VALUE (v))
     return NULL;
 
diff --git a/gtk/gtkcsscomputedvaluesprivate.h b/gtk/gtkcsscomputedvaluesprivate.h
index b382b25..74a15ec 100644
--- a/gtk/gtkcsscomputedvaluesprivate.h
+++ b/gtk/gtkcsscomputedvaluesprivate.h
@@ -42,7 +42,7 @@ struct _GtkCssComputedValues
 {
   GObject parent;
 
-  GValueArray           *values;
+  GArray                *values;
   GPtrArray             *sections;
 };
 



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