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;
 }