mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-27 14:36:16 +01:00
Add G_VALUE_INIT
The implementation of GValue is not public or documented. When allocated on the stack, initializing a GValue is usually done as documented with: GValue value = { 0, }; There is lot code around (including WebKit) that added all the missing fields, resulting in this ugly and non-obvious: GValue value = { 0, { { 0 } } }; However, this doesn't play nice with -Wmissing-field-initializers for example. Thus, G_VALUE_INIT. http://bugzilla.gnome.org/show_bug.cgi?id=654793 http://bugzilla.gnome.org/show_bug.cgi?id=577231
This commit is contained in:
parent
a9ca74efb1
commit
d2ca14c270
@ -376,6 +376,7 @@ g_variant_type_get_gtype
|
|||||||
<SECTION>
|
<SECTION>
|
||||||
<TITLE>Generic values</TITLE>
|
<TITLE>Generic values</TITLE>
|
||||||
<FILE>generic_values</FILE>
|
<FILE>generic_values</FILE>
|
||||||
|
G_VALUE_INIT
|
||||||
G_VALUE_HOLDS
|
G_VALUE_HOLDS
|
||||||
G_VALUE_TYPE
|
G_VALUE_TYPE
|
||||||
G_VALUE_TYPE_NAME
|
G_VALUE_TYPE_NAME
|
||||||
|
@ -73,9 +73,9 @@
|
|||||||
* main (int argc,
|
* main (int argc,
|
||||||
* char *argv[])
|
* char *argv[])
|
||||||
* {
|
* {
|
||||||
* /* GValues must start zero-filled */
|
* /* GValues must be initialized */
|
||||||
* GValue a = {0};
|
* GValue a = G_VALUE_INIT;
|
||||||
* GValue b = {0};
|
* GValue b = G_VALUE_INIT;
|
||||||
* const gchar *message;
|
* const gchar *message;
|
||||||
*
|
*
|
||||||
* g_type_init ();
|
* g_type_init ();
|
||||||
|
@ -161,6 +161,22 @@ void g_value_register_transform_func (GType src_type,
|
|||||||
*/
|
*/
|
||||||
#define G_VALUE_NOCOPY_CONTENTS (1 << 27)
|
#define G_VALUE_NOCOPY_CONTENTS (1 << 27)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* G_VALUE_INIT:
|
||||||
|
*
|
||||||
|
* A #GValue must be initialized before it can be used.
|
||||||
|
* This macro can be used as initializer instead of an explicit
|
||||||
|
* <literal>{ 0 }</literal> when declaring a variable,
|
||||||
|
* but it cannot be assigned to a variable.
|
||||||
|
*
|
||||||
|
* |[
|
||||||
|
* GValue value = G_VALUE_INIT;
|
||||||
|
* ]|
|
||||||
|
*
|
||||||
|
* Since: 2.30
|
||||||
|
*/
|
||||||
|
#define G_VALUE_INIT { 0, { { 0 } } }
|
||||||
|
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user