diff options
Diffstat (limited to 'ext/spl/php_spl.c')
-rw-r--r-- | ext/spl/php_spl.c | 13 |
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); |