Don't compute string length when not really needed.
SVN revision: 36001
This commit is contained in:
parent
1582d52c3c
commit
e3e2afca18
|
@ -30,11 +30,27 @@ eina_hash_djb2(const char *key, int len)
|
||||||
const unsigned char *ptr;
|
const unsigned char *ptr;
|
||||||
|
|
||||||
if (!key) return 0;
|
if (!key) return 0;
|
||||||
|
|
||||||
for (ptr = (unsigned char *)key; len; ptr++, len--)
|
for (ptr = (unsigned char *)key; len; ptr++, len--)
|
||||||
hash_num = ((hash_num << 5) + hash_num) ^ *ptr; /* hash * 33 ^ c */
|
hash_num = ((hash_num << 5) + hash_num) ^ *ptr; /* hash * 33 ^ c */
|
||||||
|
|
||||||
return (int)hash_num;
|
return (int)hash_num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
eina_hash_djb2_len(const char *key, int *plen)
|
||||||
|
{
|
||||||
|
unsigned int hash_num = 5381;
|
||||||
|
int len = 0;
|
||||||
|
const unsigned char *ptr;
|
||||||
|
|
||||||
|
if (!key) return 0;
|
||||||
|
|
||||||
|
for (ptr = (unsigned char *)key; *ptr; ptr++, len++)
|
||||||
|
hash_num = ((hash_num << 5) + hash_num) ^ *ptr; /* hash * 33 ^ c */
|
||||||
|
|
||||||
|
*plen = len + 1;
|
||||||
|
|
||||||
|
return (int)hash_num;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -179,8 +179,7 @@ eina_stringshare_add(const char *str)
|
||||||
int hash_num, slen, hash;
|
int hash_num, slen, hash;
|
||||||
|
|
||||||
if (!str) return NULL;
|
if (!str) return NULL;
|
||||||
slen = strlen(str) + 1;
|
hash = eina_hash_djb2_len(str, &slen);
|
||||||
hash = eina_hash_djb2(str, slen);
|
|
||||||
hash_num = hash & 0xFF;
|
hash_num = hash & 0xFF;
|
||||||
hash &= 0xFFF;
|
hash &= 0xFFF;
|
||||||
|
|
||||||
|
@ -240,8 +239,7 @@ eina_stringshare_del(const char *str)
|
||||||
int hash_num, slen, hash;
|
int hash_num, slen, hash;
|
||||||
|
|
||||||
if (!str) return;
|
if (!str) return;
|
||||||
slen = strlen(str) + 1;
|
hash = eina_hash_djb2_len(str, &slen);
|
||||||
hash = eina_hash_djb2(str, slen);
|
|
||||||
hash_num = hash & 0xFF;
|
hash_num = hash & 0xFF;
|
||||||
hash &= 0xFFF;
|
hash &= 0xFFF;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue