方法

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
返回的数据由实例拥有。

返回值

类型: gboolean

TRUE 表示用 newval 替换了 quark 的现有值,否则为 FALSE