From 00c53f261b9afa206395a8ee23722ce911a070fd Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Fri, 29 Apr 2011 18:54:29 +0000 Subject: [PATCH] Eina refcount: Wrap EINA_REFCOUNT_UNREF with do {} while(0). SVN revision: 59042 --- legacy/eina/src/include/eina_refcount.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/legacy/eina/src/include/eina_refcount.h b/legacy/eina/src/include/eina_refcount.h index e36c0f88c4..788995bee3 100644 --- a/legacy/eina/src/include/eina_refcount.h +++ b/legacy/eina/src/include/eina_refcount.h @@ -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