cedric pushed a commit to branch master.

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

commit 6427c77707fb6116a98b184b18b1b929bdb3184d
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Fri Dec 2 15:27:48 2016 -0800

    evas: refactor initialisation and shutdown of evas_common.
---
 src/lib/evas/canvas/evas_main.c                       | 9 ++++++---
 src/modules/evas/engines/buffer/evas_engine.c         | 7 +------
 src/modules/evas/engines/drm/evas_engine.c            | 3 ---
 src/modules/evas/engines/eglfs/evas_engine.c          | 2 --
 src/modules/evas/engines/fb/evas_engine.c             | 5 -----
 src/modules/evas/engines/gl_cocoa/evas_engine.c       | 2 --
 src/modules/evas/engines/gl_drm/evas_engine.c         | 2 --
 src/modules/evas/engines/gl_sdl/evas_engine.c         | 2 --
 src/modules/evas/engines/gl_x11/evas_engine.c         | 2 --
 src/modules/evas/engines/psl1ght/evas_engine.c        | 5 -----
 src/modules/evas/engines/software_ddraw/evas_engine.c | 5 -----
 src/modules/evas/engines/software_gdi/evas_engine.c   | 5 -----
 src/modules/evas/engines/software_x11/evas_engine.c   | 3 ---
 src/modules/evas/engines/wayland_egl/evas_engine.c    | 2 --
 src/modules/evas/engines/wayland_shm/evas_engine.c    | 6 +-----
 15 files changed, 8 insertions(+), 52 deletions(-)

diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c
index 580101c..83f75b6 100644
--- a/src/lib/evas/canvas/evas_main.c
+++ b/src/lib/evas/canvas/evas_main.c
@@ -131,8 +131,8 @@ evas_shutdown(void)
      return _evas_init_count;
 
    eina_log_timing(_evas_log_dom_global,
-                  EINA_LOG_STATE_START,
-                  EINA_LOG_STATE_SHUTDOWN);
+                   EINA_LOG_STATE_START,
+                   EINA_LOG_STATE_SHUTDOWN);
 
 #ifdef EVAS_CSERVE2
    if (evas_cserve2_use_get())
@@ -163,7 +163,6 @@ evas_shutdown(void)
    evas_thread_shutdown();
    _evas_preload_thread_shutdown();
    evas_async_events_shutdown();
-   //evas_common_shutdown();
    evas_module_shutdown();
 
 #ifdef BUILD_LOADER_EET
@@ -354,6 +353,8 @@ _evas_canvas_efl_object_destructor(Eo *eo_e, 
Evas_Public_Data *e)
                                      e->engine.data.context);
         e->engine.func->output_free(e->engine.data.output);
         e->engine.func->info_free(eo_e, e->engine.info);
+
+        evas_common_shutdown();
      }
 
    for (i = 0; i < e->modifiers.mod.count; i++)
@@ -425,7 +426,9 @@ _evas_canvas_engine_info_set(Eo *eo_e, Evas_Public_Data *e, 
Evas_Engine_Info *in
    if (info->magic != e->engine.info_magic) return EINA_FALSE;
 
    evas_canvas_async_block(e);
+   evas_common_init();
    res = e->engine.func->setup(eo_e, info);
+   if (!res) evas_common_shutdown();
    return res;
 }
 
diff --git a/src/modules/evas/engines/buffer/evas_engine.c 
b/src/modules/evas/engines/buffer/evas_engine.c
index 5ee45dc..fcdd184 100644
--- a/src/modules/evas/engines/buffer/evas_engine.c
+++ b/src/modules/evas/engines/buffer/evas_engine.c
@@ -56,10 +56,7 @@ _output_setup(int w,
    DATA32 color_key = 0;
 
    re = calloc(1, sizeof(Render_Engine));
-   if (!re)
-     return NULL;
-   /* if we haven't initialized - init (automatic abort if already done) */
-   evas_common_init();
+   if (!re) return NULL;
 
    evas_buffer_outbuf_buf_init();
 
@@ -176,8 +173,6 @@ eng_output_free(void *data)
         evas_render_engine_software_generic_clean(&re->generic);
         free(re);
      }
