cleanup space generation logic and make it more robust for union constructs
[libfirm] / ir / adt / hashset.c
index 08869b7..4631f5f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
  *
  * This file is part of libFirm.
  *
@@ -79,7 +79,7 @@
 
 #ifndef Hash
 #define ID_HASH
-#define Hash(self,key)        ((unsigned)(key))
+#define Hash(self,key)        ((unsigned)(((char *)key) - (char *)0))
 #endif /* Hash */
 
 #ifdef DO_REHASH
@@ -283,7 +283,7 @@ void insert_new(HashSet *self, unsigned hash, ValueType value)
                HashSetEntry *entry = & self->entries[bucknum];
 
                if(EntryIsEmpty(*entry)) {
-                       size_t p;
+                       size_t        p;
                        HashSetEntry *nentry;
 
                        if(insert_pos != ILLEGAL_POS) {
@@ -388,7 +388,7 @@ void maybe_shrink(HashSet *self)
                return;
 
        self->consider_shrink = 0;
-       size = hashset_size(self);
+       size                  = hashset_size(self);
        if(size <= HT_MIN_BUCKETS)
                return;