gobject: Add prefixes to variables in G_VALUE_COLLECT*() macros

This makes them a bit more unique (and, crucially, in the g_* namespace)
to avoid shadowing collisions with calling code.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

https://gitlab.gnome.org/GNOME/glib/issues/258
This commit is contained in:
Philip Withnall 2018-06-20 15:38:37 +01:00
parent 0b9cdf07f7
commit 877f20d0d8

View File

@ -87,43 +87,43 @@ union _GTypeCValue
*/
#define G_VALUE_COLLECT_INIT(value, _value_type, var_args, flags, __error) \
G_STMT_START { \
GValue *_val = (value); \
guint _flags = (flags); \
GTypeValueTable *_vtab = g_type_value_table_peek (_value_type); \
const gchar *_collect_format = _vtab->collect_format; \
GTypeCValue _cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \
guint _n_values = 0; \
GValue *g_vci_val = (value); \
guint g_vci_flags = (flags); \
GTypeValueTable *g_vci_vtab = g_type_value_table_peek (_value_type); \
const gchar *g_vci_collect_format = g_vci_vtab->collect_format; \
GTypeCValue g_vci_cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \
guint g_vci_n_values = 0; \
\
_val->g_type = _value_type; /* value_meminit() from gvalue.c */ \
while (*_collect_format) \
g_vci_val->g_type = _value_type; /* value_meminit() from gvalue.c */ \
while (*g_vci_collect_format) \
{ \
GTypeCValue *_cvalue = _cvalues + _n_values++; \
GTypeCValue *g_vci_cvalue = g_vci_cvalues + g_vci_n_values++; \
\
switch (*_collect_format++) \
switch (*g_vci_collect_format++) \
{ \
case G_VALUE_COLLECT_INT: \
_cvalue->v_int = va_arg ((var_args), gint); \
g_vci_cvalue->v_int = va_arg ((var_args), gint); \
break; \
case G_VALUE_COLLECT_LONG: \
_cvalue->v_long = va_arg ((var_args), glong); \
g_vci_cvalue->v_long = va_arg ((var_args), glong); \
break; \
case G_VALUE_COLLECT_INT64: \
_cvalue->v_int64 = va_arg ((var_args), gint64); \
g_vci_cvalue->v_int64 = va_arg ((var_args), gint64); \
break; \
case G_VALUE_COLLECT_DOUBLE: \
_cvalue->v_double = va_arg ((var_args), gdouble); \
g_vci_cvalue->v_double = va_arg ((var_args), gdouble); \
break; \
case G_VALUE_COLLECT_POINTER: \
_cvalue->v_pointer = va_arg ((var_args), gpointer); \
g_vci_cvalue->v_pointer = va_arg ((var_args), gpointer); \
break; \
default: \
g_assert_not_reached (); \
} \
} \
*(__error) = _vtab->collect_value (_val, \
_n_values, \
_cvalues, \
_flags); \
*(__error) = g_vci_vtab->collect_value (g_vci_val, \
g_vci_n_values, \
g_vci_cvalues, \
g_vci_flags); \
} G_STMT_END
/**
@ -145,15 +145,15 @@ G_STMT_START { \
* #GValue. That variant is faster than #G_VALUE_COLLECT.
*/
#define G_VALUE_COLLECT(value, var_args, flags, __error) G_STMT_START { \
GValue *_value = (value); \
GType _value_type = G_VALUE_TYPE (_value); \
GTypeValueTable *_vtable = g_type_value_table_peek (_value_type); \
GValue *g_vc_value = (value); \
GType g_vc_value_type = G_VALUE_TYPE (g_vc_value); \
GTypeValueTable *g_vc_vtable = g_type_value_table_peek (g_vc_value_type); \
\
if (_vtable->value_free) \
_vtable->value_free (_value); \
memset (_value->data, 0, sizeof (_value->data)); \
if (g_vc_vtable->value_free) \
g_vc_vtable->value_free (g_vc_value); \
memset (g_vc_value->data, 0, sizeof (g_vc_value->data)); \
\
G_VALUE_COLLECT_INIT(value, _value_type, var_args, flags, __error); \
G_VALUE_COLLECT_INIT(value, g_vc_value_type, var_args, flags, __error); \
} G_STMT_END
/**
@ -165,12 +165,12 @@ G_STMT_START { \
*/
#define G_VALUE_COLLECT_SKIP(_value_type, var_args) \
G_STMT_START { \
GTypeValueTable *_vtable = g_type_value_table_peek (_value_type); \
const gchar *_collect_format = _vtable->collect_format; \
GTypeValueTable *g_vcs_vtable = g_type_value_table_peek (_value_type); \
const gchar *g_vcs_collect_format = g_vcs_vtable->collect_format; \
\
while (*_collect_format) \
while (*g_vcs_collect_format) \
{ \
switch (*_collect_format++) \
switch (*g_vcs_collect_format++) \
{ \
case G_VALUE_COLLECT_INT: \
va_arg ((var_args), gint); \
@ -208,43 +208,43 @@ G_STMT_START { \
*/
#define G_VALUE_LCOPY(value, var_args, flags, __error) \
G_STMT_START { \
const GValue *_value = (value); \
guint _flags = (flags); \
GType _value_type = G_VALUE_TYPE (_value); \
GTypeValueTable *_vtable = g_type_value_table_peek (_value_type); \
const gchar *_lcopy_format = _vtable->lcopy_format; \
GTypeCValue _cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \
guint _n_values = 0; \
const GValue *g_vl_value = (value); \
guint g_vl_flags = (flags); \
GType g_vl_value_type = G_VALUE_TYPE (g_vl_value); \
GTypeValueTable *g_vl_vtable = g_type_value_table_peek (g_vl_value_type); \
const gchar *g_vl_lcopy_format = g_vl_vtable->lcopy_format; \
GTypeCValue g_vl_cvalues[G_VALUE_COLLECT_FORMAT_MAX_LENGTH] = { { 0, }, }; \
guint g_vl_n_values = 0; \
\
while (*_lcopy_format) \
while (*g_vl_lcopy_format) \
{ \
GTypeCValue *_cvalue = _cvalues + _n_values++; \
GTypeCValue *g_vl_cvalue = g_vl_cvalues + g_vl_n_values++; \
\
switch (*_lcopy_format++) \
switch (*g_vl_lcopy_format++) \
{ \
case G_VALUE_COLLECT_INT: \
_cvalue->v_int = va_arg ((var_args), gint); \
g_vl_cvalue->v_int = va_arg ((var_args), gint); \
break; \
case G_VALUE_COLLECT_LONG: \
_cvalue->v_long = va_arg ((var_args), glong); \
g_vl_cvalue->v_long = va_arg ((var_args), glong); \
break; \
case G_VALUE_COLLECT_INT64: \
_cvalue->v_int64 = va_arg ((var_args), gint64); \
g_vl_cvalue->v_int64 = va_arg ((var_args), gint64); \
break; \
case G_VALUE_COLLECT_DOUBLE: \
_cvalue->v_double = va_arg ((var_args), gdouble); \
g_vl_cvalue->v_double = va_arg ((var_args), gdouble); \
break; \
case G_VALUE_COLLECT_POINTER: \
_cvalue->v_pointer = va_arg ((var_args), gpointer); \
g_vl_cvalue->v_pointer = va_arg ((var_args), gpointer); \
break; \
default: \
g_assert_not_reached (); \
} \
} \
*(__error) = _vtable->lcopy_value (_value, \
_n_values, \
_cvalues, \
_flags); \
*(__error) = g_vl_vtable->lcopy_value (g_vl_value, \
g_vl_n_values, \
g_vl_cvalues, \
g_vl_flags); \
} G_STMT_END