В GLib есть две функции, которые работают с подсчетом ссылок объектов GObject:
g_object_ref
увеличивает количество ссылок на объект, не обрабатывает плавающие ссылки.g_object_ref_sink
увеличивает количество ссылок на объект или просто снимает флаг плавающий с объекта, если ссылка плавающая.
Поскольку мы не знаем, является ли объект плавающим или нет, мы всегда должны использовать g_object_ref_sink
, не так ли? Если я ошибаюсь, когда мы должны использовать g_object_ref
и когда мы должны использовать g_object_ref_sink
? Должны ли мы использовать g_object_ref_sink
только для GInitiallyUnowned
объектов?