函数宏
GObjectset_object
自:2.44
声明 [src]
#define g_set_object (
object_ptr,
new_object
)
描述 [src]
更新一个 GObject
指针以引用 new_object
。
它会增加 new_object
(如果非 NULL
)的引用计数,减少当前 object_ptr
值的引用计数(如果非 NULL
),并将 new_object
赋值给 object_ptr
。赋值操作不是原子操作。
object_ptr
不能是 NULL
,但可以指向一个 NULL
值。
还包括一个允许无需指针转换即可使用此函数的宏。该函数本身是静态内联的,因此其地址可能在编译单元之间不同。
此函数的一种便捷用法是在实现属性设置器时分派使用。
void
foo_set_bar (Foo *foo,
Bar *new_bar)
{
g_return_if_fail (IS_FOO (foo));
g_return_if_fail (new_bar == NULL || IS_BAR (new_bar));
if (g_set_object (&foo->bar, new_bar))
g_object_notify (foo, "bar");
}
自:2.44
此功能不可直接供语言绑定使用。