Eina: Fix compilation with --enable-amalgamation.

Sorry dh :P

SVN revision: 50545
This commit is contained in:
Tom Hacohen 2010-07-27 15:15:45 +00:00
parent 6b69189efd
commit 32c7a50118
10 changed files with 78 additions and 26 deletions

View File

@ -122,6 +122,7 @@ eina_amalgamation.c: $(base_sources) Makefile
@echo "#include \"eina_private.h\"" >> eina_amalgamation.c
@echo "#include \"eina_safety_checks.h\"" >> eina_amalgamation.c
@echo "#include \"Eina.h\"" >> eina_amalgamation.c
@echo "#include \"eina_share_common.h\"" >> eina_amalgamation.c
@for f in $(base_sources); do \
if [ `echo $$f | sed -e 's/^...\(.\).*/\1/'` != '/' ]; then \

View File

@ -120,11 +120,11 @@ eina_binshare_shutdown(void)
* will happen, likely a segmentation fault.
*/
EAPI void
eina_binshare_del(const char *str, unsigned int slen)
eina_binshare_del(const char *str)
{
if (!str)
return;
eina_share_common_del(share,(const char *) str, slen);
eina_share_common_del(share,(const char *) str);
}
/**

View File

@ -736,8 +736,9 @@ eina_share_common_ref(Eina_Share *share, const char *str)
void
eina_share_common_del(Eina_Share *share, const char *str, int slen)
eina_share_common_del(Eina_Share *share, const char *str)
{
unsigned int slen;
Eina_Share_Common_Head *ed;
Eina_Share_Common_Head **p_bucket;
Eina_Share_Common_Node *node;
@ -745,11 +746,11 @@ eina_share_common_del(Eina_Share *share, const char *str, int slen)
if (!str) return;
eina_share_common_population_del(share, slen);
SHARE_COMMON_LOCK_BIG();
node = _eina_share_common_node_from_str(str, share->node_magic);
slen = node->length;
eina_share_common_population_del(share, slen);
if (node->references > 1)
{
node->references--;
@ -760,7 +761,6 @@ eina_share_common_del(Eina_Share *share, const char *str, int slen)
DBG("str=%p refs=0, delete.", str);
node->references = 0;
slen = node->length;
hash = eina_hash_superfast(str, slen);
hash_num = hash & 0xFF;

View File

@ -65,7 +65,7 @@ Eina_Bool eina_share_common_init(Eina_Share **share, Eina_Magic node_magic, cons
Eina_Bool eina_share_common_shutdown(Eina_Share **share);
const char *eina_share_common_add_length(Eina_Share *share, const char *str, unsigned int slen, unsigned int null_size) EINA_WARN_UNUSED_RESULT;
const char *eina_share_common_ref(Eina_Share *share, const char *str);
void eina_share_common_del(Eina_Share *share, const char *str, int slen);
void eina_share_common_del(Eina_Share *share, const char *str);
int eina_share_common_length(Eina_Share *share, const char *str) EINA_CONST EINA_WARN_UNUSED_RESULT;
void eina_share_common_dump(Eina_Share *share, void (* additional_dump)(struct dumpinfo *), int used);

View File

@ -1,10 +1,36 @@
#ifdef _STRBUF_DATA_TYPE
# undef _STRBUF_DATA_TYPE
#endif
#ifdef _STRBUF_CSIZE
# undef _STRBUF_CSIZE
#endif
#ifdef _STRBUF_STRUCT_NAME
# undef _STRBUF_STRUCT_NAME
#endif
#ifdef _STRBUF_STRLEN_FUNC
# undef _STRBUF_STRLEN_FUNC
#endif
#ifdef _STRBUF_STRESCAPE_FUNC
# undef _STRBUF_STRESCAPE_FUNC
#endif
#ifdef _STRBUF_MAGIC
# undef _STRBUF_MAGIC
#endif
#ifdef _STRBUF_MAGIC_STR
# undef _STRBUF_MAGIC_STR
#endif
#ifdef _FUNC_EXPAND
# undef _FUNC_EXPAND
#endif
#define _STRBUF_DATA_TYPE char
#define _STRBUF_CSIZE sizeof(_STRBUF_DATA_TYPE)
#define _STRBUF_STRUCT_NAME Eina_Strbuf
#define _STRBUF_STRLEN_FUNC(x) strlen(x)
#define _STRBUF_STRESCAPE_FUNC(x) eina_str_escape(x)
#define _STRBUF_MAGIC EINA_MAGIC_STRBUF
static const char _STRBUF_MAGIC_STR[] = "Eina Strbuf";
#define _STRBUF_MAGIC_STR __STRBUF_MAGIC_STR
static const char __STRBUF_MAGIC_STR[] = "Eina Strbuf";
#define _FUNC_EXPAND(y) eina_strbuf_##y

View File

@ -638,9 +638,21 @@ eina_strbuf_common_length_get(const Eina_Strbuf *buf)
* @{
*/
/*FIXME: Implementing them here is a hack! */
#ifdef _STRBUF_CSIZE
# undef _STRBUF_CSIZE
#endif
#ifdef _STRBUF_MAGIC
# undef _STRBUF_MAGIC
#endif
#ifdef _STRBUF_MAGIC_STR
# undef _STRBUF_MAGIC_STR
#endif
#define _STRBUF_CSIZE 1
#define _STRBUF_MAGIC EINA_MAGIC_STRBUF
static const char _STRBUF_MAGIC_STR[] = "Eina Strbuf";
#define _STRBUF_MAGIC_STR __STRBUF_STR_MAGIC_STR
static const char __STRBUF_STR_MAGIC_STR[] = "Eina Strbuf";
/**
* @ brief Replace the n-th string with an other string.

View File

@ -16,10 +16,6 @@
* a lot easier since those are essentially the same just with different sizes.
*/
#ifndef EINA_STRBUF_TEMPLATE_C_I
#define EINA_STRBUF_TEMPLATE_C_I
#include <Eina.h>
#include "eina_strbuf_common.h"
#include "eina_unicode.h"
@ -217,8 +213,3 @@ _FUNC_EXPAND(length_get)(const _STRBUF_STRUCT_NAME *buf)
EINA_MAGIC_CHECK_STRBUF(buf, 0);
return eina_strbuf_common_length_get(buf);
}
#else
#error Something went terribly wrong, shouldnt be included twice!
#endif

