函数
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-
类型:
GDatadatalist 的位置。
数据归函数的调用方所有。 key_id-
类型:
GQuark识别数据元素的
GQuark。 oldval-
类型:
gpointer要对其进行比较的旧值。
参数可以是 NULL。数据归函数的调用方所有。 newval-
类型:
gpointer用于替换它的新值。
参数可以是 NULL。数据归函数的调用方所有。 destroy-
类型:
GDestroyNotify新值的销毁通知。
参数可以是 NULL。 old_destroy-
类型:
GDestroyNotify现有值的销毁通知。
此参数将由函数设置。 参数可以是 NULL。由函数负责返回数据的归属。