Include stddef.h for size_t.
[libfirm] / include / libfirm / adt / eset.h
index 1487aa8..f22c406 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * 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.
  *
@@ -29,6 +29,8 @@
 #ifndef FIRM_ADT_ESET_H
 #define FIRM_ADT_ESET_H
 
+#include <stddef.h>
+
 #include "../begin.h"
 
 /**
@@ -49,7 +51,7 @@ FIRM_API eset *eset_copy(eset *source);
 FIRM_API void eset_destroy(eset *s);
 
 /** Returns the number of elements in the set. */
-FIRM_API int eset_count(eset *s);
+FIRM_API size_t eset_count(eset *s);
 
 /** Inserts an address into the set. */
 FIRM_API void eset_insert(eset *s, void *p);
@@ -76,6 +78,9 @@ FIRM_API void *eset_next(eset *s);
 /** Inserts all elements of source into target (union).  Does NOT work if NULL is contained in source. */
 FIRM_API void eset_insert_all(eset *target, eset *source);
 
+#define eset_foreach(eset, type, iter) \
+       for ((iter) = (type)eset_first((eset)); (iter) != NULL; (iter) = (type)eset_next((eset)))
+
 #include "../end.h"
 
 #endif