From f2638e001aef47c04168784e6f45af7264bcd309 Mon Sep 17 00:00:00 2001 From: Dmitry Podgorny Date: Wed, 31 Jul 2013 01:53:10 +0300 Subject: [PATCH] rewritten FREE_SET_NULL and GFREE_SET_NULL NULL is valid argument for free(). Construction do {} while (0) allows using FREE_SET_NULL as one token and force to put semicolon at the end. --- src/common.h | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/common.h b/src/common.h index b87f2a97..f8ed82a5 100644 --- a/src/common.h +++ b/src/common.h @@ -42,18 +42,16 @@ #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) #define FREE_SET_NULL(resource) \ -{ \ - if (resource != NULL) { \ - free(resource); \ - resource = NULL; \ - } \ -} +do { \ + free(resource); \ + resource = NULL; \ +} while (0) #define GFREE_SET_NULL(resource) \ -{ \ +do { \ g_free(resource); \ resource = NULL; \ -} +} while (0) typedef enum { CONTACT_OFFLINE,