On 05/15/2014 08:53 PM, Martin Kletzander wrote:
On Thu, May 15, 2014 at 06:39:49PM +0900, Dongsheng Yang wrote:
This patch introduce a new macro to return a
value clamped to a given range.

Signed-off-by: Dongsheng Yang <[email protected]>
---
src/util/virutil.h | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/src/util/virutil.h b/src/util/virutil.h
index 2bb74e2..e8536d8 100644
--- a/src/util/virutil.h
+++ b/src/util/virutil.h
@@ -37,6 +37,12 @@
# ifndef MAX
#  define MAX(a, b) ((a) > (b) ? (a) : (b))
# endif
+# ifndef CLAMP
+#  define CLAMP(v, min, max) ({         \
+        typeof(v) _v = v;               \
+        _v = _v < min ? min: _v;        \
+        _v > max ? max: _v; })
+# endif


It's just my subjective impression, but wouldn't the following be a
bit more readable and less obfuscated?

#define CLAMP(v, min, max) MAX(MIN(v, max), min)

Neat! I think it works. I will use it in v2.

Thanx

Martin.

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to