ecore: better resources use in the glib integration
authorJean Guyomarc'h <jean.guyomarch@gmail.com>
Sat, 5 Mar 2016 00:00:58 +0000 (16:00 -0800)
committerCedric BAIL <cedric@osg.samsung.com>
Sat, 5 Mar 2016 00:09:51 +0000 (16:09 -0800)
Summary:
When glib support is enabled (HAVE_GLIB), _ecore_glib_init()
was always reserving resources. However, its counterpart may not
be called when:
- glib is not always integrated and
- when a user didn't explicitly required the integration.

Calling _ecore_glib_init() within the request code will cause the
resources to be reserved only when the integration with glib is
required and furthermore guarantees that resources always have a
chance to be released.

Reviewers: cedric, raster

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3749

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
src/lib/ecore/ecore.c
src/lib/ecore/ecore_glib.c

index 0a5b1d8..247612b 100644 (file)
@@ -248,7 +248,6 @@ ecore_init(void)
    _ecore_exe_init();
 #endif
    _ecore_thread_init();
-   _ecore_glib_init();
    _ecore_job_init();
    _ecore_time_init();
 
index e2586c1..7232d15 100644 (file)
@@ -275,6 +275,9 @@ ecore_main_loop_glib_integrate(void)
    _ecore_glib_select_original = func;
    ecore_main_loop_select_func_set(_ecore_glib_select);
    _ecore_glib_active = EINA_TRUE;
+
+   /* Init only when requested */
+   _ecore_glib_init();
    return EINA_TRUE;
 #else
    ERR("No glib support");