eina: allow EINA_VALUE_EMPTY for Eina_Future as Eina_Value.
authorCedric BAIL <cedric@osg.samsung.com>
Mon, 7 May 2018 16:34:04 +0000 (09:34 -0700)
committerWonki Kim <wonki_.kim@samsung.com>
Thu, 31 May 2018 07:27:50 +0000 (16:27 +0900)
src/lib/eina/eina_promise.c

index 516ef5c..a9fdf92 100644 (file)
@@ -644,7 +644,8 @@ _future_proxy(void *data, const Eina_Value v,
 {
    Eina_Value copy = EINA_VALUE_EMPTY;
 
-   if (eina_value_type_get(&v) == EINA_VALUE_TYPE_ERROR) return v;
+   if (memcmp(&copy, &v, sizeof (Eina_Value)) &&
+       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))