Justtechjobs.com Find a programming school near you






Online Campus Both


php-developer-list | 2000111

--- php-4.0.4_20001027/ext/standard/basic_functions.c.orig Thu Nov 2 17:20:38 2000 +++ php-4.0.4_20001027/ext/standard/basic_functions.c Thu Nov 2 17:41:57 2000 @@ -1951,7 +1951,7 @@ WRONG_PARAM_COUNT; } - zend_print_pval_r(*expr, 0); + zend_print_pval_r(*expr, 0, *expr); RETURN_TRUE; } --- php-4.0.4_20001027/Zend/zend.c.orig Thu Nov 2 17:38:19 2000 +++ php-4.0.4_20001027/Zend/zend.c Thu Nov 2 17:41:07 2000 @@ -75,7 +75,7 @@ #define PRINT_ZVAL_INDENT 4 -static void print_hash(HashTable *ht, int indent) +static void print_hash(HashTable *ht, int indent, zval *initial) { zval **tmp; char *string_key; @@ -103,7 +103,14 @@ break; } ZEND_PUTS("] => "); - zend_print_zval_r(*tmp, indent+PRINT_ZVAL_INDENT); + if (*tmp!=initial) + { + zend_print_zval_r(*tmp, indent+PRINT_ZVAL_INDENT, initial); + } + else + { + ZEND_PUTS("(recursion)"); + } ZEND_PUTS("\n"); zend_hash_move_forward(ht); } @@ -187,22 +194,22 @@ } -ZEND_API void zend_print_zval_r(zval *expr, int indent) +ZEND_API void zend_print_zval_r(zval *expr, int indent, zval *initial) { - zend_print_zval_r_ex(zend_write, expr, indent); + zend_print_zval_r_ex(zend_write, expr, indent, initial); } -ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent) +ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent, zval *initial) { switch(expr->type) { case IS_ARRAY: ZEND_PUTS("Array\n"); - print_hash(expr->value.ht,indent); + print_hash(expr->value.ht, indent, initial); break; case IS_OBJECT: zend_printf("%s Object\n", expr->value.obj.ce->name); - print_hash(expr->value.obj.properties, indent); + print_hash(expr->value.obj.properties, indent, initial); break; default: zend_print_variable(expr);