aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/eina/src/lib/eina_magic.c
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/eina/src/lib/eina_magic.c')
-rw-r--r--libraries/eina/src/lib/eina_magic.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libraries/eina/src/lib/eina_magic.c b/libraries/eina/src/lib/eina_magic.c
index 1adde92..d1f71cc 100644
--- a/libraries/eina/src/lib/eina_magic.c
+++ b/libraries/eina/src/lib/eina_magic.c
@@ -79,7 +79,7 @@ _eina_magic_strings_sort_cmp(const void *p1, const void *p2)
79static int 79static int
80_eina_magic_strings_find_cmp(const void *p1, const void *p2) 80_eina_magic_strings_find_cmp(const void *p1, const void *p2)
81{ 81{
82 Eina_Magic a = (Eina_Magic)p1; 82 Eina_Magic a = (Eina_Magic)(size_t)p1;
83 const Eina_Magic_String *b = p2; 83 const Eina_Magic_String *b = p2;
84 return a - b->magic; 84 return a - b->magic;
85} 85}
@@ -129,6 +129,10 @@ _eina_magic_strings_alloc(void)
129* Global * 129* Global *
130*============================================================================*/ 130*============================================================================*/
131 131
132EAPI Eina_Error EINA_ERROR_MAGIC_FAILED = 0;
133
134static const char EINA_ERROR_MAGIC_FAILED_STR[] = "Magic check failed.";
135
132/** 136/**
133 * @internal 137 * @internal
134 * @brief Initialize the magic string module. 138 * @brief Initialize the magic string module.
@@ -150,6 +154,8 @@ eina_magic_string_init(void)
150 EINA_LOG_ERR("Could not register log domain: eina_magic_string"); 154 EINA_LOG_ERR("Could not register log domain: eina_magic_string");
151 return EINA_FALSE; 155 return EINA_FALSE;
152 } 156 }
157 EINA_ERROR_MAGIC_FAILED = eina_error_msg_static_register(
158 EINA_ERROR_MAGIC_FAILED_STR);
153 159
154 return EINA_TRUE; 160 return EINA_TRUE;
155} 161}
@@ -206,7 +212,7 @@ eina_magic_string_get(Eina_Magic magic)
206 _eina_magic_strings_dirty = 0; 212 _eina_magic_strings_dirty = 0;
207 } 213 }
208 214
209 ems = bsearch((void *)magic, _eina_magic_strings, 215 ems = bsearch((void *)(size_t)magic, _eina_magic_strings,
210 _eina_magic_strings_count, sizeof(Eina_Magic_String), 216 _eina_magic_strings_count, sizeof(Eina_Magic_String),
211 _eina_magic_strings_find_cmp); 217 _eina_magic_strings_find_cmp);
212 if (ems) 218 if (ems)
@@ -271,6 +277,7 @@ eina_magic_fail(void *d,
271 const char *fnc, 277 const char *fnc,
272 int line) 278 int line)
273{ 279{
280 eina_error_set(EINA_ERROR_MAGIC_FAILED);
274 if (!d) 281 if (!d)
275 eina_log_print(EINA_LOG_DOMAIN_GLOBAL, EINA_LOG_LEVEL_CRITICAL, 282 eina_log_print(EINA_LOG_DOMAIN_GLOBAL, EINA_LOG_LEVEL_CRITICAL,
276 file, fnc, line, 283 file, fnc, line,