commit 095a47078b742ef96e210dc7d472e7ebbc4ee26d
parent e7bdd969a484039400c84d9a7f3b0b71f35ba98b
Author: vaplv <vaplv@free.fr>
Date: Fri, 11 Oct 2013 09:49:07 +0200
Add the FOR_EACH_REVERSE helper macro
Diffstat:
2 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -0,0 +1,11 @@
+.gitignore
+CMakeCache.txt
+CMakeFiles
+Makefile
+[Bb]uild
+*.swp
+*.[ao]
+*~
+*.cmake
+tags
+cmake_build
diff --git a/src/rsys.h b/src/rsys.h
@@ -122,8 +122,15 @@
((Type*)((uintptr_t)Ptr - offsetof(Type, Member)))
#define COUNTER __COUNTER__
-#define FOR_EACH(Type, Id, Start, End) \
- for(Type (Id) = (Start); (Id) < (End); ++(Id))
+#define FOR_EACH(Type, Id, Start, End) \
+ for(Type (Id) = (Start), CONCAT(end__, __LINE__) = (End); \
+ (Id) < CONCAT(end__, __LINE__); \
+ ++(Id))
+
+#define FOR_EACH_REVERSE(Type, Id, Start, End) \
+ for(Type (Id) = (Start), CONCAT(end__, __LINE__) = (End); \
+ (Id) > CONCAT(end__, __LINE__); \
+ --(Id))
#define IS_MEMORY_OVERLAPPED(D0, Sz0, D1, Sz1) \
(((intptr_t)(D0) >= (intptr_t)(D1) && \