cedric pushed a commit to branch master.

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

commit eaeb96cc3d11b6f107aef822ef6f0fbae5ceaa03
Author: Cedric BAIL <cedric.b...@free.fr>
Date:   Fri Jan 24 10:59:01 2020 -0800

    ecore: refactor unpacking/packing code used in conjonction with 
eina_future_all*.
    
    Reviewed-by: Marcel Hollerbach <m...@marcel-hollerbach.de>
    Differential Revision: https://phab.enlightenment.org/D11184
---
 src/lib/ecore/ecore_internal.h   | 33 +++++++++++++++++++++++++++++++++
 src/lib/ecore/efl_filter_model.c | 35 +----------------------------------
 2 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/src/lib/ecore/ecore_internal.h b/src/lib/ecore/ecore_internal.h
index 32a9472188..9f6e55eb24 100644
--- a/src/lib/ecore/ecore_internal.h
+++ b/src/lib/ecore/ecore_internal.h
@@ -129,6 +129,39 @@ _efl_composite_lookup(const Efl_Class *self, Eo *parent, 
Efl_Model *view, unsign
    EFL_COMPOSITE_REMEMBER_RETURN(remember, view);
 }
 
+/* Result from eina_future_all_* is an EINA_VALUE_TYPE_ARRAY that contain 
Eina_Value of
+   Eo Model. It is expected that children slice get return an 
EINA_VALUE_TYPE_ARRAY that
+   contain Eo Model directly.
+*/
+static inline Eina_Value
+_efl_future_all_repack(Eo *o EINA_UNUSED, void *data EINA_UNUSED, const 
Eina_Value v)
+{
+   unsigned int i, len;
+   Eina_Value created = EINA_VALUE_EMPTY;
+   Eina_Value r = EINA_VALUE_EMPTY;
+
+   eina_value_array_setup(&r, EINA_VALUE_TYPE_OBJECT, 4);
+
+   EINA_VALUE_ARRAY_FOREACH(&v, len, i, created)
+     {
+        Eo *target = NULL;
+
+        if (eina_value_type_get(&created) != EINA_VALUE_TYPE_OBJECT)
+          goto on_error;
+
+        target = eina_value_object_get(&created);
+        if (!target) goto on_error;
+
+        eina_value_array_append(&r, target);
+     }
+
+   return r;
+
+ on_error:
+   eina_value_flush(&r);
+   return eina_value_error_init(EFL_MODEL_ERROR_UNKNOWN);
+}
+
 #undef EAPI
 #define EAPI
 
diff --git a/src/lib/ecore/efl_filter_model.c b/src/lib/ecore/efl_filter_model.c
index cc18dca89b..4ef3316947 100644
--- a/src/lib/ecore/efl_filter_model.c
+++ b/src/lib/ecore/efl_filter_model.c
@@ -314,39 +314,6 @@ _filter_remove_array(Eo *o EINA_UNUSED, void *data, const 
Eina_Value v)
    return eina_value_object_init(target);
 }
 
-/* Result from eina_future_all_array is an EINA_VALUE_TYPE_ARRAY that contain 
Eina_Value of
-   Eo Model. It is expected that children slice get return an 
EINA_VALUE_TYPE_ARRAY that
-   contain Eo Model directly.
-*/
-static Eina_Value
-_filter_cleanup_array(Eo *o EINA_UNUSED, void *data EINA_UNUSED, const 
Eina_Value v)
-{
-   unsigned int i, len;
-   Eina_Value created = EINA_VALUE_EMPTY;
-   Eina_Value r = EINA_VALUE_EMPTY;
-
-   eina_value_array_setup(&r, EINA_VALUE_TYPE_OBJECT, 4);
-
-   EINA_VALUE_ARRAY_FOREACH(&v, len, i, created)
-     {
-        Eo *target = NULL;
-
-        if (eina_value_type_get(&created) != EINA_VALUE_TYPE_OBJECT)
-          goto on_error;
-
-        target = eina_value_object_get(&created);
-        if (!target) goto on_error;
-
-        eina_value_array_append(&r, target);
-     }
-
-   return r;
-
- on_error:
-   eina_value_flush(&r);
-   return eina_value_error_init(EFL_MODEL_ERROR_UNKNOWN);
-}
-
 static Eina_Future *
 _efl_filter_model_efl_model_children_slice_get(Eo *obj, Efl_Filter_Model_Data 
*pd,
                                                unsigned int start, unsigned 
int count)
@@ -389,7 +356,7 @@ _efl_filter_model_efl_model_children_slice_get(Eo *obj, 
Efl_Filter_Model_Data *p
      }
    r[i] = EINA_FUTURE_SENTINEL;
 
-   f = efl_future_then(obj, eina_future_all_array(r), .success = 
_filter_cleanup_array);
+   f = efl_future_then(obj, eina_future_all_array(r), .success = 
_efl_future_all_repack);
    free(r);
    free(mapping);
 

-- 


Reply via email to