Eina refcount: Wrap EINA_REFCOUNT_UNREF with do {} while(0).
authortasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 29 Apr 2011 18:54:29 +0000 (18:54 +0000)
committertasn <tasn@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 29 Apr 2011 18:54:29 +0000 (18:54 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/eina@59042 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/include/eina_refcount.h

index e36c0f8..788995b 100644 (file)
@@ -62,8 +62,12 @@ typedef int Eina_Refcount;
 
 /** Used when removing a reference to an object. Free_Callback will automatically be called when necessary */
 #define EINA_REFCOUNT_UNREF(Variable, Free_Callback) \
-  if (--((Variable)->__refcount) == 0)              \
-    Free_Callback(Variable);
+   do                                                \
+     {                                               \
+        if (--((Variable)->__refcount) == 0)         \
+           Free_Callback(Variable);                  \
+     }                                               \
+   while (0)
 
 /** Get refcounting value */
 #define EINA_REFCOUNT_GET(Variable) (Variable)->__refcount