-
-   evas_common_shutdown();
 }
 
 static Eina_Bool
diff --git a/src/modules/evas/engines/drm/evas_engine.c 
b/src/modules/evas/engines/drm/evas_engine.c
index f709592..3c198fb 100644
--- a/src/modules/evas/engines/drm/evas_engine.c
+++ b/src/modules/evas/engines/drm/evas_engine.c
@@ -88,7 +88,6 @@ eng_setup(Evas *evas, void *einfo)
    re = epd->engine.data.output;
    if (!re)
      {
-        evas_common_init();
 
         re = _render_engine_setup(info, epd->output.w, epd->output.h);
         if (!re) return 0;
@@ -127,8 +126,6 @@ eng_output_free(void *data)
         evas_render_engine_software_generic_clean(&re->generic);
         free(re);
      }
-
-   evas_common_shutdown();
 }
 
 static int
diff --git a/src/modules/evas/engines/eglfs/evas_engine.c 
b/src/modules/evas/engines/eglfs/evas_engine.c
index cf7c21b..1c0e108 100644
--- a/src/modules/evas/engines/eglfs/evas_engine.c
+++ b/src/modules/evas/engines/eglfs/evas_engine.c
@@ -766,7 +766,6 @@ eng_setup(Evas *evas, void *in)
 
         if (!initted)
           {
-             evas_common_init();
              glsym_evas_gl_preload_init();
           }
 
@@ -934,7 +933,6 @@ eng_output_free(void *data)
    if ((initted == EINA_TRUE) && (gl_wins == 0))
      {
         glsym_evas_gl_preload_shutdown();
-        evas_common_shutdown();
         initted = EINA_FALSE;
      }
 }
diff --git a/src/modules/evas/engines/fb/evas_engine.c 
b/src/modules/evas/engines/fb/evas_engine.c
index 204a614..4917113 100644
--- a/src/modules/evas/engines/fb/evas_engine.c
+++ b/src/modules/evas/engines/fb/evas_engine.c
@@ -98,8 +98,6 @@ _output_setup(Evas *eo_e, int w, int h, int rot, int vt, int 
dev, int refresh,
    re = calloc(1, sizeof(Render_Engine));
    if (!re)
      return NULL;
-   /* if we haven't initialized - init (automatic abort if already done) */
-   evas_common_init();
 
    evas_fb_outbuf_fb_init();
 
@@ -133,7 +131,6 @@ _output_setup(Evas *eo_e, int w, int h, int rot, int vt, 
int dev, int refresh,
  on_error:
    if (ob) evas_fb_outbuf_fb_free(ob);
    free(re);
-   evas_common_shutdown();
    return NULL;
 }
 
@@ -190,8 +187,6 @@ eng_output_free(void *data)
         evas_render_engine_software_generic_clean(&re->generic);
         free(re);
      }
-
-   evas_common_shutdown();
 }
 
 static Eina_Bool
diff --git a/src/modules/evas/engines/gl_cocoa/evas_engine.c 
b/src/modules/evas/engines/gl_cocoa/evas_engine.c
index 52ca743..f3f684b 100644
--- a/src/modules/evas/engines/gl_cocoa/evas_engine.c
+++ b/src/modules/evas/engines/gl_cocoa/evas_engine.c
@@ -172,7 +172,6 @@ eng_setup(Evas *evas, void *in)
      {
         if (!_initted)
           {
-             evas_common_init();
              glsym_evas_gl_preload_init();
              _initted = EINA_TRUE;
           }
@@ -259,7 +258,6 @@ eng_output_free(void *data)
    if (_initted && (_gl_wins == 0))
      {
         glsym_evas_gl_preload_shutdown();
-        evas_common_shutdown();
         _initted = EINA_FALSE;
      }
 }
