efl/src
Vitor Sousa 7c28762f15 efl-csharp: fix crash when events trigger after C# object `Dispose`
Summary:
Rework general event handling to check individually each event call, if the
object is not alive then the event will not be propagated.
WeakReferences (and lambdas capturing those WeakRefs) are used to ensure this.

Dispose methods in object now take care of checking if efl libraries are still
initialized and thread-safely unregister each event before performing an
efl_unref on the Eo object.

Event handling in C# is now centered around a single dictionary inside the
object: `EoEvents`.

C# event triggers now properly trigger events on C too.

Standardize C# event-triggering methods names (remove underscores).

Some diminished use of static memory due events no longer requiring static key
objects to be registered/unregistered.

Some fixing of white space generation for generated events.

Depends on D8431

Reviewers: lauromoura, felipealmeida, segfaultxavi

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8564
2019-04-05 19:59:47 -03:00
..
benchmarks eina benchmark: fix warnings on Windows 64 bits 2019-03-27 11:00:28 -04:00
bin efl-csharp: fix crash when events trigger after C# object `Dispose` 2019-04-05 19:59:47 -03:00
bindings efl-csharp: fix crash when events trigger after C# object `Dispose` 2019-04-05 19:59:47 -03:00
edje_external
examples meson: correctly use the correct dependency 2019-04-05 08:15:39 -04:00
generic
lib efl-csharp: fix crash when events trigger after C# object `Dispose` 2019-04-05 19:59:47 -03:00
modules meson: correctly use the correct dependency 2019-04-05 08:15:39 -04:00
scripts efl.loop_timer: rename all methods/properties/events 2019-03-08 16:38:46 +01:00
static_libs evas svg: replace internal vg legacy calls with interfaces. 2019-03-11 16:27:19 +09:00
tests efl-csharp: fix crash when events trigger after C# object `Dispose` 2019-04-05 19:59:47 -03:00
wayland_protocol
Makefile.am build: add autotools for elm config embedding 2019-03-27 17:23:19 -04:00
Makefile_Cxx.am
Makefile_EPhysics.am
Makefile_Ecore.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Ecore_Audio.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Ecore_Avahi.am
Makefile_Ecore_Buffer.am
Makefile_Ecore_Cocoa.am
Makefile_Ecore_Con.am dist rule: add files to EXTRA_DIST2 inconditionally 2019-04-04 10:39:44 -04:00
Makefile_Ecore_Drm.am
Makefile_Ecore_Drm2.am
Makefile_Ecore_Evas.am
Makefile_Ecore_FB.am
Makefile_Ecore_File.am
Makefile_Ecore_IMF.am
Makefile_Ecore_IMF_Evas.am
Makefile_Ecore_Input.am
Makefile_Ecore_Input_Evas.am
Makefile_Ecore_Ipc.am
Makefile_Ecore_Js.am
Makefile_Ecore_SDL.am
Makefile_Ecore_Wayland.am
Makefile_Ecore_Win32.am
Makefile_Ecore_Wl2.am
Makefile_Ecore_X.am
Makefile_Ector.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Edje.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Edje_Helper.am
Makefile_Eet.am
Makefile_Eet_Helper.am
Makefile_Eeze.am
Makefile_Efl.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Efl_Js.am
Makefile_Efl_Mono.am C# bindings: Make efl_gesture_Manager.eo available to bindings 2019-04-02 18:56:52 +02:00
Makefile_Efl_Mono_MSBuild_Gen_Helper.am
Makefile_Efreet.am
Makefile_Eina.am
Makefile_Eio.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Eldbus.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Elementary.am autotools: add another entry test file to dist 2019-04-03 15:53:24 -04:00
Makefile_Elocation.am
Makefile_Elput.am
Makefile_Elua.am
Makefile_Elua_Helper.am
Makefile_Embryo.am
Makefile_Emile.am
Makefile_Emotion.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Eo.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Eolian.am eolian: remove legacy handling API and most of generation 2019-03-08 10:12:09 -05:00
Makefile_Eolian_Cxx.am tests: eolian_cxx: make sure we add beta_class.eo to dist 2019-03-12 12:48:33 +01:00
Makefile_Eolian_Cxx_Helper.am
Makefile_Eolian_Files_Helper.am
Makefile_Eolian_Helper.am
Makefile_Eolian_Js.am
Makefile_Eolian_Js_Helper.am
Makefile_Eolian_Mono_Helper.am
Makefile_Escape.am
Makefile_Ethumb.am dist rule: add files to EXTRA_DIST2 inconditionally 2019-04-04 10:39:44 -04:00
Makefile_Ethumb_Client.am
Makefile_Evas.am autotools: add option to enable eo file install 2019-03-14 12:44:00 -04:00
Makefile_Evil.am
Makefile_Wayland_Protocols.am
Makefile_efl_wl.am