函数宏
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
此功能不可直接供语言绑定使用。