X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gobject%2Fgvaluetypes.c;h=3afb3003514b016802d71af107fbf0544f030ebe;hb=108480b7baad8d02b7b0f9729146a04ad09219de;hp=dd3fa8560170776c737b22072cbcf2161eaeab21;hpb=26548e05bbb9bc2278fabeee07f6601f39d1a4dc;p=platform%2Fupstream%2Fglib.git diff --git a/gobject/gvaluetypes.c b/gobject/gvaluetypes.c index dd3fa85..3afb300 100644 --- a/gobject/gvaluetypes.c +++ b/gobject/gvaluetypes.c @@ -636,6 +636,7 @@ _g_value_types_init (void) * @v_char: character value to be set * * Set the contents of a %G_TYPE_CHAR #GValue to @v_char. + * Deprecated: 2.32: This function's input type is broken, see g_value_set_schar() */ void g_value_set_char (GValue *value, @@ -650,9 +651,13 @@ g_value_set_char (GValue *value, * g_value_get_char: * @value: a valid #GValue of type %G_TYPE_CHAR * - * Get the contents of a %G_TYPE_CHAR #GValue. + * Do not use this function; it is broken on platforms where the %char + * type is unsigned, such as ARM and PowerPC. See g_value_get_schar(). + * + * Get the contents of a %G_TYPE_CHAR #GValue. * * Returns: character contents of @value + * Deprecated: 2.32: This function's return type is broken, see g_value_get_schar() */ gchar g_value_get_char (const GValue *value) @@ -663,6 +668,41 @@ g_value_get_char (const GValue *value) } /** + * g_value_set_schar: + * @value: a valid #GValue of type %G_TYPE_CHAR + * @v_char: signed 8 bit integer to be set + * + * Set the contents of a %G_TYPE_CHAR #GValue to @v_char. + * + * Since: 2.32 + */ +void +g_value_set_schar (GValue *value, + gint8 v_char) +{ + g_return_if_fail (G_VALUE_HOLDS_CHAR (value)); + + value->data[0].v_int = v_char; +} + +/** + * g_value_get_schar: + * @value: a valid #GValue of type %G_TYPE_CHAR + * + * Get the contents of a %G_TYPE_CHAR #GValue. + * + * Returns: signed 8 bit integer contents of @value + * Since: 2.32 + */ +gint8 +g_value_get_schar (const GValue *value) +{ + g_return_val_if_fail (G_VALUE_HOLDS_CHAR (value), 0); + + return value->data[0].v_int; +} + +/** * g_value_set_uchar: * @value: a valid #GValue of type %G_TYPE_UCHAR * @v_uchar: unsigned character value to be set @@ -985,7 +1025,7 @@ g_value_get_double (const GValue *value) /** * g_value_set_string: * @value: a valid #GValue of type %G_TYPE_STRING - * @v_string: caller-owned string to be duplicated for the #GValue + * @v_string: (allow-none): caller-owned string to be duplicated for the #GValue * * Set the contents of a %G_TYPE_STRING #GValue to @v_string. */ @@ -1010,7 +1050,7 @@ g_value_set_string (GValue *value, /** * g_value_set_static_string: * @value: a valid #GValue of type %G_TYPE_STRING - * @v_string: static string to be set + * @v_string: (allow-none): static string to be set * * Set the contents of a %G_TYPE_STRING #GValue to @v_string. * The string is assumed to be static, and is thus not duplicated @@ -1031,7 +1071,7 @@ g_value_set_static_string (GValue *value, /** * g_value_set_string_take_ownership: * @value: a valid #GValue of type %G_TYPE_STRING - * @v_string: duplicated unowned string to be set + * @v_string: (allow-none): duplicated unowned string to be set * * This is an internal function introduced mainly for C marshallers. * @@ -1047,7 +1087,7 @@ g_value_set_string_take_ownership (GValue *value, /** * g_value_take_string: * @value: a valid #GValue of type %G_TYPE_STRING - * @v_string: string to take ownership of + * @v_string: (allow-none): string to take ownership of * * Sets the contents of a %G_TYPE_STRING #GValue to @v_string. * @@ -1315,7 +1355,7 @@ g_strdup_value_contents (const GValue *value) } else if (g_value_type_transformable (G_VALUE_TYPE (value), G_TYPE_STRING)) { - GValue tmp_value = { 0, }; + GValue tmp_value = G_VALUE_INIT; gchar *s; g_value_init (&tmp_value, G_TYPE_STRING);