From c0172aa2bdb9ea223c8491bdb300995b93a857a0 Mon Sep 17 00:00:00 2001 From: twosee Date: Sun, 12 Jul 2020 03:08:42 +0800 Subject: [PATCH] debug_zval_dump(): Don't skip recursion detection on first level A complement to ae6f45ad45e072260d93f828d81fee9548123044 Closes GH-5843. --- ext/standard/var.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/ext/standard/var.c b/ext/standard/var.c index f289f75ab9..17540f56cd 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -304,14 +304,12 @@ again: case IS_ARRAY: myht = Z_ARRVAL_P(struc); if (!(GC_FLAGS(myht) & GC_IMMUTABLE)) { - if (level > 1) { - if (GC_IS_RECURSIVE(myht)) { - PUTS("*RECURSION*\n"); - return; - } - GC_PROTECT_RECURSION(myht); + if (GC_IS_RECURSIVE(myht)) { + PUTS("*RECURSION*\n"); + return; } GC_ADDREF(myht); + GC_PROTECT_RECURSION(myht); } count = zend_array_count(myht); php_printf("%sarray(%d) refcount(%u){\n", COMMON, count, Z_REFCOUNTED_P(struc) ? Z_REFCOUNT_P(struc) - 1 : 1); @@ -319,9 +317,7 @@ again: zval_array_element_dump(val, index, key, level); } ZEND_HASH_FOREACH_END(); if (!(GC_FLAGS(myht) & GC_IMMUTABLE)) { - if (level > 1) { - GC_UNPROTECT_RECURSION(myht); - } + GC_UNPROTECT_RECURSION(myht); GC_DELREF(myht); } if (level > 1) { -- 2.50.1