tasn pushed a commit to branch master.

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

commit 829f298589e3552a7cccc49ab3edb959d74b70ac
Author: Tom Hacohen <t...@stosb.com>
Date:   Mon Sep 5 17:51:07 2016 +0100

    Eo array callback: Fix compilation on windows.
    
    I knew Windows doesn't allow statically initialising pointers in the
    global namespace, I had no idea it also applies to functions. That's
    quite annoying.
    
    Thanks to Cedric for reporting.
---
 src/lib/eo/Eo.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index 950f540..0a91984 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -1094,10 +1094,12 @@ EAPI int efl_callbacks_cmp(const 
Efl_Callback_Array_Item *a, const Efl_Callback_
   static Efl_Callback_Array_Item *                                      \
   Name(void)                                                            \
   {                                                                     \
-     static Efl_Callback_Array_Item internal[] = { __VA_ARGS__, \
-            { 0, 0 } };         \
+     Efl_Callback_Array_Item tmp[] = { __VA_ARGS__ }; \
+     static Efl_Callback_Array_Item internal[EINA_C_ARRAY_LENGTH(tmp) + 1] = \
+       { { 0, 0 } };         \
      if (internal[0].desc == NULL)                                      \
        {                                                                \
+          memcpy(internal, tmp, sizeof(tmp)); \
           qsort(internal, EINA_C_ARRAY_LENGTH(internal) - 1, sizeof 
(internal[0]), \
                 (void*) efl_callbacks_cmp);                              \
        }                                                                \

-- 


Reply via email to