efl/src/bin/eolian_mono/eolian/mono
Vitor Sousa 1c22a3d819 efl-csharp: fix resource deallocation causing errors everywhere
Summary:
This commit mainly fixes errors caused by deallocating resources in the garbage
collector thread. Using `ecore_main_loop_thread_safe_call_async` to queue
resource deallocation in the main thread seems to solve it.

Also, some `efl_ref` calls are added in places they were missing, mainly
objects that unref in the destructor thus taking ownership if efl_ref is not
called.

Also fix improper resource deallocation in tests that were causing it to crash,
enabling it to call Efl.All.Shutdown again. This allocation and the deallocation
process was moved from the Eo class constructor to static class methods that are
called in the test 'set up' and 'tear down' methods.

Queuing resource deallocation in the main thread make it mandatory that tests
call `Efl.App.AppMain.Iterate()` if they want to check proper resource
deallocation (like TestFunctionPointers.set_callback_inherited_called_from_c).

Extras:
Remove duplicated declaration of 'eflcustomexportsmono' in meson in order to fix
some linking problems.

Remove some unused code around deallocation functions that had to be reworked.

Object allocation is now supplied with the call site information it expects
(file name and line for _efl_add_start).

Depends on D8550

Test Plan: meson test

Reviewers: felipealmeida, lauromoura, cedric, segfaultxavi

Reviewed By: lauromoura

Subscribers: segfaultxavi

Tags: #efl_language_bindings, #do_not_merge

Differential Revision: https://phab.enlightenment.org/D8431
2019-04-05 19:58:19 -03:00
..
alias_definition.hh efl_mono: remove '_' from type for C# naming convention 2019-01-14 15:36:14 +09:00
async_function_definition.hh efl-mono: Enable selecting to build @beta items 2019-01-17 21:45:49 +09:00
blacklist.hh csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
documentation.hh efl-csharp: Add back I prefix for interfaces. 2019-03-21 14:48:33 -03:00
enum_definition.hh csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
events.hh csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
function_declaration.hh efl-mono: Enable selecting to build @beta items 2019-01-17 21:45:49 +09:00
function_definition.hh csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
function_helpers.hh efl-mono: Only raise exception for managed errors. 2019-01-15 17:51:20 +09:00
function_pointer.hh efl-csharp: fix resource deallocation causing errors everywhere 2019-04-05 19:58:19 -03:00
function_registration.hh eolian_mono: apply indentation of if scope 2019-03-20 11:38:25 +09:00
generation_contexts.hh eolian_csharp: add indentation context 2019-03-26 16:42:36 -03:00
helpers.hh eolian_csharp: add indentation context 2019-03-26 16:42:36 -03:00
klass.hh efl-csharp: fix resource deallocation causing errors everywhere 2019-04-05 19:58:19 -03:00
logging.hh efl_mono: More uniformization of the handling of names 2018-05-03 18:04:41 -03:00
marshall_annotation.hh efl-mono: Add support for dotnet core 2019-03-01 23:58:56 -03:00
marshall_type.hh efl-mono: Add support for dotnet core 2019-03-01 23:58:56 -03:00
marshall_type_impl.hh eolian_csharp: hide struct native representation inside the managed struct 2019-03-26 16:43:25 -03:00
name_helpers.hh eolian_csharp: add indentation context 2019-03-26 16:42:36 -03:00
parameter.hh eolian_csharp: hide struct native representation inside the managed struct 2019-03-26 16:43:25 -03:00
part_definition.hh csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
struct_definition.hh csharp: Make classes abstract and rework casting 2019-04-05 19:56:42 -03:00
struct_fields.hh efl_mono: Move event generators to its own header. 2018-04-26 10:55:18 -03:00
type.hh eolian-mono: Provide constructor parameters based on the constructors 2019-02-01 14:03:02 -05:00
type_impl.hh efl-csharp: Remove spaces from type strings in generator. 2019-03-26 14:48:12 -03:00
using_decl.hh csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
utils.hh csharp: Fix event names with underscore. 2019-03-11 19:28:02 -03:00
variable_definition.hh eolian_csharp: add indentation context 2019-03-26 16:42:36 -03:00