src/common.h: Make sfree() usable like a function.
authorSebastian Harl <sh@tokkee.org>
Mon, 18 Aug 2008 07:30:03 +0000 (09:30 +0200)
committerFlorian Forster <octo@huhu.verplant.org>
Tue, 19 Aug 2008 08:08:51 +0000 (10:08 +0200)
By putting the code into a "do { } while (0)" loop it is treated like a single
statement and does not break "if () sfree()" like constructs.

Signed-off-by: Sebastian Harl <sh@tokkee.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/common.h

index e99aea6..9e7e4aa 100644 (file)
 #endif
 
 #define sfree(ptr) \
-       if((ptr) != NULL) { \
-               free(ptr); \
-       } \
-       (ptr) = NULL
+       do { \
+               if((ptr) != NULL) { \
+                       free(ptr); \
+               } \
+               (ptr) = NULL; \
+       } while (0)
 
 #define STATIC_ARRAY_SIZE(a) (sizeof (a) / sizeof (*(a)))