diff options
author | Xinchen Hui <laruence@php.net> | 2015-01-19 08:06:03 -0500 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2015-01-19 08:08:35 -0500 |
commit | d917484ab7678930bc6867caabed04ecec0baafc (patch) | |
tree | 19ceee58211eff48e2479c76cb12b93e334850a6 /ext | |
parent | ac9a1a7b0c54b6e7f0ddfdc8403fef354eb03d9e (diff) | |
download | php-git-d917484ab7678930bc6867caabed04ecec0baafc.tar.gz |
Micro optimization for array_diff
Diffstat (limited to 'ext')
-rw-r--r-- | ext/standard/array.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 808992a271..91b66615b1 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(); } |