diff options
author | Antony Dovgal <tony2001@php.net> | 2007-01-22 08:23:08 +0000 |
---|---|---|
committer | Antony Dovgal <tony2001@php.net> | 2007-01-22 08:23:08 +0000 |
commit | 54732326075509a9aa63b21deb79a46e989aa1b1 (patch) | |
tree | e9b8dbed32a12a9bfd3e01b0f052618500bc3b70 | |
parent | 5444943d0f72f4d0d1f2ff6c9abf335bc09d243d (diff) | |
download | php-git-54732326075509a9aa63b21deb79a46e989aa1b1.tar.gz |
fix array_unique() to return array with any type of argument
-rw-r--r-- | ext/standard/array.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c index 7100d727b5..9a8ab5f30d 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -2515,7 +2515,7 @@ PHP_FUNCTION(array_change_key_case) Removes duplicate values from array */ PHP_FUNCTION(array_unique) { - zval **array; + zval **array, *tmp; HashTable *target_hash; Bucket *p; struct bucketindex { @@ -2534,9 +2534,8 @@ PHP_FUNCTION(array_unique) RETURN_FALSE; } - /* copy the argument array */ - *return_value = **array; - zval_copy_ctor(return_value); + array_init(return_value); + zend_hash_copy(Z_ARRVAL_P(return_value), target_hash, (copy_ctor_func_t) zval_add_ref, (void *)&tmp, sizeof(zval*)); if (target_hash->nNumOfElements <= 1) /* nothing to do */ return; |