com php-src: Optimized for fast path: ext/standard/array.c
| From: | Dmitry Stogov | Date: | Mon, 09 Jun 2014 20:15:44 +0000 |
| Subject: | com php-src: Optimized for fast path: ext/standard/array.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-78783@lists.php.net to get a copy of this message | ||
Commit: 7c045c61f03abe38c0f07aab88c6715e8db04550
Author: Dmitry Stogov <dmitry@zend.com> Tue, 10 Jun 2014 00:15:44 +0400
Parents: 9a9bb8877eee9e64f33e1e5a2e1d13ca015dd3d6
Branches: phpng
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=7c045c61f03abe38c0f07aab88c6715e8db04550
Log:
Optimized for fast path
Changed paths:
M ext/standard/array.c
Diff:
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 5446bb5..b8b57d7 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));
}
/* }}} */