com php-src: Micro optimization for array_diff: ext/stand ard/array.c
| From: | Xinchen Hui | Date: | Mon, 19 Jan 2015 13:08:35 +0000 |
| Subject: | com php-src: Micro optimization for array_diff: ext/stand ard/array.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-84177@lists.php.net to get a copy of this message | ||
Commit: d917484ab7678930bc6867caabed04ecec0baafc
Author: Xinchen Hui <laruence@php.net> Mon, 19 Jan 2015 08:06:03 -0500
Parents: ac9a1a7b0c54b6e7f0ddfdc8403fef354eb03d9e
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=d917484ab7678930bc6867caabed04ecec0baafc
Log:
Micro optimization for array_diff
Changed paths:
M ext/standard/array.c
Diff:
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 808992a..91b6661 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -4090,6 +4090,7 @@ PHP_FUNCTION(array_diff)
zval *value;
zend_string *str, *key;
zend_long idx;
+ zval dummy;
if (ZEND_NUM_ARGS() < 2) {
php_error_docref(NULL, E_WARNING, "at least 2 parameters are required, %d given",
ZEND_NUM_ARGS());
@@ -4120,12 +4121,13 @@ PHP_FUNCTION(array_diff)
return;
}
+ ZVAL_NULL(&dummy);
/* create exclude map */
zend_hash_init(&exclude, num, NULL, NULL, 0);
for (i = 1; i < argc; i++) {
ZEND_HASH_FOREACH_VAL_IND(Z_ARRVAL(args[i]), value) {
str = zval_get_string(value);
- zend_hash_add_empty_element(&exclude, str);
+ zend_hash_add(&exclude, str, &dummy);
zend_string_release(str);
} ZEND_HASH_FOREACH_END();
}