efl/src/tests/efl_mono
Lauro Moura 9603cc07eb efl-mono: Fix call of virtual methods after new API
Summary:
After the new API, the virtual wrapper classes (*NativeInherit) just
declared the wrappers for the current class. But as they didn't have any
inheritance information, reimplementing methods from a parent Eo class
wouldn't work. (e.g. Efl.Ui.Button reimplementing Efl.Object
FinalizeAdd).

This commit changes these NativeInherit classes to mimic the inheritance
chain of their regular/abstract counterparts, reusing the virtual
wrapper implementations.

In order to access the correct Eo class created, the methods on it were
changed from static to instance methods. The instance will be held as a
class member of the regular/abstract API class to keep the delegates
alive and allow getting C Function pointers from them.

The class_initializer method was also split in two. The method
collecting the wrapper delegates was extracted in order to call the
parent ones.

Also avoid exception in cached strings queries as TryGetValue requires
non-null keys.

Test Plan: Run test suite.

Reviewers: vitor.sousa, felipealmeida

Reviewed By: vitor.sousa

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7460
2018-12-14 20:47:46 -02:00
..
.gitignore efl_mono: Added test files for the C# bindings. 2017-12-04 15:47:50 -03:00
BasicDirection.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Eina.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Eldbus.cs efl_mono: Fix eldbus warnings and typo. 2018-05-17 16:56:18 -03:00
Eo.cs efl-mono: Fix call of virtual methods after new API 2018-12-14 20:47:46 -02:00
EoPromises.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Errors.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Evas.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Events.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
FunctionPointerMarshalling.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
FunctionPointers.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Main.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Parts.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Promises.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Strbuf.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Strings.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
Structs.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
TestUtils.cs efl_mono: Added test files for the C# bindings. 2017-12-04 15:47:50 -03:00
Value.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
ValueEolian.cs csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
dummy_another_iface.eo csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
dummy_child.eo csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
dummy_numberwrapper.eo csharp: Change to new class API. 2018-11-29 21:29:48 -02:00
dummy_test_iface.eo eolian_mono: Add support for C# style properties 2018-12-14 18:30:59 -02:00
dummy_test_object.eo eolian_mono: Add support for C# style properties 2018-12-14 18:30:59 -02:00
libefl_mono_native_test.c efl-mono: Fix call of virtual methods after new API 2018-12-14 20:47:46 -02:00
meson.build meson: use eolian_gen with -S 2018-12-03 19:00:26 +01:00
mono_test_driver.sh efl_mono: fix test and example compilation on Windows 2017-12-15 22:26:30 -02:00