From: lucas Date: Fri, 9 Jul 2010 03:27:04 +0000 (+0000) Subject: Add missing macros X-Git-Tag: 2.0_alpha~70^2~507 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b0ba55b15bad4344e9bd3e5ff5160b08f72c4521;p=framework%2Fuifw%2Feina.git Add missing macros Add missing EINA_SAFETY_ON_NULL_GOTO and define all the *GOTOs macros when safety checks are disabled. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/eina@50138 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/include/eina_safety_checks.h b/src/include/eina_safety_checks.h index 1c0b4dd..5a1c2df 100644 --- a/src/include/eina_safety_checks.h +++ b/src/include/eina_safety_checks.h @@ -102,6 +102,18 @@ EAPI extern Eina_Error EINA_ERROR_SAFETY_FAILED; } \ while (0) +#define EINA_SAFETY_ON_NULL_GOTO(exp, label) \ + do \ + { \ + if (EINA_UNLIKELY((exp) == NULL)) \ + { \ + eina_error_set(EINA_ERROR_SAFETY_FAILED); \ + EINA_LOG_ERR("%s", "safety check failed: " #exp " == NULL"); \ + goto label; \ + } \ + } \ + while (0) + #define EINA_SAFETY_ON_TRUE_RETURN(exp) \ do \ { \ @@ -189,18 +201,27 @@ EAPI extern Eina_Error EINA_ERROR_SAFETY_FAILED; #define EINA_SAFETY_ON_NULL_RETURN_VAL(exp, val) \ do { if (0 && (exp) == NULL) (void)val; } while (0) +#define EINA_SAFETY_ON_NULL_GOTO(exp, label) \ + do { if (0 && (exp) == NULL) goto label; } while (0) + #define EINA_SAFETY_ON_TRUE_RETURN(exp) \ do { (void)(exp); } while (0) #define EINA_SAFETY_ON_TRUE_RETURN_VAL(exp, val) \ do { if (0 && (exp)) (void)val; } while (0) +#define EINA_SAFETY_ON_TRUE_GOTO(exp, label) \ + do { if (0 && (exp)) goto label; } while (0) + #define EINA_SAFETY_ON_FALSE_RETURN(exp) \ do { (void)(!(exp)); } while (0) #define EINA_SAFETY_ON_FALSE_RETURN_VAL(exp, val) \ do { if (0 && !(exp)) (void)val; } while (0) +#define EINA_SAFETY_ON_FALSE_GOTO(exp, label) \ + do { if (0 && !(exp)) goto label; } while (0) + #endif /* safety checks macros */ #endif /* EINA_SAFETY_CHECKS_H_ */