函数
GLibdatalist_id_replace_data
版本:2.34
声明 [src]
gboolean
g_datalist_id_replace_data (
GData** datalist,
GQuark key_id,
gpointer oldval,
gpointer newval,
GDestroyNotify destroy,
GDestroyNotify* old_destroy
)
描述 [src]
将与 datalist
中 key_id
关联的成员与 oldval
进行比较,如果它们相同,则用 newval
替换 oldval
。
这类似于 datalist
成员的典型原子比较并交换操作。
如果替换了先前的值,则旧值 (oldval
) 的所有权将传递给调用方,包括为其注册的销毁通知 (在 old_destroy
中传递)。这取决于调用方如何释放它,其中可能包括或不包括使用 old_destroy
,因为有时替换不应以正常方式销毁对象。
自 2.34 起可用
此函数不能直接用于语言绑定。
参数
datalist
-
类型:
GData
datalist 的位置。
数据归函数的调用方所有。 key_id
-
类型:
GQuark
识别数据元素的
GQuark
。 oldval
-
类型:
gpointer
要对其进行比较的旧值。
参数可以是 NULL
。数据归函数的调用方所有。 newval
-
类型:
gpointer
用于替换它的新值。
参数可以是 NULL
。数据归函数的调用方所有。 destroy
-
类型:
GDestroyNotify
新值的销毁通知。
参数可以是 NULL
。 old_destroy
-
类型:
GDestroyNotify
现有值的销毁通知。
此参数将由函数设置。 参数可以是 NULL
。由函数负责返回数据的归属。