diff options
Diffstat (limited to 'lib/base/data.c')
| -rw-r--r-- | lib/base/data.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/base/data.c b/lib/base/data.c index 4aa6efc66774..cefdde0c1bbe 100644 --- a/lib/base/data.c +++ b/lib/base/data.c @@ -34,7 +34,7 @@ #include "baselocl.h" #include <string.h> -static void +static void HEIM_CALLCONV data_dealloc(void *ptr) { heim_data_t d = ptr; @@ -61,7 +61,7 @@ data_cmp(void *a, void *b) return memcmp(osa->data, osb->data, osa->length); } -static unsigned long +static uintptr_t data_hash(void *ptr) { heim_octet_string *os = ptr; @@ -69,8 +69,9 @@ data_hash(void *ptr) if (os->length < 4) return os->length; - return s[0] | (s[1] << 8) | - (s[os->length - 2] << 16) | (s[os->length - 1] << 24); + + return ((unsigned long)s[os->length - 1] << 24) + | (s[os->length - 2] << 16) | (s[1] << 8) | s[0]; } struct heim_type_data _heim_data_object = { |
