From bfbd7bbacb032794fc2a0fba918e27cd78425143 Mon Sep 17 00:00:00 2001 From: Kirill Tkhai Date: Wed, 28 Jun 2017 18:54:07 +0300 Subject: [PATCH] utils: Introduce SWAP() helper to exchange two variables Signed-off-by: Kirill Tkhai Signed-off-by: Andrei Vagin --- criu/include/pid.h | 8 ++------ include/common/compiler.h | 7 +++++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/criu/include/pid.h b/criu/include/pid.h index 04549022e..37e39428e 100644 --- a/criu/include/pid.h +++ b/criu/include/pid.h @@ -48,14 +48,10 @@ struct pid { static inline bool equal_pid(struct pid *a, struct pid *b) { - struct pid *t; int i; - if (a->level > b->level) { - t = a; - a = b; - b = t; - } + if (a->level > b->level) + SWAP(a, b); for(i = 0; i < b->level; i++) { if (i < a->level) { diff --git a/include/common/compiler.h b/include/common/compiler.h index 235413070..ada79f293 100644 --- a/include/common/compiler.h +++ b/include/common/compiler.h @@ -85,6 +85,13 @@ type __max2 = (y); \ __max1 > __max2 ? __max1: __max2; }) +#define SWAP(x, y) \ + do { \ + typeof(x) ____val = x; \ + x = y; \ + y = ____val; \ + } while (0) + #define is_log2(v) (((v) & ((v) - 1)) == 0) #endif /* __CR_COMPILER_H__ */