summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/array.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 998b568846..58bca29da8 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -3428,13 +3428,8 @@ static void php_array_intersect(INTERNAL_FUNCTION_PARAMETERS, int behavior, int
}
/* copy the argument array */
- RETVAL_ZVAL(&args[0], 1, 0);
- if (Z_ARRVAL_P(return_value) == &EG(symbol_table).ht) {
- HashTable *old_ht = Z_ARRVAL_P(return_value);
-
- ZVAL_NEW_ARR(return_value);
- zend_array_dup(Z_ARRVAL_P(return_value), old_ht);
- }
+ ZVAL_NEW_ARR(return_value);
+ zend_array_dup(Z_ARRVAL_P(return_value), Z_ARRVAL(args[0]));
/* go through the lists and look for common values */
while (Z_TYPE(ptrs[0]->val) != IS_UNDEF) {
@@ -3851,13 +3846,8 @@ static void php_array_diff(INTERNAL_FUNCTION_PARAMETERS, int behavior, int data_
}
/* copy the argument array */
- RETVAL_ZVAL(&args[0], 1, 0);
- if (Z_ARRVAL_P(return_value) == &EG(symbol_table).ht) {
- HashTable *old_ht = Z_ARRVAL_P(return_value);
-
- ZVAL_NEW_ARR(return_value);
- zend_array_dup(Z_ARRVAL_P(return_value), old_ht);
- }
+ ZVAL_NEW_ARR(return_value);
+ zend_array_dup(Z_ARRVAL_P(return_value), Z_ARRVAL(args[0]));
/* go through the lists and look for values of ptr[0] that are not in the others */
while (Z_TYPE(ptrs[0]->val) != IS_UNDEF) {