com php-src: Imporoved EXPECTED/UNEXPECTED macros to support not boolean expressions. Fixed invalid EXPECTED() usage.: Zend/zend.h Zend/zend_arena.h
| From: | Dmitry Stogov | Date: | Wed, 09 Jul 2014 15:32:09 +0000 |
| Subject: | com php-src: Imporoved EXPECTED/UNEXPECTED macros to support not boolean expressions. Fixed invalid EXPECTED() usage.: Zend/zend.h Zend/zend_arena.h | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-79363@lists.php.net to get a copy of this message | ||
Commit: c85c795e4617844c6544715cf8c87bd104680b8a
Author: Dmitry Stogov <dmitry@zend.com> Wed, 9 Jul 2014 19:32:09 +0400
Parents: 19729aa7fe0262b1bae2f96e48330f5404a5dcaf
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=c85c795e4617844c6544715cf8c87bd104680b8a
Log:
Imporoved EXPECTED/UNEXPECTED macros to support not boolean expressions.
Fixed invalid EXPECTED() usage.
Changed paths:
M Zend/zend.h
M Zend/zend_arena.h
Diff:
diff --git a/Zend/zend.h b/Zend/zend.h
index 6f5eee1..2f1f239 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 69ac668..daa976d 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);