From fe7ae5930ae26a53ebb5f40384c3c01e82d8441b Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Wed, 18 May 2011 10:05:59 +0000 Subject: [PATCH] eina: part of the init is specific, so preserve it. SVN revision: 59493 --- legacy/eina/src/lib/eina_share_common.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/legacy/eina/src/lib/eina_share_common.c b/legacy/eina/src/lib/eina_share_common.c index ae2842bdea..cab1289fad 100644 --- a/legacy/eina/src/lib/eina_share_common.c +++ b/legacy/eina/src/lib/eina_share_common.c @@ -601,9 +601,6 @@ eina_share_common_init(Eina_Share **_share, { Eina_Share *share; - if (_eina_share_common_count++ != 0) - return EINA_TRUE; - share = *_share = calloc(sizeof(Eina_Share), 1); if (!share) goto on_error; @@ -640,6 +637,10 @@ eina_share_common_init(Eina_Share **_share, _eina_share_common_population_init(share); + /* below is the common part among other all eina_share_common user */ + if (_eina_share_common_count++ != 0) + return EINA_TRUE; + eina_lock_new(&_mutex_big); return EINA_TRUE; @@ -665,9 +666,6 @@ eina_share_common_shutdown(Eina_Share **_share) unsigned int i; Eina_Share *share = *_share; - if (--_eina_share_common_count != 0) - return EINA_TRUE; - eina_lock_take(&_mutex_big); _eina_share_common_population_stats(share); @@ -692,10 +690,15 @@ eina_share_common_shutdown(Eina_Share **_share) eina_lock_release(&_mutex_big); - eina_lock_free(&_mutex_big); - free(*_share); *_share = NULL; + + /* below is the common part among other all eina_share_common user */ + if (--_eina_share_common_count != 0) + return EINA_TRUE; + + eina_lock_free(&_mutex_big); + return EINA_TRUE; }