2015-12-10 6 views
1

Когда я подключаю сигнал к функции обратного вызова, функции обратного вызова передают параметры. Увеличивается ли значение reference counter до того, как объекты будут переданы моей функции обратного вызова или мне придется увеличить его самостоятельно.Нужно ли делать g_object_unref() по параметрам glib-сигнала?

Я предполагаю, что для этого должно быть какое-то соглашение, потому что ничего не упомянуто в документации gtk или libgobject.

+0

Кто является владельцем объектов? Не могли бы вы добавить пример? Я никогда не добавляю ссылку по умолчанию, это зависит ... – alvaropg

ответ

3

Как правило, вы не принимаете ссылку на объект, когда он передается вашему обратному вызову. Вы принимаете только ссылку, когда объект является возвращаемым значением метода, который аннотируется с «полной передачей». Вы можете увидеть эти аннотации в документации.

(я говорю «как правило», потому что всегда может быть плохо построены библиотеки, чьи API нарушает эти правила. Вы не можете сделать много о том, что, хотя.)