Removed arning
[libfirm] / ir / adt / iterator.h
index 6884710..bf74c11 100644 (file)
@@ -4,27 +4,38 @@
  * @author Sebastian Hack
  * @date 29.11.2004
  */
+#ifndef _ITERATOR_H
+#define _ITERATOR_H
+
+#include "fourcc.h"
+
+/**
+ * The iterator magic word.
+ */
+#define ITERATOR_MAGIC FOURCC('I', 'T', 'E', 'R')
 
 /**
  * Check, if some memory object appears to be an iterator.
  * @param ptr Some memory.
  * @return 1, if that memory area appears to be an iterator, 0 if not.
  */
-int is_iterator(const void *ptr);
+#define is_iterator(ptr) (((const iterator_t *) (ptr))->magic == ITERATOR_MAGIC)
 
 typedef struct _iterator_t {
-       char magic[4];
+       unsigned magic;
        void *(*start)(void *collection);
        void *(*next)(void *collection, void *curr);
        void (*finish)(void *collection, void *curr);
 } iterator_t;
 
 /**
- * An iterator implementation for psets.
+ * An iterator implementation for linked lists.
  */
-extern const iterator_t *it_pset;
+extern const iterator_t *list_iterator;
 
 /**
- * An iterator implementation for linked lists.
+ * An iterator implementation for psets.
  */
-extern const iterator_t *it_list;
+extern const iterator_t *pset_iterator;
+
+#endif