summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2017-11-06 10:52:36 -0800
committerCedric BAIL <cedric@osg.samsung.com>2017-11-07 16:08:39 -0800
commitdd40079185577c5330f72817e0385aa9cda2e7f4 (patch)
tree2f36395c55688eb73c0b1c40c79cffa5bcc45182
parent25b6a280c087d39f66e30c9c4d07f86b97c989d6 (diff)
ecore,elementary: move startup time accounting in ecore.
-rw-r--r--src/lib/ecore/Efl_Core.h2
-rw-r--r--src/lib/ecore/ecore.c3
-rw-r--r--src/lib/elementary/efl_general.h4
-rw-r--r--src/lib/elementary/elm_general.h1
-rw-r--r--src/lib/elementary/elm_main.c8
5 files changed, 16 insertions, 2 deletions
diff --git a/src/lib/ecore/Efl_Core.h b/src/lib/ecore/Efl_Core.h
index 0f670b50fb..e70df033ef 100644
--- a/src/lib/ecore/Efl_Core.h
+++ b/src/lib/ecore/Efl_Core.h
@@ -61,6 +61,8 @@
extern "C" {
#endif
+extern EAPI double _efl_startup_time;
+
#include "Ecore_Common.h"
#include "Ecore_Eo.h"
diff --git a/src/lib/ecore/ecore.c b/src/lib/ecore/ecore.c
index 35967d6a00..00bf640624 100644
--- a/src/lib/ecore/ecore.c
+++ b/src/lib/ecore/ecore.c
@@ -30,6 +30,7 @@
#include <Efl.h>
#include "Ecore.h"
+#include "Efl_Core.h"
#include "ecore_private.h"
#if defined(HAVE_MALLINFO) || defined(HAVE_MALLOC_INFO)
@@ -43,6 +44,8 @@
static Ecore_Version _version = { VMAJ, VMIN, VMIC, VREV };
EAPI Ecore_Version *ecore_version = &_version;
+EAPI double _efl_startup_time = 0;
+
#if defined(HAVE_MALLINFO) || defined(HAVE_MALLOC_INFO)
#define KEEP_MAX(Global, Local) \
if (Global < (Local)) \
diff --git a/src/lib/elementary/efl_general.h b/src/lib/elementary/efl_general.h
index e10261cd63..e1e81a2287 100644
--- a/src/lib/elementary/efl_general.h
+++ b/src/lib/elementary/efl_general.h
@@ -35,8 +35,8 @@
{ \
Eina_Value *ret__; \
int real__; \
+ _efl_startup_time = ecore_time_unix_get(); \
_EFL_APP_VERSION_SET(); \
- _elm_startup_time = ecore_time_unix_get(); \
elm_init(argc, argv); \
efl_event_callback_add(ecore_main_loop_get(), EFL_LOOP_EVENT_ARGUMENTS, efl_main, NULL); \
ret__ = efl_loop_begin(ecore_main_loop_get()); \
@@ -55,8 +55,8 @@
{ \
Eina_Value *ret__; \
int real__; \
+ _efl_startup_time = ecore_time_unix_get(); \
_EFL_APP_VERSION_SET(); \
- _elm_startup_time = ecore_time_unix_get(); \
elm_init(argc, argv); \
efl_event_callback_array_add(ecore_main_loop_get(), _efl_main_ex(), NULL); \
ret__ = efl_loop_begin(ecore_main_loop_get()); \
diff --git a/src/lib/elementary/elm_general.h b/src/lib/elementary/elm_general.h
index 7c2a28236a..5645bf471f 100644
--- a/src/lib/elementary/elm_general.h
+++ b/src/lib/elementary/elm_general.h
@@ -96,6 +96,7 @@ extern EAPI double _elm_startup_time;
#define ELM_MAIN() int main(int argc, char **argv) { int ret__; _elm_startup_time = ecore_time_unix_get(); ret__ = elm_quicklaunch_fallback(argc, argv); elm_shutdown(); return ret__; }
#endif
+#include "Efl_Core.h"
#include "efl_general.h"
/**************************************************************************/
diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c
index cb96aa5b50..3b089583ee 100644
--- a/src/lib/elementary/elm_main.c
+++ b/src/lib/elementary/elm_main.c
@@ -424,6 +424,14 @@ elm_init(int argc, char **argv)
_elm_config->web_backend = "none";
_elm_code_parse_setup();
+ // For backward compability, EFL startup time and ELM startup time are made
+ // identical. It is fine to do it here as we are finishing initialisation
+ // and the startup time should have been accounted earlier.
+ if (_elm_startup_time >= 0)
+ if (_efl_startup_time <= 0)
+ _efl_startup_time = _elm_startup_time;
+ _elm_startup_time = _efl_startup_time;
+
return _elm_init_count;
}