我需要对 glib 信号参数执行 g_object_unref() 吗?
Do i need to do g_object_unref() on glib signal parameters?
当我将信号连接到回调函数时,回调函数获取传递的参数。 reference counter
是在对象传递到我的回调函数之前增加还是我必须自己增加它。
我想一定有某种约定,因为 gtk
或 libgobject
.
的文档中没有提到类似的内容
通常,当对象传递给您的回调时,您不会假定它是对对象的引用。当对象是用 "transfer full" 注释的方法的 return 值时,您仅假定引用。您可以在文档中看到这些注释。
(我说 "generally" 是因为可能总是存在构建不良的库,其 API 违反了这些准则。不过,您不能对此做很多事情。)
当我将信号连接到回调函数时,回调函数获取传递的参数。 reference counter
是在对象传递到我的回调函数之前增加还是我必须自己增加它。
我想一定有某种约定,因为 gtk
或 libgobject
.
通常,当对象传递给您的回调时,您不会假定它是对对象的引用。当对象是用 "transfer full" 注释的方法的 return 值时,您仅假定引用。您可以在文档中看到这些注释。
(我说 "generally" 是因为可能总是存在构建不良的库,其 API 违反了这些准则。不过,您不能对此做很多事情。)