View File

@ -578,9 +578,7 @@ eina_stringshare_del(const char *str)
STRINGSHARE_UNLOCK_SMALL();
return;
}
slen = strlen(str);
slen = (int) (slen * sizeof(char));
eina_share_common_del(share, str, slen);
eina_share_common_del(share, str);
}
/**

View File

@ -2,13 +2,40 @@
#include "eina_unicode.h"
#include "eina_ustrbuf.h"
#ifdef _STRBUF_DATA_TYPE
# undef _STRBUF_DATA_TYPE
#endif
#ifdef _STRBUF_CSIZE
# undef _STRBUF_CSIZE
#endif
#ifdef _STRBUF_STRUCT_NAME
# undef _STRBUF_STRUCT_NAME
#endif
#ifdef _STRBUF_STRLEN_FUNC
# undef _STRBUF_STRLEN_FUNC
#endif
#ifdef _STRBUF_STRESCAPE_FUNC
# undef _STRBUF_STRESCAPE_FUNC
#endif
#ifdef _STRBUF_MAGIC
# undef _STRBUF_MAGIC
#endif
#ifdef _STRBUF_MAGIC_STR
# undef _STRBUF_MAGIC_STR
#endif
#ifdef _FUNC_EXPAND
# undef _FUNC_EXPAND
#endif
#define _STRBUF_DATA_TYPE Eina_Unicode
#define _STRBUF_CSIZE sizeof(_STRBUF_DATA_TYPE)
#define _STRBUF_STRUCT_NAME Eina_UStrbuf
#define _STRBUF_STRLEN_FUNC(x) eina_unicode_strlen(x)
#define _STRBUF_STRESCAPE_FUNC(x) eina_unicode_escape(x)
#define _STRBUF_MAGIC EINA_MAGIC_USTRBUF
static const char _STRBUF_MAGIC_STR[] = "Eina UStrbuf";
#define _STRBUF_MAGIC_STR __USTRBUF_MAGIC_STR
static const char __USTRBUF_MAGIC_STR[] = "Eina UStrbuf";
#define _FUNC_EXPAND(y) eina_ustrbuf_##y

View File

@ -121,12 +121,9 @@ eina_ustringshare_shutdown(void)
EAPI void
eina_ustringshare_del(const Eina_Unicode *str)
{
int slen;
if (!str)
return;
slen = eina_unicode_strlen(str);
slen = (int) (slen * sizeof(Eina_Unicode));
eina_share_common_del(share,(const char *) str, slen);
eina_share_common_del(share,(const char *) str);
}
/**