From 7c045c61f03abe38c0f07aab88c6715e8db04550 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 10 Jun 2014 00:15:44 +0400 Subject: [PATCH] Optimized for fast path --- ext/standard/array.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ext/standard/array.c b/ext/standard/array.c index 5446bb5f5a..b8b57d7cf4 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -197,12 +197,13 @@ static int php_array_key_compare(const void *a, const void *b TSRMLS_DC) /* {{{ return 0; } - if (Z_TYPE(result) == IS_DOUBLE) { + if (EXPECTED(Z_TYPE(result) == IS_LONG)) { + return ZEND_NORMALIZE_BOOL(Z_LVAL(result)); + } else if (Z_TYPE(result) == IS_DOUBLE) { return ZEND_NORMALIZE_BOOL(Z_DVAL(result)); } - convert_to_long(&result); - return ZEND_NORMALIZE_BOOL(Z_LVAL(result)); + return ZEND_NORMALIZE_BOOL(zval_get_long(&result)); } /* }}} */ @@ -372,12 +373,13 @@ static int php_array_data_compare(const void *a, const void *b TSRMLS_DC) /* {{{ return 0; } - if (Z_TYPE(result) == IS_DOUBLE) { + if (EXPECTED(Z_TYPE(result) == IS_LONG)) { + return ZEND_NORMALIZE_BOOL(Z_LVAL(result)); + } else if (Z_TYPE(result) == IS_DOUBLE) { return ZEND_NORMALIZE_BOOL(Z_DVAL(result)); } - convert_to_long(&result); - return ZEND_NORMALIZE_BOOL(Z_LVAL(result)); + return ZEND_NORMALIZE_BOOL(zval_get_long(&result)); } /* }}} */ -- 2.40.0