cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=770750486c84305f3aaf82df48605ee956b1281e
commit 770750486c84305f3aaf82df48605ee956b1281e Author: Cedric BAIL <[email protected]> Date: Mon Feb 11 17:39:00 2019 -0800 eo: return an Eina_Value error when a get for a property is not implemented. Reviewed-by: Marcel Hollerbach <[email protected]> Differential Revision: https://phab.enlightenment.org/D7936 --- src/lib/eo/eo.c | 12 +++++++----- src/tests/eo/suite/eo_test_reflection.c | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index efd68055dc..a5c72e0762 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -3660,16 +3660,18 @@ efl_property_reflection_set(Eo *obj_id, const char *property_name, Eina_Value va EAPI Eina_Value efl_property_reflection_get(Eo *obj_id, const char *property_name) { - EO_OBJ_POINTER(obj_id, obj); + Eina_Value r = eina_value_error_init(EINA_ERROR_NOT_IMPLEMENTED); + + EO_OBJ_POINTER_GOTO(obj_id, obj, end); const Efl_Object_Property_Reflection *reflection = _efl_class_reflection_find(obj->klass, property_name); - if (!reflection || !reflection->get) goto end; + if (reflection && reflection->get) + r = reflection->get(obj_id); - return reflection->get(obj_id); -end: + end: EO_OBJ_DONE(obj_id); - return EINA_VALUE_EMPTY; + return r; } EAPI Efl_Class_Type diff --git a/src/tests/eo/suite/eo_test_reflection.c b/src/tests/eo/suite/eo_test_reflection.c index b517f61ad5..2546cfefed 100644 --- a/src/tests/eo/suite/eo_test_reflection.c +++ b/src/tests/eo/suite/eo_test_reflection.c @@ -17,7 +17,7 @@ EFL_START_TEST(eo_test_reflection_invalid) simple_a_set(simple, 22); efl_property_reflection_set(simple, "simple_a_asdf", numb_val); - fail_if(efl_property_reflection_get(simple, "simple_a_invalid").type != EINA_VALUE_EMPTY.type); + fail_if(efl_property_reflection_get(simple, "simple_a_invalid").type != EINA_VALUE_TYPE_ERROR); } EFL_END_TEST --
