From e6ec7adedb8c5747ccbf7895d926e4d9696e060a Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Tue, 27 Jul 2010 16:53:49 +0000 Subject: [PATCH] Eina: Fix the segfault in eina_stringshare_shutdown with-enable-amalgamation. SVN revision: 50548 --- legacy/eina/src/lib/eina_binshare.c | 20 ++++++++----------- legacy/eina/src/lib/eina_stringshare.c | 26 ++++++++++++------------- legacy/eina/src/lib/eina_ustringshare.c | 20 ++++++++----------- 3 files changed, 29 insertions(+), 37 deletions(-) diff --git a/legacy/eina/src/lib/eina_binshare.c b/legacy/eina/src/lib/eina_binshare.c index b41a910dba..651621e89f 100644 --- a/legacy/eina/src/lib/eina_binshare.c +++ b/legacy/eina/src/lib/eina_binshare.c @@ -36,7 +36,7 @@ #include "eina_private.h" /* The actual share */ -static Eina_Share *share; +static Eina_Share *binshare_share; static const char EINA_MAGIC_BINSHARE_NODE_STR[] = "Eina Binshare Node"; /*============================================================================* @@ -57,7 +57,7 @@ static const char EINA_MAGIC_BINSHARE_NODE_STR[] = "Eina Binshare Node"; EAPI Eina_Bool eina_binshare_init(void) { - return eina_share_common_init(&share, EINA_MAGIC_BINSHARE_NODE, EINA_MAGIC_BINSHARE_NODE_STR); + return eina_share_common_init(&binshare_share, EINA_MAGIC_BINSHARE_NODE, EINA_MAGIC_BINSHARE_NODE_STR); } /** @@ -75,7 +75,7 @@ EAPI Eina_Bool eina_binshare_shutdown(void) { Eina_Bool ret; - ret = eina_share_common_shutdown(&share); + ret = eina_share_common_shutdown(&binshare_share); return ret; } @@ -124,7 +124,7 @@ eina_binshare_del(const char *str) { if (!str) return; - eina_share_common_del(share,(const char *) str); + eina_share_common_del(binshare_share,(const char *) str); } /** @@ -150,7 +150,7 @@ eina_binshare_del(const char *str) EAPI const char * eina_binshare_add_length(const char *str, unsigned int slen) { - return (const char *) eina_share_common_add_length(share,(const char *) str, (slen) * sizeof(char), 0); + return (const char *) eina_share_common_add_length(binshare_share,(const char *) str, (slen) * sizeof(char), 0); } /** @@ -170,11 +170,7 @@ eina_binshare_add_length(const char *str, unsigned int slen) EAPI const char * eina_binshare_ref(const char *str) { - if (!str) - { - return (const char *) eina_share_common_ref(share, (const char *) str); - } - return (const char *) eina_share_common_ref(share, (const char *) str); + return (const char *) eina_share_common_ref(binshare_share, (const char *) str); } /** @@ -191,7 +187,7 @@ eina_binshare_ref(const char *str) EAPI int eina_binshare_length(const char *str) { - return eina_share_common_length(share, (const char *) str); + return eina_share_common_length(binshare_share, (const char *) str); } /** @@ -203,7 +199,7 @@ eina_binshare_length(const char *str) EAPI void eina_binshare_dump(void) { - eina_share_common_dump(share, NULL, 0); + eina_share_common_dump(binshare_share, NULL, 0); } /** diff --git a/legacy/eina/src/lib/eina_stringshare.c b/legacy/eina/src/lib/eina_stringshare.c index c7b9dd12b3..8778eca4cf 100644 --- a/legacy/eina/src/lib/eina_stringshare.c +++ b/legacy/eina/src/lib/eina_stringshare.c @@ -26,7 +26,7 @@ */ /** - * @page tutorial_ustringshare_page UStringshare Tutorial + * @page tutorial_stringshare_page Stringshare Tutorial * * to be written... * @@ -60,7 +60,7 @@ #include "eina_share_common.h" /* The actual share */ -static Eina_Share *share; +static Eina_Share *stringshare_share; static const char EINA_MAGIC_STRINGSHARE_NODE_STR[] = "Eina Stringshare Node"; #ifdef EFL_HAVE_THREADS @@ -484,7 +484,7 @@ Eina_Bool eina_stringshare_init(void) { Eina_Bool ret; - ret = eina_share_common_init(&share, EINA_MAGIC_STRINGSHARE_NODE, EINA_MAGIC_STRINGSHARE_NODE_STR); + ret = eina_share_common_init(&stringshare_share, EINA_MAGIC_STRINGSHARE_NODE, EINA_MAGIC_STRINGSHARE_NODE_STR); if (ret) { _eina_stringshare_small_init(); @@ -508,7 +508,7 @@ eina_stringshare_shutdown(void) { Eina_Bool ret; _eina_stringshare_small_shutdown(); - ret = eina_share_common_shutdown(&share); + ret = eina_share_common_shutdown(&stringshare_share); return ret; } @@ -572,13 +572,13 @@ eina_stringshare_del(const char *str) return; else if (slen < 4) { - eina_share_common_population_del(share, slen); + eina_share_common_population_del(stringshare_share, slen); STRINGSHARE_LOCK_SMALL(); _eina_stringshare_small_del(str, slen); STRINGSHARE_UNLOCK_SMALL(); return; } - eina_share_common_del(share, str); + eina_share_common_del(stringshare_share, str); } /** @@ -619,7 +619,7 @@ eina_stringshare_add_length(const char *str, unsigned int slen) STRINGSHARE_UNLOCK_SMALL(); return s; } - return eina_share_common_add_length(share, str, slen * sizeof(char), sizeof(char)); + return eina_share_common_add_length(stringshare_share, str, slen * sizeof(char), sizeof(char)); } /** @@ -803,7 +803,7 @@ eina_stringshare_ref(const char *str) if (!str) { - return eina_share_common_ref(share, str); + return eina_share_common_ref(stringshare_share, str); } /* special cases */ @@ -815,14 +815,14 @@ eina_stringshare_ref(const char *str) if (slen < 2) { - eina_share_common_population_add(share, slen); + eina_share_common_population_add(stringshare_share, slen); return str; } else if (slen < 4) { const char *s; - eina_share_common_population_add(share, slen); + eina_share_common_population_add(stringshare_share, slen); STRINGSHARE_LOCK_SMALL(); s = _eina_stringshare_small_add(str, slen); @@ -831,7 +831,7 @@ eina_stringshare_ref(const char *str) return s; } - return eina_share_common_ref(share, str); + return eina_share_common_ref(stringshare_share, str); } /** @@ -855,7 +855,7 @@ eina_stringshare_strlen(const char *str) if (str[2] == '\0') return 2; if (str[3] == '\0') return 3; - len = eina_share_common_length(share, (const char *) str); + len = eina_share_common_length(stringshare_share, (const char *) str); len = (len > 0) ? len / (int) sizeof(char) : -1; return len; } @@ -869,7 +869,7 @@ eina_stringshare_strlen(const char *str) EAPI void eina_stringshare_dump(void) { - eina_share_common_dump(share, _eina_stringshare_small_dump, sizeof(_eina_stringshare_single)); + eina_share_common_dump(stringshare_share, _eina_stringshare_small_dump, sizeof(_eina_stringshare_single)); } /** diff --git a/legacy/eina/src/lib/eina_ustringshare.c b/legacy/eina/src/lib/eina_ustringshare.c index 40b6c44895..1b83408793 100644 --- a/legacy/eina/src/lib/eina_ustringshare.c +++ b/legacy/eina/src/lib/eina_ustringshare.c @@ -35,7 +35,7 @@ #include "eina_private.h" /* The actual share */ -static Eina_Share *share; +static Eina_Share *ustringshare_share; static const char EINA_MAGIC_USTRINGSHARE_NODE_STR[] = "Eina UStringshare Node"; /*============================================================================* @@ -56,7 +56,7 @@ static const char EINA_MAGIC_USTRINGSHARE_NODE_STR[] = "Eina UStringshare Node"; Eina_Bool eina_ustringshare_init(void) { - return eina_share_common_init(&share, EINA_MAGIC_USTRINGSHARE_NODE, EINA_MAGIC_USTRINGSHARE_NODE_STR); + return eina_share_common_init(&ustringshare_share, EINA_MAGIC_USTRINGSHARE_NODE, EINA_MAGIC_USTRINGSHARE_NODE_STR); } /** @@ -74,7 +74,7 @@ Eina_Bool eina_ustringshare_shutdown(void) { Eina_Bool ret; - ret = eina_share_common_shutdown(&share); + ret = eina_share_common_shutdown(&ustringshare_share); return ret; } @@ -123,7 +123,7 @@ eina_ustringshare_del(const Eina_Unicode *str) { if (!str) return; - eina_share_common_del(share,(const char *) str); + eina_share_common_del(ustringshare_share,(const char *) str); } /** @@ -149,7 +149,7 @@ eina_ustringshare_del(const Eina_Unicode *str) EAPI const Eina_Unicode * eina_ustringshare_add_length(const Eina_Unicode *str, unsigned int slen) { - return (const Eina_Unicode *) eina_share_common_add_length(share,(const char *) str, slen * sizeof(Eina_Unicode), sizeof(Eina_Unicode)); + return (const Eina_Unicode *) eina_share_common_add_length(ustringshare_share,(const char *) str, slen * sizeof(Eina_Unicode), sizeof(Eina_Unicode)); } /** @@ -195,11 +195,7 @@ eina_ustringshare_add(const Eina_Unicode *str) EAPI const Eina_Unicode * eina_ustringshare_ref(const Eina_Unicode *str) { - if (!str) - { - return (Eina_Unicode *) eina_share_common_ref(share, (const char *) str); - } - return (const Eina_Unicode *) eina_share_common_ref(share, (const char *) str); + return (const Eina_Unicode *) eina_share_common_ref(ustringshare_share, (const char *) str); } /** @@ -216,7 +212,7 @@ eina_ustringshare_ref(const Eina_Unicode *str) EAPI int eina_ustringshare_strlen(const Eina_Unicode *str) { - int len = eina_share_common_length(share, (const char *) str); + int len = eina_share_common_length(ustringshare_share, (const char *) str); len = (len > 0) ? len / (int) sizeof(Eina_Unicode) : -1; return len; } @@ -230,7 +226,7 @@ eina_ustringshare_strlen(const Eina_Unicode *str) EAPI void eina_ustringshare_dump(void) { - eina_share_common_dump(share, NULL, 0); + eina_share_common_dump(ustringshare_share, NULL, 0); } /**