函数
GObjectTypeValueLCopyFunc
自:2.78
声明
gchar*
(* GTypeValueLCopyFunc) (
const GValue* value,
guint n_collect_values,
GTypeCValue* collect_values,
guint collect_flags
)
描述 [源]
该函数负责将 value
内容存储到通过可变参数列表传递给函数的参数中,并将这些参数按照 lcopy_format
收集到 collect_values
。
n_collect_values
参数等于 lcopy_format
的字符串长度,而 collect_flags
可能包含 G_VALUE_NOCOPY_CONTENTS
。
与 GTypeValueCollectFunc
相比,此函数必须始终正确支持 G_VALUE_NOCOPY_CONTENTS
。
与 GTypeValueCollectFunc
类似,该函数可能通过返回描述错误状态的全新分配的字符串来提前终止。以下是一个示例
gchar **string_p = collect_values[0].v_pointer;
g_return_val_if_fail (string_p != NULL,
g_strdup ("string location passed as NULL"));
if (collect_flags & G_VALUE_NOCOPY_CONTENTS)
*string_p = value->data[0].v_pointer;
else
*string_p = g_strdup (value->data[0].v_pointer);
以及此函数的参考计数类型示例
GObject **object_p = collect_values[0].v_pointer;
g_return_val_if_fail (object_p != NULL,
g_strdup ("object location passed as NULL"));
if (value->data[0].v_pointer == NULL)
*object_p = NULL;
else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) // always honour
*object_p = value->data[0].v_pointer;
else
*object_p = g_object_ref (value->data[0].v_pointer);
return NULL;
自可用:2.78
参数
value
-
类型:
GValue
要 lcopy 的值。
数据由函数的调用者拥有。 n_collect_values
-
类型:
guint
收集值的数量。
collect_values
-
类型: 一个
GTypeCValue
数组存储的收集位置。
数组的长度由 n_collect_values
参数指定。数据由函数的调用者拥有。 collect_flags
-
类型:
guint
可选标志。