From c85c795e4617844c6544715cf8c87bd104680b8a Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 9 Jul 2014 19:32:09 +0400 Subject: [PATCH] Imporoved EXPECTED/UNEXPECTED macros to support not boolean expressions. Fixed invalid EXPECTED() usage. --- Zend/zend.h | 4 ++-- Zend/zend_arena.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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); -- 2.50.1