From: Dmitry Stogov Date: Wed, 9 Jul 2014 15:32:09 +0000 (+0400) Subject: Imporoved EXPECTED/UNEXPECTED macros to support not boolean expressions. X-Git-Tag: POST_PHPNG_MERGE~67 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c85c795e4617844c6544715cf8c87bd104680b8a;p=php Imporoved EXPECTED/UNEXPECTED macros to support not boolean expressions. Fixed invalid EXPECTED() usage. --- diff --git a/Zend/zend.h b/Zend/zend.h index 6f5eee1138..2f1f239732 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -355,8 +355,8 @@ void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((nore #endif /* ZEND_DEBUG */ #if (defined (__GNUC__) && __GNUC__ > 2 ) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) -# define EXPECTED(condition) __builtin_expect(condition, 1) -# define UNEXPECTED(condition) __builtin_expect(condition, 0) +# define EXPECTED(condition) __builtin_expect(!(!(condition)), 1) +# define UNEXPECTED(condition) __builtin_expect(!(!(condition)), 0) #else # define EXPECTED(condition) (condition) # define UNEXPECTED(condition) (condition) diff --git a/Zend/zend_arena.h b/Zend/zend_arena.h index 69ac6687ef..daa976d1e3 100644 --- a/Zend/zend_arena.h +++ b/Zend/zend_arena.h @@ -63,7 +63,7 @@ static zend_always_inline void* zend_arena_alloc(zend_arena **arena_ptr, size_t arena->ptr = ptr + size; } else { size_t arena_size = - (UNEXPECTED(size + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena))) > (arena->end - (char*) arena)) ? + UNEXPECTED((size + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena))) > (arena->end - (char*) arena)) ? (size + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena))) : (arena->end - (char*) arena); zend_arena *new_arena = (zend_arena*)emalloc(arena_size);