diff --git a/src/modules/evas/engines/gl_drm/evas_engine.c 
b/src/modules/evas/engines/gl_drm/evas_engine.c
index 2d600d1..12889a3 100644
--- a/src/modules/evas/engines/gl_drm/evas_engine.c
+++ b/src/modules/evas/engines/gl_drm/evas_engine.c
@@ -906,7 +906,6 @@ eng_setup(Evas *evas, void *in)
 
         if (!initted)
           {
-             evas_common_init();
              glsym_evas_gl_preload_init();
           }
 
@@ -1090,7 +1089,6 @@ eng_output_free(void *data)
    if ((initted == EINA_TRUE) && (gl_wins == 0))
      {
         glsym_evas_gl_preload_shutdown();
-        evas_common_shutdown();
         initted = EINA_FALSE;
      }
 }
diff --git a/src/modules/evas/engines/gl_sdl/evas_engine.c 
b/src/modules/evas/engines/gl_sdl/evas_engine.c
index e722eee..0c7da91 100644
--- a/src/modules/evas/engines/gl_sdl/evas_engine.c
+++ b/src/modules/evas/engines/gl_sdl/evas_engine.c
@@ -305,7 +305,6 @@ eng_setup(Evas *eo_e, void *in)
    re = calloc(1, sizeof (Render_Engine));
    if (!re) goto on_error;
 
-
    if (!evas_render_engine_gl_generic_init(&re->generic, ob, NULL,
                                            _outbuf_get_rot,
                                            _outbuf_reconfigure,
@@ -334,7 +333,6 @@ eng_setup(Evas *eo_e, void *in)
    e->engine.data.context = e->engine.func->context_new(e->engine.data.output);
 
    /* if we haven't initialized - init (automatic abort if already done) */
-   evas_common_init();
 
    return 1;
 
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c 
b/src/modules/evas/engines/gl_x11/evas_engine.c
index 6d7a349..3a8650b 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -1713,7 +1713,6 @@ eng_setup(Evas *eo_e, void *in)
 
         if (!initted)
           {
-             evas_common_init();
              glsym_evas_gl_preload_init();
           }
 
@@ -1938,7 +1937,6 @@ eng_output_free(void *data)
    if ((initted == 1) && (gl_wins == 0))
      {
         glsym_evas_gl_preload_shutdown();
-        evas_common_shutdown();
         initted = 0;
      }
 }
diff --git a/src/modules/evas/engines/psl1ght/evas_engine.c 
b/src/modules/evas/engines/psl1ght/evas_engine.c
index be5f808..d119139 100644
--- a/src/modules/evas/engines/psl1ght/evas_engine.c
+++ b/src/modules/evas/engines/psl1ght/evas_engine.c
@@ -107,9 +107,6 @@ _output_setup(int w, int h)
 
    flipBuffer(re->context, MAX_BUFFERS - 1);
 
-   /* if we haven't initialized - init (automatic abort if already done) */
-   evas_common_init();
-
    re->tb = evas_common_tilebuf_new(w, h);
 
    /* in preliminary tests 16x16 gave highest framerates */
@@ -201,8 +198,6 @@ eng_output_free(void *data)
      evas_common_tilebuf_free_render_rects(re->rects);
 
    free(re);
-
-   evas_common_shutdown();
 }
 
 static void
