/*
- * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
#ifndef FIRM_ADT_HASHPTR_H
#define FIRM_ADT_HASHPTR_H
+#include <stdlib.h>
+#include "../begin.h"
+
#define _FIRM_FNV_OFFSET_BASIS 2166136261U
#define _FIRM_FNV_FNV_PRIME 16777619U
/* Computing x * _FIRM_FNV_FNV_PRIME */
#define _FIRM_FNV_TIMES_PRIME(x) ((x) * _FIRM_FNV_FNV_PRIME)
-static inline unsigned firm_fnv_hash(const unsigned char *data, unsigned bytes)
+static inline unsigned firm_fnv_hash(const unsigned char *data, size_t bytes)
{
- unsigned i;
+ size_t i;
unsigned hash = _FIRM_FNV_OFFSET_BASIS;
for(i = 0; i < bytes; ++i) {
static inline unsigned _hash_combine(unsigned x, unsigned y)
{
- unsigned hash = _FIRM_FNV_TIMES_PRIME(_FIRM_FNV_OFFSET_BASIS);
- hash ^= x;
- hash = _FIRM_FNV_TIMES_PRIME(hash);
- hash ^= y;
- return hash;
+ unsigned hash = _FIRM_FNV_TIMES_PRIME(_FIRM_FNV_OFFSET_BASIS);
+ hash ^= x;
+ hash = _FIRM_FNV_TIMES_PRIME(hash);
+ hash ^= y;
+ return hash;
}
#ifdef _MSC_VER
*/
#define HASH_COMBINE(a,b) _hash_combine(a, b)
+#include "../end.h"
+
#endif