Allowing override of efl_del allow for messing with object life cycle which can create
problem for binding where an object was expected to be invalidated, but isn't really.
item_prepend {
[[Prepend a new item to the multibuttonentry
- See @Efl.Object.del to delete the item.]]
+ See @Efl.Object.invalidate to delete the item.]]
return: Elm.Widget.Item; [[A handle to the item added or NULL if not possible]]
params {
item_insert_before {
[[Add a new item to the multibuttonentry before the indicated object reference.
- See @Efl.Object.del to delete the item.]]
+ See @Efl.Object.invalidate to delete the item.]]
return: Elm.Widget.Item; [[A handle to the item added or NULL if not possible]]
params {
item_append {
[[Append a new item to the multibuttonentry
- See @Efl.Object.del to delete the item.]]
+ See @Efl.Object.invalidate to delete the item.]]
return: Elm.Widget.Item; [[A handle to the item added or NULL if not possible]]
params {
item_insert_after {
[[Add a new item to the multibuttonentry after the indicated object
- See @Efl.Object.del to delete the item.]]
+ See @Efl.Object.invalidate to delete the item.]]
return: Elm.Widget.Item; [[A handle to the item added or NULL if not possible]]
params {
EAPI Eo * _efl_add_internal_start(const char *file, int line, const Efl_Class *klass_id, Eo *parent, Eina_Bool ref, Eina_Bool is_fallback);
/**
+ * @brief Unrefs the object and reparents it to NULL.
+ *
+ * Because efl_del() unrefs and reparents to NULL, it doesn't really delete the
+ * object.
+ *
+ * This method accepts a const object for convenience, so all objects can be
+ * passed to it easily.
+ * @param[in] obj The object.
+ *
+ * @ingroup Efl_Object
+ */
+EAPI void efl_del(const Eo *obj);
+
+/**
* @brief Get a pointer to the data of an object for a specific class.
*
* The data reference count is not incremented. The pointer must be used only
parent: Efl.Object @nullable; [[The new parent]]
}
}
- del @const {
- [[Unrefs the object and reparents it to NULL.
-
- Because efl_del() unrefs and reparents to NULL, it doesn't really delete the object.
-
- This method accepts a const object for convenience, so all objects
- can be passed to it easily.
- ]]
- }
@property name {
[[ The name of the object.
{
}
-EOLIAN static void
-_efl_object_del(const Eo *obj, Efl_Object_Data *pd EINA_UNUSED)
+EAPI void
+efl_del(const Eo *obj)
{
+ if (!obj) return ;
if (efl_parent_get((Eo *) obj))
{
efl_parent_set((Eo *) obj, NULL);