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__ */