方法

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

返回值

类型: gboolean

TRUE 表示 key 的现有值已被 newval 替换,否则为 FALSE