Fix initialisation logic.
authorcedric <cedric>
Wed, 3 Sep 2008 12:06:50 +0000 (12:06 +0000)
committercedric <cedric@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 3 Sep 2008 12:06:50 +0000 (12:06 +0000)
git-svn-id: http://svn.enlightenment.org/svn/e/trunk/PROTO/eina@35806 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/eina_hash.c
src/lib/eina_main.c
src/lib/eina_stringshare.c

index a6c6af1..f561a5b 100644 (file)
@@ -88,8 +88,6 @@ struct _Eina_Hash_Each
    const void *data;
 };
 
-static int _eina_hash_init_count = 0;
-
 #undef get16bits
 #if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \
   || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
@@ -325,12 +323,7 @@ _eina_hash_iterator_free(Eina_Iterator_Hash *it)
 EAPI int
 eina_hash_init(void)
 {
-   _eina_hash_init_count++;
-
-   if (_eina_hash_init_count == 1)
-     eina_error_init();
-
-   return _eina_hash_init_count;
+   return eina_error_init();
 }
 
 /**
@@ -339,11 +332,7 @@ eina_hash_init(void)
 EAPI int
 eina_hash_shutdown(void)
 {
-   _eina_hash_init_count--;
-
-   if (_eina_hash_init_count == 0) eina_error_shutdown();
-
-   return _eina_hash_init_count;
+   return eina_error_shutdown();
 }
 
 /**
index fdb632f..68ee32c 100644 (file)
@@ -40,10 +40,10 @@ eina_init(void)
    int r;
 
    r = eina_error_init();
-   r += eina_hash_init();
-   r += eina_stringshare_init();
-   r += eina_list_init();
-   r += eina_array_init();
+   eina_hash_init();
+   eina_stringshare_init();
+   eina_list_init();
+   eina_array_init();
 
    return r;
 }
@@ -55,9 +55,9 @@ eina_shutdown(void)
 
    eina_array_shutdown();
    eina_list_shutdown();
-   r = eina_stringshare_shutdown();
-   r += eina_hash_shutdown();
-   r += eina_error_shutdown();
+   eina_stringshare_shutdown();
+   eina_hash_shutdown();
+   r = eina_error_shutdown();
 
    return r;
 }
index a72f3de..8b4a0e7 100644 (file)
@@ -85,7 +85,7 @@ struct _Eina_Stringshare_Node
 };
 
 static Eina_Stringshare *share = NULL;
-static int eina_stringshare_init_count = 0;
+static int _eina_stringshare_init_count = 0;
 
 static int
 _eina_stringshare_cmp(const Eina_Stringshare_Node *node, const char *key, int length, __UNUSED__ void *data)
@@ -152,16 +152,16 @@ eina_stringshare_init()
     * No strings have been loaded at this point, so create the hash
     * table for storing string info for later.
     */
-   if (!eina_stringshare_init_count)
+   if (!_eina_stringshare_init_count)
      {
        share = calloc(1, sizeof(Eina_Stringshare));
        if (!share)
          return 0;
        eina_error_init();
      }
-   eina_stringshare_init_count++;
+   _eina_stringshare_init_count++;
 
-   return 1;
+   return _eina_stringshare_init_count;
 }
 
 /**
@@ -239,8 +239,8 @@ eina_stringshare_del(const char *str)
 EAPI int
 eina_stringshare_shutdown()
 {
-   --eina_stringshare_init_count;
-   if (!eina_stringshare_init_count)
+   --_eina_stringshare_init_count;
+   if (!_eina_stringshare_init_count)
      {
        int i;
        /* remove any string still in the table */
@@ -263,7 +263,7 @@ eina_stringshare_shutdown()
        eina_error_shutdown();
      }
 
-   return eina_stringshare_init_count;
+   return _eina_stringshare_init_count;
 }
 
 /**