{
Eina_Bool ret;
va_list p_list;
+ eobj_ref(obj);
va_start(p_list, obj);
ret = _eobj_ops_internal(obj, &p_list);
va_end(p_list);
+ eobj_unref(obj);
return ret;
}
_eobj_kls_itr_init(obj, EOBJ_NOOP);
eobj_constructor_error_unset(obj);
+
+ eobj_ref(obj);
eobj_class_constructor(obj, klass);
+
if (eobj_constructor_error_get(obj))
{
ERR("Type '%s' - One of the object constructors have failed.", klass->desc->name);
goto fail;
}
_eobj_kls_itr_end(obj, EOBJ_NOOP);
+ eobj_unref(obj);
return obj;
fail:
+ /* Unref twice, once for the ref above, and once for the basic object ref. */
+ eobj_unref(obj);
eobj_unref(obj);
return NULL;
}
{
Eobj_Callback_Description *cb;
+ eobj_ref(obj);
obj->walking_list++;
EINA_INLIST_FOREACH(obj->callbacks, cb)
}
obj->walking_list--;
_eobj_callbacks_clear(obj);
+ eobj_unref(obj);
return EINA_TRUE;
}