Page MenuHomePhabricator

efl-mono: Add extra constructors to Eina.Value

Authored by segfaultxavi on Jan 11 2019, 5:33 AM.



new Eina.Value(0) is a special case. The 0 is silently converted
to an enum (Eina.ValueType) and therefore the call is ambiguous
with the 0 being first converted to an Eina.Value via the implicit
conversion operator (calling the Eina.Value deep copy constructor).
Adding constructors for all supported types solves the problem because
they have higher priority. Also, they avoid one deep copy of the

Includes test case to catch this problem in the future. This was discovered
in the tutorials, where new Eina.Value(0) is being used.

Test Plan

The src/efl_reference_core_event.exe example from the examples repo was
not compiling before, and now it is.
make check and make examples still work as expected.

Diff Detail

rEFL core/efl
No Linters Available
No Unit Test Coverage
Build Status
Buildable 8766
Build 7728: arc lint + arc unit
segfaultxavi created this revision.Jan 11 2019, 5:33 AM
segfaultxavi requested review of this revision.Jan 11 2019, 5:33 AM
lauromoura accepted this revision.Jan 11 2019, 5:50 AM
This revision is now accepted and ready to land.Jan 11 2019, 5:50 AM
This revision was automatically updated to reflect the committed changes.

And thanks Xavi for the code!