efl/src/lib/edje
Tom Hacohen a6a2338962 Revert "Eo: Remove eo_del() and make eo_unref() the replacement."
This reverts commit 546ff7bbba.

It seems that eo_del() is useful and removing it was creating bugs.
The issue is that the way we defined parents in eo, both the parent and
the programmer share a reference to the object. When we eo_unref() that
reference as the programmer, eo has no way to know it's this specific
reference we are freeing, and not a general one, so in some
circumstances, for example:
eo_ref(child);
eo_unref(child); // trying to delete here
eo_unref(container); // container is deleted here
eo_unref(child); // child already has 0 refs before this point.

We would have an issue with references and objects being freed too soon
and in general, issue with the references.

Having eo_del() solves that, because this one explicitly unparents if
there is a parent, meaning the reference ownership is explicitly taken
by the programmer.

eo_del() is essentially a convenience function around "check if has
parent, and if so unparent, otherwise, unref". Which should be used when
you want to delete an object although it has a parent, and is equivalent
to eo_unref() when it doesn't have one.
2016-06-01 13:33:21 +01:00
..
Edje.h edje: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +02:00
Edje_Common.h edje: convert Edje_Text_Class, Edje_Size_Class data type to public 2016-01-12 14:02:19 -08:00
Edje_Edit.h Edje_Edit: more API for proxy fields like source_clip and source_visible 2016-05-12 19:31:49 +03:00
Edje_Eo.h Efl interface file: Start using the new interface. 2014-08-21 11:02:11 +01:00
Edje_Legacy.h Edje: Replace edje part_table with a fake eo proxy 2016-04-26 11:36:23 +09:00
Makefile.am edje: make it possible to build the library alone. 2016-04-14 16:07:32 -07:00
edje_box_layout.c evas: make no longer supported object, legacy only. 2016-03-21 16:31:26 -07:00
edje_cache.c edje: add new part types to edje_cache 2016-02-05 08:19:42 +01:00
edje_calc.c edje: fix condition scope 2016-05-18 22:29:59 +02:00
edje_callbacks.c eo: for consistency use object like all our API. 2016-05-18 08:18:04 -07:00
edje_containers.c Efl: Remove part name in Efl.Container (use Efl.Part) 2016-05-26 19:55:50 +09:00
edje_convert.c edje: add text_classes syntax to EDC 2015-12-24 15:58:34 +09:00
edje_convert.h edje: add text_classes syntax to EDC 2015-12-24 15:58:34 +09:00
edje_data.c edje: attaching viewport of camera to the image part 2016-05-17 05:21:45 -07:00
edje_edit.c Revert "Eo: Remove eo_del() and make eo_unref() the replacement." 2016-06-01 13:33:21 +01:00
edje_edit.eo Add legacy_prefix now that the default has changed to null. 2016-05-12 17:27:35 +01:00
edje_embryo.c edje_embryo: add box attributes support to set_state_val() 2016-03-04 16:09:51 -08:00
edje_entry.c ecore_imf: Add multiline hint in input hint 2016-05-18 15:21:12 +09:00
edje_external.c edje: reformat all C files 2015-06-08 14:43:00 -04:00
edje_load.c Revert "Eo: Remove eo_del() and make eo_unref() the replacement." 2016-06-01 13:33:21 +01:00
edje_lua.c edje: reformat all C files 2015-06-08 14:43:00 -04:00
edje_lua2.c edje: reformat all C files 2015-06-08 14:43:00 -04:00
edje_lua_script_only.c edje: reformat all C files 2015-06-08 14:43:00 -04:00
edje_main.c Edje: cache proxy objects (1 slot only) 2016-05-24 18:50:58 +09:00
edje_match.c edje: reformat all C files 2015-06-08 14:43:00 -04:00
edje_message_queue.c edje: reformat all C files 2015-06-08 14:43:00 -04:00
edje_misc.c efl: merge edje. 2013-01-04 02:08:14 +00:00
edje_module.c edje: reformat all C files 2015-06-08 14:43:00 -04:00
edje_multisense.c Revert "Eo: Remove eo_del() and make eo_unref() the replacement." 2016-06-01 13:33:21 +01:00
edje_object.eo eolian: utilize the new builtin string type across eo files 2016-05-31 16:05:43 +01:00
edje_private.h Efl: Remove part name in Efl.Container (use Efl.Part) 2016-05-26 19:55:50 +09:00
edje_program.c efl: change name of animator,tick event in C. 2016-05-18 02:20:13 -07:00
edje_signal.c edje - delete obj - null out freed items in structs/data 2016-04-13 20:02:12 +09:00
edje_smart.c Revert "Eo: Remove eo_del() and make eo_unref() the replacement." 2016-06-01 13:33:21 +01:00
edje_text.c edje_text: don't apply ellipsis if fit is setted 2016-04-28 09:45:01 +03:00
edje_textblock_styles.c edje: do not check against eet if strings where never allocated. 2016-05-06 16:47:56 -07:00
edje_types.eot efl: fix doc references across the tree to validate right 2015-07-08 15:13:26 +01:00
edje_util.c Efl: Remove part name in Efl.Container (use Efl.Part) 2016-05-26 19:55:50 +09:00
edje_var.c edje: reformat all C files 2015-06-08 14:43:00 -04:00
efl_canvas_layout_internal.eo eolian: utilize the new builtin string type across eo files 2016-05-31 16:05:43 +01:00
efl_canvas_layout_internal_box.eo Efl: Remove part name in Efl.Container (use Efl.Part) 2016-05-26 19:55:50 +09:00
efl_canvas_layout_internal_swallow.eo Efl: Remove part name in Efl.Container (use Efl.Part) 2016-05-26 19:55:50 +09:00
efl_canvas_layout_internal_table.eo Efl: Remove part name in Efl.Container (use Efl.Part) 2016-05-26 19:55:50 +09:00