cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b8cf656bd38c19b48814788afebdd3432180e4fa

commit b8cf656bd38c19b48814788afebdd3432180e4fa
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Mon May 7 09:46:42 2018 -0700

    eina: actually it make more sense to do the check for EINA_VALUE_EMPTY 
inside eina_value_type_get.
---
 src/lib/eina/eina_inline_value.x | 7 ++++++-
 src/lib/eina/eina_promise.c      | 3 +--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/lib/eina/eina_inline_value.x b/src/lib/eina/eina_inline_value.x
index 93ccfbbed3..0bc268af52 100644
--- a/src/lib/eina/eina_inline_value.x
+++ b/src/lib/eina/eina_inline_value.x
@@ -538,7 +538,12 @@ eina_value_pget(const Eina_Value *value, void *ptr)
 static inline const Eina_Value_Type *
 eina_value_type_get(const Eina_Value *value)
 {
-   EINA_VALUE_TYPE_CHECK_RETURN_VAL(value, NULL);
+   const Eina_Value empty = EINA_VALUE_EMPTY;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(value, NULL);
+   // Trigger warning if the type is NULL, but the value is != 
EINA_VALUE_EMTPY.
+   if (memcmp(value, &empty, sizeof (Eina_Value)))
+     EINA_SAFETY_ON_FALSE_RETURN_VAL(eina_value_type_check(value->type), NULL);
    return value->type;
 }
 
diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c
index a9fdf923cd..516ef5c6b2 100644
--- a/src/lib/eina/eina_promise.c
+++ b/src/lib/eina/eina_promise.c
@@ -644,8 +644,7 @@ _future_proxy(void *data, const Eina_Value v,
 {
    Eina_Value copy = EINA_VALUE_EMPTY;
 
-   if (memcmp(&copy, &v, sizeof (Eina_Value)) &&
-       eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR) return v;
+   if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR) return v;
    //We're in a safe context (from mainloop), so we can avoid scheduling a new 
dispatch
    if (!v.type || !memcmp(&v, &copy, sizeof (Eina_Value))) copy = v;
    else if (!eina_value_copy(&v, &copy))

-- 


Reply via email to