summaryrefslogtreecommitdiff
path: root/ext/spl/php_spl.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl/php_spl.c')
-rw-r--r--ext/spl/php_spl.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c
index c80adaed94..da520d62e0 100644
--- a/ext/spl/php_spl.c
+++ b/ext/spl/php_spl.c
@@ -855,21 +855,20 @@ PHPAPI zend_string *php_spl_object_hash(zval *obj) /* {{{*/
}
/* }}} */
-int spl_build_class_list_string(zval *entry, char **list) /* {{{ */
+static void spl_build_class_list_string(zval *entry, char **list) /* {{{ */
{
char *res;
spprintf(&res, 0, "%s, %s", *list, Z_STRVAL_P(entry));
efree(*list);
*list = res;
- return ZEND_HASH_APPLY_KEEP;
} /* }}} */
/* {{{ PHP_MINFO(spl)
*/
PHP_MINFO_FUNCTION(spl)
{
- zval list;
+ zval list, *zv;
char *strg;
php_info_print_table_start();
@@ -878,7 +877,9 @@ PHP_MINFO_FUNCTION(spl)
array_init(&list);
SPL_LIST_CLASSES(&list, 0, 1, ZEND_ACC_INTERFACE)
strg = estrdup("");
- zend_hash_apply_with_argument(Z_ARRVAL_P(&list), (apply_func_arg_t)spl_build_class_list_string, &strg);
+ ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&list), zv) {
+ spl_build_class_list_string(zv, &strg);
+ } ZEND_HASH_FOREACH_END();
zend_array_destroy(Z_ARR(list));
php_info_print_table_row(2, "Interfaces", strg + 2);
efree(strg);
@@ -886,7 +887,9 @@ PHP_MINFO_FUNCTION(spl)
array_init(&list);
SPL_LIST_CLASSES(&list, 0, -1, ZEND_ACC_INTERFACE)
strg = estrdup("");
- zend_hash_apply_with_argument(Z_ARRVAL_P(&list), (apply_func_arg_t)spl_build_class_list_string, &strg);
+ ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(&list), zv) {
+ spl_build_class_list_string(zv, &strg);
+ } ZEND_HASH_FOREACH_END();
zend_array_destroy(Z_ARR(list));
php_info_print_table_row(2, "Classes", strg + 2);
efree(strg);