Various performance improvements in PJSIP: (1) optimizing for common case to minimize stricmp() calls (header names, method, URI schemes), (2) added functionality in scanner to parse and unescape in-place, (3) etc..
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@583 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjlib/src/pj/hash.c b/pjlib/src/pj/hash.c
index 1f86317..10ad9d9 100644
--- a/pjlib/src/pj/hash.c
+++ b/pjlib/src/pj/hash.c
@@ -75,10 +75,21 @@
{
long i;
+#if defined(PJ_HASH_USE_OWN_TOLOWER) && PJ_HASH_USE_OWN_TOLOWER != 0
+ for (i=0; i<key->slen; ++i) {
+ pj_uint8_t c = key->ptr[i];
+ if (c & 64)
+ result[i] = (char)(c | 32);
+ else
+ result[i] = (char)c;
+ hval = hval * PJ_HASH_MULTIPLIER + result[i];
+ }
+#else
for (i=0; i<key->slen; ++i) {
result[i] = (char)pj_tolower(key->ptr[i]);
hval = hval * PJ_HASH_MULTIPLIER + result[i];
}
+#endif
return hval;
}