rsys

Basic data structures and low-level features
git clone git://git.meso-star.fr/rsys.git
Log | Files | Refs | README | LICENSE

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:
A.gitignore | 11+++++++++++
Msrc/rsys.h | 11+++++++++--
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) && \