mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-09 12:25:48 +01:00
Merge branch 'param-value-default' into 'master'
Allow using an empty GValue with g_param_value_set_default() See merge request GNOME/glib!1186
This commit is contained in:
commit
1503547766
@ -29,7 +29,6 @@ check_property (const char *output,
|
|||||||
if (g_param_value_defaults (pspec, value))
|
if (g_param_value_defaults (pspec, value))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
g_value_init (&default_value, G_PARAM_SPEC_VALUE_TYPE (pspec));
|
|
||||||
g_param_value_set_default (pspec, &default_value);
|
g_param_value_set_default (pspec, &default_value);
|
||||||
|
|
||||||
v = g_strdup_value_contents (value);
|
v = g_strdup_value_contents (value);
|
||||||
|
@ -595,7 +595,8 @@ g_param_spec_get_redirect_target (GParamSpec *pspec)
|
|||||||
/**
|
/**
|
||||||
* g_param_value_set_default:
|
* g_param_value_set_default:
|
||||||
* @pspec: a valid #GParamSpec
|
* @pspec: a valid #GParamSpec
|
||||||
* @value: a #GValue of correct type for @pspec
|
* @value: a #GValue of correct type for @pspec; since 2.64, you
|
||||||
|
* can also pass an empty #GValue, initialized with %G_VALUE_INIT
|
||||||
*
|
*
|
||||||
* Sets @value to its default value as specified in @pspec.
|
* Sets @value to its default value as specified in @pspec.
|
||||||
*/
|
*/
|
||||||
@ -604,10 +605,18 @@ g_param_value_set_default (GParamSpec *pspec,
|
|||||||
GValue *value)
|
GValue *value)
|
||||||
{
|
{
|
||||||
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
|
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
|
||||||
|
|
||||||
|
if (G_VALUE_TYPE (value) == G_TYPE_INVALID)
|
||||||
|
{
|
||||||
|
g_value_init (value, G_PARAM_SPEC_VALUE_TYPE (pspec));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
g_return_if_fail (G_IS_VALUE (value));
|
g_return_if_fail (G_IS_VALUE (value));
|
||||||
g_return_if_fail (PSPEC_APPLIES_TO_VALUE (pspec, value));
|
g_return_if_fail (PSPEC_APPLIES_TO_VALUE (pspec, value));
|
||||||
|
|
||||||
g_value_reset (value);
|
g_value_reset (value);
|
||||||
|
}
|
||||||
|
|
||||||
G_PARAM_SPEC_GET_CLASS (pspec)->value_set_default (pspec, value);
|
G_PARAM_SPEC_GET_CLASS (pspec)->value_set_default (pspec, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -622,7 +631,7 @@ g_param_value_set_default (GParamSpec *pspec,
|
|||||||
*/
|
*/
|
||||||
gboolean
|
gboolean
|
||||||
g_param_value_defaults (GParamSpec *pspec,
|
g_param_value_defaults (GParamSpec *pspec,
|
||||||
GValue *value)
|
const GValue *value)
|
||||||
{
|
{
|
||||||
GValue dflt_value = G_VALUE_INIT;
|
GValue dflt_value = G_VALUE_INIT;
|
||||||
gboolean defaults;
|
gboolean defaults;
|
||||||
@ -631,7 +640,6 @@ g_param_value_defaults (GParamSpec *pspec,
|
|||||||
g_return_val_if_fail (G_IS_VALUE (value), FALSE);
|
g_return_val_if_fail (G_IS_VALUE (value), FALSE);
|
||||||
g_return_val_if_fail (PSPEC_APPLIES_TO_VALUE (pspec, value), FALSE);
|
g_return_val_if_fail (PSPEC_APPLIES_TO_VALUE (pspec, value), FALSE);
|
||||||
|
|
||||||
g_value_init (&dflt_value, G_PARAM_SPEC_VALUE_TYPE (pspec));
|
|
||||||
G_PARAM_SPEC_GET_CLASS (pspec)->value_set_default (pspec, &dflt_value);
|
G_PARAM_SPEC_GET_CLASS (pspec)->value_set_default (pspec, &dflt_value);
|
||||||
defaults = G_PARAM_SPEC_GET_CLASS (pspec)->values_cmp (pspec, value, &dflt_value) == 0;
|
defaults = G_PARAM_SPEC_GET_CLASS (pspec)->values_cmp (pspec, value, &dflt_value) == 0;
|
||||||
g_value_unset (&dflt_value);
|
g_value_unset (&dflt_value);
|
||||||
|
@ -307,7 +307,7 @@ void g_param_value_set_default (GParamSpec *pspec,
|
|||||||
GValue *value);
|
GValue *value);
|
||||||
GLIB_AVAILABLE_IN_ALL
|
GLIB_AVAILABLE_IN_ALL
|
||||||
gboolean g_param_value_defaults (GParamSpec *pspec,
|
gboolean g_param_value_defaults (GParamSpec *pspec,
|
||||||
GValue *value);
|
const GValue *value);
|
||||||
GLIB_AVAILABLE_IN_ALL
|
GLIB_AVAILABLE_IN_ALL
|
||||||
gboolean g_param_value_validate (GParamSpec *pspec,
|
gboolean g_param_value_validate (GParamSpec *pspec,
|
||||||
GValue *value);
|
GValue *value);
|
||||||
|
@ -912,11 +912,14 @@ param_value_array_validate (GParamSpec *pspec,
|
|||||||
g_param_value_set_default (element_spec, element);
|
g_param_value_set_default (element_spec, element);
|
||||||
changed++;
|
changed++;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
/* validate array value against element_spec */
|
/* validate array value against element_spec */
|
||||||
changed += g_param_value_validate (element_spec, element);
|
changed += g_param_value_validate (element_spec, element);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return changed;
|
return changed;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user