nullable transfer full params doesn't check for null before increase object reference.
Closed this issue · 0 comments
hugopl commented
Following code:
/**
* test_subject_nullable_transfer_full_param:
* @gobj: (transfer full) (nullable):
*/
void test_subject_nullable_transfer_full_param(GObject* gobj);
Generates:
def self.nullable_transfer_full_param(gobj : GObject::Object?) : Nil
# test_subject_nullable_transfer_full_param: (None)
# @gobj: (transfer full) (nullable)
# Returns: (transfer none)
# Generator::NullableArrayPlan
gobj = if gobj.nil?
Pointer(Void).null
else
gobj.to_unsafe
end
# Generator::TransferFullArgPlan
LibGObject.g_object_ref_sink(gobj)
# C call
LibTest.test_subject_nullable_transfer_full_param(gobj)
# Return value handling
end
LibGObject.g_object_ref_sink(gobj)
must be uder a if obj
, otherwise NULL is passed to g_object_ref_sink causing some warnings.