From 2a87010831db5d4c18905103e9e7d804546552bf Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Wed, 7 Mar 2012 12:54:04 +0000 Subject: [PATCH] Constify collect and lcopy strings in GTypeValueTable This avoids warnings when creating idiomatic value tables, like: static const GTypeValueTable _clutter_shader_float_value_table = { clutter_value_init_shader_float, clutter_value_free_shader_float, clutter_value_copy_shader_float, clutter_value_peek_pointer, "ip", clutter_value_collect_shader_float, "pp", clutter_value_lcopy_shader_float }; Because the strings are literals. And, really: nobody should be using allocated values for the collection and lcopy strings. https://bugzilla.gnome.org/show_bug.cgi?id=671545 --- gobject/gtype.h | 4 ++-- gobject/gvaluecollector.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gobject/gtype.h b/gobject/gtype.h index 768ad00..14206ed 100644 --- a/gobject/gtype.h +++ b/gobject/gtype.h @@ -1206,12 +1206,12 @@ struct _GTypeValueTable GValue *dest_value); /* varargs functionality (optional) */ gpointer (*value_peek_pointer) (const GValue *value); - gchar *collect_format; + const gchar *collect_format; gchar* (*collect_value) (GValue *value, guint n_collect_values, GTypeCValue *collect_values, guint collect_flags); - gchar *lcopy_format; + const gchar *lcopy_format; gchar* (*lcopy_value) (const GValue *value, guint n_collect_values, GTypeCValue *collect_values, diff --git a/gobject/gvaluecollector.h b/gobject/gvaluecollector.h index 6d5190e..05a436a 100644 --- a/gobject/gvaluecollector.h +++ b/gobject/gvaluecollector.h @@ -92,7 +92,7 @@ G_STMT_START { \ GValue *_val = (value); \ guint _flags = (flags); \ GTypeValueTable *_vtab = g_type_value_table_peek (_value_type); \ - gchar *_collect_format = _vtab->collect_format; \ + const gchar *_collect_format = _vtab->collect_format; \ GTypeCValue _cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \ guint _n_values = 0; \ \ @@ -161,7 +161,7 @@ G_STMT_START { \ #define G_VALUE_COLLECT_SKIP(_value_type, var_args) \ G_STMT_START { \ GTypeValueTable *_vtable = g_type_value_table_peek (_value_type); \ - gchar *_collect_format = _vtable->collect_format; \ + const gchar *_collect_format = _vtable->collect_format; \ \ while (*_collect_format) \ { \ @@ -207,7 +207,7 @@ G_STMT_START { \ guint _flags = (flags); \ GType _value_type = G_VALUE_TYPE (_value); \ GTypeValueTable *_vtable = g_type_value_table_peek (_value_type); \ - gchar *_lcopy_format = _vtable->lcopy_format; \ + const gchar *_lcopy_format = _vtable->lcopy_format; \ GTypeCValue _cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \ guint _n_values = 0; \ \ -- 2.7.4