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
 

-- 


Reply via email to