方法
GObjectObjectreplace_data
自:2.34
声明 [来源]
gboolean
g_object_replace_data (
GObject* object,
const gchar* key,
gpointer oldval,
gpointer newval,
GDestroyNotify destroy,
GDestroyNotify* old_destroy
)
描述 [来源]
比较对象 object 中键 key
的用户数据与 oldval
,如果它们相同,则将 oldval
替换为 newval
。
这类似于一个典型的原子比较和交换操作,用于对象上的用户数据。
如果值已替换,则旧值(oldval
)的所有权传递给调用者,包括其注册的销毁通知(通过 old_destroy
提出)。由调用者决定根据需要释放它,这可能包括使用 old_destroy
,因为有时替换不应以正常方式销毁对象。
有关为 key
使用一个小型、有界值集的指导,请参阅 g_object_set_data()
。
自:2.34
此方法对语言绑定不可直接访问。
参数
key
-
类型:
const gchar*
字符串,命名用户数据指针。
数据由方法的调用者拥有。 该值是一个以 NUL 结尾的 UTF-8 字符串。 oldval
-
类型:
gpointer
与之一一比对的老值。
参数可以是 NULL
。数据由方法的调用者拥有。 newval
-
类型:
gpointer
新的值。
参数可以是 NULL
。数据由方法的调用者拥有。 destroy
-
类型:
GDestroyNotify
新值的消息销毁通知。
参数可以是 NULL
。 old_destroy
-
类型:
GDestroyNotify
现有值的销毁通知。
函数将设置该参数。 参数可以是 NULL
。返回的数据由实例拥有。