in lib/parson.c [386:404]
static unsigned long hash_string(const char *string, size_t n) {
#ifdef PARSON_FORCE_HASH_COLLISIONS
(void)string;
(void)n;
return 0;
#else
unsigned long hash = 5381;
unsigned char c;
size_t i = 0;
for (i = 0; i < n; i++) {
c = string[i];
if (c == '\0') {
break;
}
hash = ((hash << 5) + hash) + c; /* hash * 33 + c */
}
return hash;
#endif
}