ecore: Fix modularity
authormike_m <mike_m@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 11 Dec 2011 08:29:35 +0000 (08:29 +0000)
committermike_m <mike_m@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Sun, 11 Dec 2011 08:29:35 +0000 (08:29 +0000)
This also fixes the glib build.

Signed-off-by: Mike McCormack <mikem@ring3k.org>
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/ecore@66091 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

13 files changed:
src/lib/ecore/ecore_alloc.c
src/lib/ecore/ecore_anim.c
src/lib/ecore/ecore_events.c
src/lib/ecore/ecore_idle_enterer.c
src/lib/ecore/ecore_idle_exiter.c
src/lib/ecore/ecore_idler.c
src/lib/ecore/ecore_job.c
src/lib/ecore/ecore_main.c
src/lib/ecore/ecore_pipe.c
src/lib/ecore/ecore_poll.c
src/lib/ecore/ecore_private.h
src/lib/ecore/ecore_timer.c
src/lib/ecore/ecore_types.h [deleted file]

index ded62c2..412c383 100644 (file)
@@ -18,11 +18,13 @@ struct _Ecore_Mempool
 };
 
 #define GENERIC_ALLOC_FREE(TYPE, Type)                                  \
-  Ecore_Mempool Type##_mp = { #TYPE,  NULL, sizeof (TYPE) };              \
+  extern size_t _ecore_sizeof_##TYPE;                                   \
+  Ecore_Mempool Type##_mp = { #TYPE,  NULL, 0 };                        \
   TYPE *                                                                \
   Type##_calloc(unsigned int num)                                       \
   {                                                                     \
-     return eina_mempool_calloc(Type##_mp.mp, num * sizeof (TYPE));     \
+     return eina_mempool_calloc(Type##_mp.mp,                           \
+                                num * _ecore_sizeof_##TYPE);            \
   }                                                                     \
   void                                                                  \
   Type##_mp_free(TYPE *e)                                               \
@@ -70,6 +72,26 @@ ecore_mempool_init(void)
    const char *choice;
    unsigned int i;
 
+#define MP_SIZE_INIT(TYPE, Type) \
+   Type##_mp.size = _ecore_sizeof_##TYPE
+
+   MP_SIZE_INIT(Ecore_Animator, ecore_animator);
+   MP_SIZE_INIT(Ecore_Event_Handler, ecore_event_handler);
+   MP_SIZE_INIT(Ecore_Event_Filter, ecore_event_filter);
+   MP_SIZE_INIT(Ecore_Event, ecore_event);
+   MP_SIZE_INIT(Ecore_Idle_Exiter, ecore_idle_exiter);
+   MP_SIZE_INIT(Ecore_Idle_Enterer, ecore_idle_enterer);
+   MP_SIZE_INIT(Ecore_Idler, ecore_idler);
+   MP_SIZE_INIT(Ecore_Job, ecore_job);
+   MP_SIZE_INIT(Ecore_Timer, ecore_timer);
+   MP_SIZE_INIT(Ecore_Poller, ecore_poller);
+   MP_SIZE_INIT(Ecore_Pipe, ecore_pipe);
+   MP_SIZE_INIT(Ecore_Fd_Handler, ecore_fd_handler);
+#ifdef _WIN32
+   MP_SIZE_INIT(Ecore_Win32_Handler, ecore_win32_handler);
+#endif
+#undef MP_SIZE_INIT
+
    choice = getenv("EINA_MEMPOOL");
    if ((!choice) || (!choice[0]))
      choice = "chained_mempool";
index c9199a4..8c5d48d 100644 (file)
@@ -8,6 +8,24 @@
 #include "Ecore.h"
 #include "ecore_private.h"
 
+struct _Ecore_Animator
+{
+   EINA_INLIST;
+                     ECORE_MAGIC;
+
+   Ecore_Task_Cb     func;
+   void             *data;
+
+   double            start, run;
+   Ecore_Timeline_Cb run_func;
+   void             *run_data;
+
+   Eina_Bool         delete_me : 1;
+   Eina_Bool         suspended : 1;
+};
+
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Animator);
+
 static Eina_Bool _ecore_animator_run(void *data);
 static Eina_Bool _ecore_animator(void *data);
 
index 722f60f..0550224 100644 (file)
@@ -9,6 +9,45 @@
 
 static int inpurge = 0;
 
+struct _Ecore_Event_Handler
+{
+   EINA_INLIST;
+                          ECORE_MAGIC;
+   int                    type;
+   Ecore_Event_Handler_Cb func;
+   void                  *data;
+   int                    references;
+   Eina_Bool              delete_me : 1;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Event_Handler);
+
+struct _Ecore_Event_Filter
+{
+   EINA_INLIST;
+                   ECORE_MAGIC;
+   Ecore_Data_Cb   func_start;
+   Ecore_Filter_Cb func_filter;
+   Ecore_End_Cb    func_end;
+   void           *loop_data;
+   void           *data;
+   int             references;
+   Eina_Bool       delete_me : 1;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Event_Filter);
+
+struct _Ecore_Event
+{
+   EINA_INLIST;
+                ECORE_MAGIC;
+   int          type;
+   void        *event;
+   Ecore_End_Cb func_free;
+   void        *data;
+   int          references;
+   Eina_Bool    delete_me : 1;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Event);
+
 static int events_num = 0;
 static Ecore_Event *events = NULL;
 static Ecore_Event *event_current = NULL;
index 580f34f..8e4ae50 100644 (file)
@@ -7,6 +7,17 @@
 #include "Ecore.h"
 #include "ecore_private.h"
 
+struct _Ecore_Idle_Enterer
+{
+   EINA_INLIST;
+                 ECORE_MAGIC;
+   Ecore_Task_Cb func;
+   void         *data;
+   int           references;
+   Eina_Bool     delete_me : 1;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Idle_Enterer);
+
 static Ecore_Idle_Enterer *idle_enterers = NULL;
 static Ecore_Idle_Enterer *idle_enterer_current = NULL;
 static int idle_enterers_delete_me = 0;
index 7cb2851..4e454e2 100644 (file)
@@ -7,6 +7,17 @@
 #include "Ecore.h"
 #include "ecore_private.h"
 
+struct _Ecore_Idle_Exiter
+{
+   EINA_INLIST;
+                 ECORE_MAGIC;
+   Ecore_Task_Cb func;
+   void         *data;
+   int           references;
+   Eina_Bool     delete_me : 1;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Idle_Exiter);
+
 static Ecore_Idle_Exiter *idle_exiters = NULL;
 static Ecore_Idle_Exiter *idle_exiter_current = NULL;
 static int idle_exiters_delete_me = 0;
index 1c03e42..5114654 100644 (file)
@@ -7,6 +7,17 @@
 #include "Ecore.h"
 #include "ecore_private.h"
 
+struct _Ecore_Idler
+{
+   EINA_INLIST;
+                 ECORE_MAGIC;
+   Ecore_Task_Cb func;
+   void         *data;
+   int           references;
+   Eina_Bool     delete_me : 1;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Idler);
+
 static Ecore_Idler *idlers = NULL;
 static Ecore_Idler *idler_current = NULL;
 static int idlers_delete_me = 0;
index 02246f9..ac27c7a 100644 (file)
@@ -16,6 +16,15 @@ static void _ecore_job_event_free(void *data,
 static int ecore_event_job_type = 0;
 static Ecore_Event_Handler *_ecore_job_handler = NULL;
 
+struct _Ecore_Job
+{
+                ECORE_MAGIC;
+   Ecore_Event *event;
+   Ecore_Cb     func;
+   void        *data;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Job);
+
 void
 _ecore_job_init(void)
 {
index 23e670c..76aced6 100644 (file)
@@ -145,6 +145,44 @@ timerfd_settime(int                      fd __UNUSED__,
 
 #define NS_PER_SEC (1000.0 * 1000.0 * 1000.0)
 
+struct _Ecore_Fd_Handler
+{
+   EINA_INLIST;
+                          ECORE_MAGIC;
+   Ecore_Fd_Handler      *next_ready;
+   int                    fd;
+   Ecore_Fd_Handler_Flags flags;
+   Ecore_Fd_Cb            func;
+   void                  *data;
+   Ecore_Fd_Cb            buf_func;
+   void                  *buf_data;
+   Ecore_Fd_Prep_Cb       prep_func;
+   void                  *prep_data;
+   int                    references;
+   Eina_Bool              read_active : 1;
+   Eina_Bool              write_active : 1;
+   Eina_Bool              error_active : 1;
+   Eina_Bool              delete_me : 1;
+#if defined(USE_G_MAIN_LOOP)
+   GPollFD                gfd;
+#endif
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Fd_Handler);
+
+#ifdef _WIN32
+struct _Ecore_Win32_Handler
+{
+   EINA_INLIST;
+                         ECORE_MAGIC;
+   HANDLE                h;
+   Ecore_Win32_Handle_Cb func;
+   void                 *data;
+   int                   references;
+   Eina_Bool             delete_me : 1;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Win32_Handler);
+#endif
+
 #ifndef USE_G_MAIN_LOOP
 static int  _ecore_main_select(double timeout);
 #endif
index d771471..179455a 100644 (file)
 
 #endif /* ! _WIN32 */
 
+struct _Ecore_Pipe
+{
+                     ECORE_MAGIC;
+   int               fd_read;
+   int               fd_write;
+   Ecore_Fd_Handler *fd_handler;
+   const void       *data;
+   Ecore_Pipe_Cb     handler;
+   unsigned int      len;
+   int               handling;
+   size_t            already_read;
+   void             *passed_data;
+   int               message;
+   Eina_Bool         delete_me : 1;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Pipe);
 
 static Eina_Bool _ecore_pipe_read(void             *data,
                                   Ecore_Fd_Handler *fd_handler);
index f3c850a..b6c1b6b 100644 (file)
@@ -7,6 +7,17 @@
 #include "Ecore.h"
 #include "ecore_private.h"
 
+struct _Ecore_Poller
+{
+   EINA_INLIST;
+                 ECORE_MAGIC;
+   int           ibit;
+   unsigned char delete_me : 1;
+   Ecore_Task_Cb func;
+   void         *data;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Poller);
+
 static Ecore_Timer *timer = NULL;
 static int min_interval = -1;
 static int interval_incr = 0;
index 61cda07..50d502c 100644 (file)
@@ -86,8 +86,6 @@ typedef unsigned int Ecore_Magic;
 #define ECORE_MAGIC_CHECK(d, m)    ((d) && ((d)->__magic == (m)))
 #define ECORE_MAGIC_FAIL(d, m, fn) _ecore_magic_fail((d), (d) ? (d)->__magic : 0, (m), (fn));
 
-#include "ecore_types.h"
-
 /* undef the following, we want our version */
 #undef FREE
 #define FREE(ptr)                  free(ptr); ptr = NULL;
@@ -356,6 +354,8 @@ void ecore_mempool_shutdown(void);
 #define GENERIC_ALLOC_FREE_HEADER(TYPE, Type) \
   TYPE *Type##_calloc(unsigned int);          \
   void Type##_mp_free(TYPE *e);
+#define GENERIC_ALLOC_SIZE_DECLARE(TYPE)      \
+  size_t _ecore_sizeof_##TYPE = sizeof (TYPE);
 
 GENERIC_ALLOC_FREE_HEADER(Ecore_Animator, ecore_animator);
 GENERIC_ALLOC_FREE_HEADER(Ecore_Event_Handler, ecore_event_handler);
index 19eb466..cc19e3f 100644 (file)
@@ -8,6 +8,35 @@
 #include "Ecore.h"
 #include "ecore_private.h"
 
+#ifdef WANT_ECORE_TIMER_DUMP
+# include <string.h>
+# include <execinfo.h>
+# define ECORE_TIMER_DEBUG_BT_NUM 64
+typedef void (*Ecore_Timer_Bt_Func)();
+#endif
+
+struct _Ecore_Timer
+{
+   EINA_INLIST;
+                       ECORE_MAGIC;
+   double              in;
+   double              at;
+   double              pending;
+   Ecore_Task_Cb       func;
+   void               *data;
+
+#ifdef WANT_ECORE_TIMER_DUMP
+   Ecore_Timer_Bt_Func timer_bt[ECORE_TIMER_DEBUG_BT_NUM];
+   int                 timer_bt_num;
+#endif
+
+   int                 references;
+   unsigned char       delete_me : 1;
+   unsigned char       just_added : 1;
+   unsigned char       frozen : 1;
+};
+GENERIC_ALLOC_SIZE_DECLARE(Ecore_Timer);
+
 static void _ecore_timer_set(Ecore_Timer  *timer,
                              double        at,
                              double        in,
diff --git a/src/lib/ecore/ecore_types.h b/src/lib/ecore/ecore_types.h
deleted file mode 100644 (file)
index 3fc7c39..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-#ifndef ECORE_TYPES_H
-#define ECORE_TYPES_H
-
-#ifdef WANT_ECORE_TIMER_DUMP
-# include <string.h>
-# include <execinfo.h>
-# define ECORE_TIMER_DEBUG_BT_NUM 64
-typedef void (*Ecore_Timer_Bt_Func)();
-#endif
-
-struct _Ecore_Animator
-{
-   EINA_INLIST;
-                     ECORE_MAGIC;
-
-   Ecore_Task_Cb     func;
-   void             *data;
-
-   double            start, run;
-   Ecore_Timeline_Cb run_func;
-   void             *run_data;
-
-   Eina_Bool         delete_me : 1;
-   Eina_Bool         suspended : 1;
-};
-
-struct _Ecore_Event_Handler
-{
-   EINA_INLIST;
-                          ECORE_MAGIC;
-   int                    type;
-   Ecore_Event_Handler_Cb func;
-   void                  *data;
-   int                    references;
-   Eina_Bool              delete_me : 1;
-};
-
-struct _Ecore_Event_Filter
-{
-   EINA_INLIST;
-                   ECORE_MAGIC;
-   Ecore_Data_Cb   func_start;
-   Ecore_Filter_Cb func_filter;
-   Ecore_End_Cb    func_end;
-   void           *loop_data;
-   void           *data;
-   int             references;
-   Eina_Bool       delete_me : 1;
-};
-
-struct _Ecore_Event
-{
-   EINA_INLIST;
-                ECORE_MAGIC;
-   int          type;
-   void        *event;
-   Ecore_End_Cb func_free;
-   void        *data;
-   int          references;
-   Eina_Bool    delete_me : 1;
-};
-
-struct _Ecore_Idle_Enterer
-{
-   EINA_INLIST;
-                 ECORE_MAGIC;
-   Ecore_Task_Cb func;
-   void         *data;
-   int           references;
-   Eina_Bool     delete_me : 1;
-};
-
-struct _Ecore_Idle_Exiter
-{
-   EINA_INLIST;
-                 ECORE_MAGIC;
-   Ecore_Task_Cb func;
-   void         *data;
-   int           references;
-   Eina_Bool     delete_me : 1;
-};
-
-struct _Ecore_Idler
-{
-   EINA_INLIST;
-                 ECORE_MAGIC;
-   Ecore_Task_Cb func;
-   void         *data;
-   int           references;
-   Eina_Bool     delete_me : 1;
-};
-
-struct _Ecore_Job
-{
-                ECORE_MAGIC;
-   Ecore_Event *event;
-   Ecore_Cb     func;
-   void        *data;
-};
-
-struct _Ecore_Fd_Handler
-{
-   EINA_INLIST;
-                          ECORE_MAGIC;
-   Ecore_Fd_Handler      *next_ready;
-   int                    fd;
-   Ecore_Fd_Handler_Flags flags;
-   Ecore_Fd_Cb            func;
-   void                  *data;
-   Ecore_Fd_Cb            buf_func;
-   void                  *buf_data;
-   Ecore_Fd_Prep_Cb       prep_func;
-   void                  *prep_data;
-   int                    references;
-   Eina_Bool              read_active : 1;
-   Eina_Bool              write_active : 1;
-   Eina_Bool              error_active : 1;
-   Eina_Bool              delete_me : 1;
-#if defined(USE_G_MAIN_LOOP)
-   GPollFD                gfd;
-#endif
-};
-
-#ifdef _WIN32
-struct _Ecore_Win32_Handler
-{
-   EINA_INLIST;
-                         ECORE_MAGIC;
-   HANDLE                h;
-   Ecore_Win32_Handle_Cb func;
-   void                 *data;
-   int                   references;
-   Eina_Bool             delete_me : 1;
-};
-#endif
-
-struct _Ecore_Pipe
-{
-                     ECORE_MAGIC;
-   int               fd_read;
-   int               fd_write;
-   Ecore_Fd_Handler *fd_handler;
-   const void       *data;
-   Ecore_Pipe_Cb     handler;
-   unsigned int      len;
-   int               handling;
-   size_t            already_read;
-   void             *passed_data;
-   int               message;
-   Eina_Bool         delete_me : 1;
-};
-
-struct _Ecore_Poller
-{
-   EINA_INLIST;
-                 ECORE_MAGIC;
-   int           ibit;
-   unsigned char delete_me : 1;
-   Ecore_Task_Cb func;
-   void         *data;
-};
-
-struct _Ecore_Timer
-{
-   EINA_INLIST;
-                       ECORE_MAGIC;
-   double              in;
-   double              at;
-   double              pending;
-   Ecore_Task_Cb       func;
-   void               *data;
-
-#ifdef WANT_ECORE_TIMER_DUMP
-   Ecore_Timer_Bt_Func timer_bt[ECORE_TIMER_DEBUG_BT_NUM];
-   int                 timer_bt_num;
-#endif
-
-   int                 references;
-   unsigned char       delete_me : 1;
-   unsigned char       just_added : 1;
-   unsigned char       frozen : 1;
-};
-
-#endif