summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Zmievski <andrei@php.net>2000-12-11 05:36:24 +0000
committerAndrei Zmievski <andrei@php.net>2000-12-11 05:36:24 +0000
commit753e46657f49dc9d92fa1a3afdba9e5888d3df2a (patch)
tree409523c795fd28150a5141fbb9ff439616b11b5b
parent429c4c79223e186d87be1c1805be37abd5bfd2e8 (diff)
downloadphp-git-753e46657f49dc9d92fa1a3afdba9e5888d3df2a.tar.gz
Make php_array_merge() an API function.
-rw-r--r--ext/standard/array.c14
-rw-r--r--ext/standard/php_array.h1
2 files changed, 8 insertions, 7 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 2ae6f15b2c..ef7656bd34 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -1796,7 +1796,7 @@ PHP_FUNCTION(array_slice)
/* }}} */
-static void php_array_merge_impl(HashTable *dest, HashTable *src, int recursive)
+PHPAPI void php_array_merge(HashTable *dest, HashTable *src, int recursive)
{
zval **src_entry,
**dest_entry;
@@ -1812,8 +1812,8 @@ static void php_array_merge_impl(HashTable *dest, HashTable *src, int recursive)
(void **)&dest_entry) == SUCCESS) {
convert_to_array_ex(dest_entry);
convert_to_array_ex(src_entry);
- php_array_merge_impl(Z_ARRVAL_PP(dest_entry),
- Z_ARRVAL_PP(src_entry), recursive);
+ php_array_merge(Z_ARRVAL_PP(dest_entry),
+ Z_ARRVAL_PP(src_entry), recursive);
} else {
(*src_entry)->refcount++;
@@ -1833,7 +1833,7 @@ static void php_array_merge_impl(HashTable *dest, HashTable *src, int recursive)
}
}
-static void php_array_merge(INTERNAL_FUNCTION_PARAMETERS, int recursive)
+static void php_array_merge_wrapper(INTERNAL_FUNCTION_PARAMETERS, int recursive)
{
zval ***args = NULL;
int argc,
@@ -1856,7 +1856,7 @@ static void php_array_merge(INTERNAL_FUNCTION_PARAMETERS, int recursive)
for (i=0; i<argc; i++) {
convert_to_array_ex(args[i]);
- php_array_merge_impl(Z_ARRVAL_P(return_value), Z_ARRVAL_PP(args[i]), recursive);
+ php_array_merge(Z_ARRVAL_P(return_value), Z_ARRVAL_PP(args[i]), recursive);
}
efree(args);
@@ -1867,7 +1867,7 @@ static void php_array_merge(INTERNAL_FUNCTION_PARAMETERS, int recursive)
Merges elements from passed arrays into one array */
PHP_FUNCTION(array_merge)
{
- php_array_merge(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
+ php_array_merge_wrapper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
}
/* }}} */
@@ -1876,7 +1876,7 @@ PHP_FUNCTION(array_merge)
Recursively merges elements from passed arrays into one array */
PHP_FUNCTION(array_merge_recursive)
{
- php_array_merge(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
+ php_array_merge_wrapper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
}
/* }}} */
diff --git a/ext/standard/php_array.h b/ext/standard/php_array.h
index b02515e378..76d48ea330 100644
--- a/ext/standard/php_array.h
+++ b/ext/standard/php_array.h
@@ -75,6 +75,7 @@ PHP_FUNCTION(array_diff);
PHP_FUNCTION(array_sum);
HashTable* php_splice(HashTable *, int, int, zval ***, int, HashTable **);
+PHPAPI void php_array_merge(HashTable *dest, HashTable *src, int recursive);
int multisort_compare(const void *a, const void *b);
typedef struct {