* @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,
* 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)
}
/**
+ * 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
/**
* 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.
*/
/**
* 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
/**
* 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.
*
/**
* 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.
*
}
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);