diff --git a/src/modules/evas/engines/software_ddraw/evas_engine.c 
b/src/modules/evas/engines/software_ddraw/evas_engine.c
index 3d6834c..b8fb1ce 100644
--- a/src/modules/evas/engines/software_ddraw/evas_engine.c
+++ b/src/modules/evas/engines/software_ddraw/evas_engine.c
@@ -33,9 +33,6 @@ _output_setup(int  width,
    if (!re)
      return NULL;
 
-   /* if we haven't initialized - init (automatic abort if already done) */
-   evas_common_init();
-
    evas_software_ddraw_outbuf_init();
 
    ob = evas_software_ddraw_outbuf_setup(width, height, rot,
@@ -144,8 +141,6 @@ eng_output_free(void *data)
    re = (Render_Engine *)data;
    evas_render_engine_software_generic_clean(&re->generic);
    free(re);
-
-   evas_common_shutdown();
 }
 
 static Eina_Bool
diff --git a/src/modules/evas/engines/software_gdi/evas_engine.c 
b/src/modules/evas/engines/software_gdi/evas_engine.c
index be226f7..4cb2fa1 100644
--- a/src/modules/evas/engines/software_gdi/evas_engine.c
+++ b/src/modules/evas/engines/software_gdi/evas_engine.c
@@ -33,9 +33,6 @@ _output_setup(int          width,
    if (!re)
      return NULL;
 
-   /* if we haven't initialized - init (automatic abort if already done) */
-   evas_common_init();
-
    evas_software_gdi_outbuf_init();
 
    if (width <= 0)
@@ -152,8 +149,6 @@ eng_output_free(void *data)
    re = (Render_Engine *)data;
    evas_render_engine_software_generic_clean(&re->generic);
    free(re);
-
-   evas_common_shutdown();
 }
 
 static Eina_Bool
diff --git a/src/modules/evas/engines/software_x11/evas_engine.c 
b/src/modules/evas/engines/software_x11/evas_engine.c
index fd61bc0..4019e6d 100644
--- a/src/modules/evas/engines/software_x11/evas_engine.c
+++ b/src/modules/evas/engines/software_x11/evas_engine.c
@@ -328,7 +328,6 @@ eng_setup(Evas *eo_e, void *in)
    if (!e->engine.data.output)
      {
         /* if we haven't initialized - init (automatic abort if already done) 
*/
-        evas_common_init();
 
         if (info->info.backend == EVAS_ENGINE_INFO_SOFTWARE_X11_BACKEND_XLIB)
           {
@@ -455,8 +454,6 @@ eng_output_free(void *data)
         _output_egl_shutdown(re);
         free(re);
      }
-
-   evas_common_shutdown();
 }
 
 static Eina_Bool
diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c 
b/src/modules/evas/engines/wayland_egl/evas_engine.c
index 7b53d26..4d47f6f 100644
--- a/src/modules/evas/engines/wayland_egl/evas_engine.c
+++ b/src/modules/evas/engines/wayland_egl/evas_engine.c
@@ -579,7 +579,6 @@ eng_setup(Evas *evas, void *info)
         /* if we have not initialize gl & evas, do it */
         if (!initted)
           {
-             evas_common_init();
              glsym_evas_gl_preload_init();
           }
 
@@ -758,7 +757,6 @@ eng_output_free(void *data)
    if ((initted == EINA_TRUE) && (gl_wins == 0))
      {
         glsym_evas_gl_preload_shutdown();
-        evas_common_shutdown();
         initted = EINA_FALSE;
      }
 }
diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.c 
b/src/modules/evas/engines/wayland_shm/evas_engine.c
index d088818..c8e4c19 100644
--- a/src/modules/evas/engines/wayland_shm/evas_engine.c
+++ b/src/modules/evas/engines/wayland_shm/evas_engine.c
@@ -153,7 +153,6 @@ eng_setup(Evas *eo_evas, void *info)
    if (!(re = epd->engine.data.output))
      {
         /* if we have no engine data, assume we have not initialized yet */
-        evas_common_init();
 
         re = _render_engine_swapbuf_setup(epd->output.w, epd->output.h, einfo);
 
@@ -188,11 +187,10 @@ eng_setup(Evas *eo_evas, void *info)
    return 1;
 
 err:
-   evas_common_shutdown();
    return 0;
 }
 
-static void 
+static void
 eng_output_free(void *data)
 {
    Render_Engine *re;
@@ -202,8 +200,6 @@ eng_output_free(void *data)
         evas_render_engine_software_generic_clean(&re->generic);
         free(re);
      }
-
-   evas_common_shutdown();
 }
 
 static void 

-- 


Reply via email to