方法
gobjectObjectreplace_qdata
自:2.34
声明 [源]
gboolean
g_object_replace_qdata (
GObject* object,
GQuark quark,
gpointer oldval,
gpointer newval,
GDestroyNotify destroy,
GDestroyNotify* old_destroy
)
描述 [源]
将对象上键 quark
的用户数据与 oldval
进行比较,如果它们相同,则将 oldval
替换为 newval
。
这就像一个典型的原子比较和交换操作,用于对象上的用户数据。
如果之前的值被替换,则旧值的所有权(包括为其注册的销毁通知)(通过 old_destroy
传递)传递给调用者。这取决于调用者根据需要释放它,这可能包括使用 old_destroy
,因为在某些情况下,替换不应该按照正常方式销毁对象。
自:2.34
此方法不直接对语言绑定可用。
参数
quark
-
类型:
GQuark
一个
GQuark
,命名用户数据指针。 oldval
-
类型:
gpointer
要比较的旧值。
该参数可以是 NULL
。数据由方法的调用者拥有。 newval
-
类型:
gpointer
新值。
该参数可以是 NULL
。数据由方法的调用者拥有。 destroy
-
类型:
GDestroyNotify
新值的销毁通知。
该参数可以是 NULL
。 old_destroy
-
类型:
GDestroyNotify
销毁现有值的通告。
参数将由函数设置。 该参数可以是 NULL
。返回的数据由实例拥有。