return StringHash(NS_REINTERPRET_CAST(const char*, str.get()), str.Length() * 2);
unsigned char * buf = (unsigned char*) ubuf; PRUint32 h=1; unsigned char *end = buf + (len == -1 ? strlen(ubuf) : len); while(buf < end) { h = 0x63c63cd9*h + 0x9c39c33d + (int32)*buf; buf++; } return h;
inline PRUint32 StringHash(const nsAutoString& str){    return StringHash(NS_REINTERPRET_CAST(const char*, str.get()),                      str.Length() * 2);}