From f1fb77d1aab203ae7a056cc70b34d4c652f0e1ad Mon Sep 17 00:00:00 2001 From: Ilia Alshanetsky Date: Sun, 11 Jun 2006 16:28:24 +0000 Subject: [PATCH] Make zend_print_zval_r_ex() use the write callback function. --- Zend/zend.c | 53 +++++++++++++++++++++++++++++++---------------------- Zend/zend.h | 2 ++ 2 files changed, 33 insertions(+), 22 deletions(-) diff --git a/Zend/zend.c b/Zend/zend.c index e12598e63d..63785613c7 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -107,7 +107,7 @@ static uint zend_version_info_length; #define PRINT_ZVAL_INDENT 4 -static void print_hash(HashTable *ht, int indent, zend_bool is_object TSRMLS_DC) +static void print_hash(zend_write_func_t write_func, HashTable *ht, int indent, zend_bool is_object TSRMLS_DC) { zval **tmp; char *string_key; @@ -117,48 +117,52 @@ static void print_hash(HashTable *ht, int indent, zend_bool is_object TSRMLS_DC) int i; for (i=0; i "); - zend_print_zval_r(*tmp, indent+PRINT_ZVAL_INDENT TSRMLS_CC); - ZEND_PUTS("\n"); + ZEND_PUTS_EX("] => "); + zend_print_zval_r_ex(zend_write, *tmp, indent+PRINT_ZVAL_INDENT TSRMLS_CC); + ZEND_PUTS_EX("\n"); zend_hash_move_forward_ex(ht, &iterator); } indent -= PRINT_ZVAL_INDENT; for (i=0; itype) { case IS_ARRAY: - ZEND_PUTS("Array\n"); + ZEND_PUTS_EX("Array\n"); if (++expr->value.ht->nApplyCount>1) { - ZEND_PUTS(" *RECURSION*"); + ZEND_PUTS_EX(" *RECURSION*"); expr->value.ht->nApplyCount--; return; } - print_hash(expr->value.ht, indent, 0 TSRMLS_CC); + print_hash(write_func, expr->value.ht, indent, 0 TSRMLS_CC); expr->value.ht->nApplyCount--; break; case IS_OBJECT: @@ -372,7 +376,12 @@ ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int if (Z_OBJ_HANDLER_P(expr, get_class_name)) { Z_OBJ_HANDLER_P(expr, get_class_name)(expr, &class_name, &clen, 0 TSRMLS_CC); } - zend_printf("%s Object\n", class_name?class_name:"Unknown Class"); + if (class_name) { + ZEND_PUTS_EX(class_name); + } else { + ZEND_PUTS_EX("Unknown Class"); + } + ZEND_PUTS_EX(" Object\n"); if (class_name) { efree(class_name); } @@ -381,17 +390,17 @@ ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int } if (properties) { if (++properties->nApplyCount>1) { - ZEND_PUTS(" *RECURSION*"); + ZEND_PUTS_EX(" *RECURSION*"); properties->nApplyCount--; return; } - print_hash(properties, indent, 1 TSRMLS_CC); + print_hash(write_func, properties, indent, 1 TSRMLS_CC); properties->nApplyCount--; } break; } default: - zend_print_variable(expr); + zend_print_zval_ex(write_func, expr, indent); break; } } diff --git a/Zend/zend.h b/Zend/zend.h index 7d4ea5b52f..dfc26b958b 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -502,7 +502,9 @@ END_EXTERN_C() /* output support */ #define ZEND_WRITE(str, str_len) zend_write((str), (str_len)) +#define ZEND_WRITE_EX(str, str_len) write_func((str), (str_len)) #define ZEND_PUTS(str) zend_write((str), strlen((str))) +#define ZEND_PUTS_EX(str) write_func((str), strlen((str))) #define ZEND_PUTC(c) zend_write(&(c), 1), (c) -- 2.50.1