]> www.ginac.de Git - cln.git/blobdiff - src/base/string/cl_st_hashcode.cc
64-bit mingw port: In hash table routines, use 'intptr_t' instead of 'long'.
[cln.git] / src / base / string / cl_st_hashcode.cc
index 5091a3c2d4e0a56ca789f8224cd0d7f42dc5908a..61b9bb2adb667dfb119d5033b3ff0e5541595cab 100644 (file)
 
 namespace cln {
 
-unsigned long hashcode (const cl_string& str)
+uintptr_t hashcode (const cl_string& str)
 {
-    var unsigned long code = 0x61284AF3;
+    var uintptr_t code = 0x61284AF3;
     // We walk through all characters. It may take some time for very
     // long strings, but it's better than completely ignoring some characters.
-    var long len = str.size();
+    var intptr_t len = str.size();
     var const char * ptr = str.asciz();
     for (; len > 0; len--) {
         var unsigned char c = *ptr++;
         code = (code << 5) | (code >> 27); // rotate left 5 bits
-        code += (long)c << 16;
-        code ^= (long)c;
+        code += (intptr_t)c << 16;
+        code ^= (intptr_t)c;
         code &= 0xFFFFFFFF;
     }
     return code;