From: Dmitry Stogov Date: Mon, 9 Jun 2014 20:15:44 +0000 (+0400) Subject: Optimized for fast path X-Git-Tag: POST_PHPNG_MERGE~210 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7c045c61f03abe38c0f07aab88c6715e8db04550;p=php Optimized for fast path --- 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)); } /* }}} */