Skip to content

Commit c0172aa

Browse files
committed
debug_zval_dump(): Don't skip recursion detection on first level
A complement to ae6f45a Closes GH-5843.
1 parent 6cf2252 commit c0172aa

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

ext/standard/var.c

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -304,24 +304,20 @@ PHPAPI void php_debug_zval_dump(zval *struc, int level) /* {{{ */
304304
case IS_ARRAY:
305305
myht = Z_ARRVAL_P(struc);
306306
if (!(GC_FLAGS(myht) & GC_IMMUTABLE)) {
307-
if (level > 1) {
308-
if (GC_IS_RECURSIVE(myht)) {
309-
PUTS("*RECURSION*\n");
310-
return;
311-
}
312-
GC_PROTECT_RECURSION(myht);
307+
if (GC_IS_RECURSIVE(myht)) {
308+
PUTS("*RECURSION*\n");
309+
return;
313310
}
314311
GC_ADDREF(myht);
312+
GC_PROTECT_RECURSION(myht);
315313
}
316314
count = zend_array_count(myht);
317315
php_printf("%sarray(%d) refcount(%u){\n", COMMON, count, Z_REFCOUNTED_P(struc) ? Z_REFCOUNT_P(struc) - 1 : 1);
318316
ZEND_HASH_FOREACH_KEY_VAL_IND(myht, index, key, val) {
319317
zval_array_element_dump(val, index, key, level);
320318
} ZEND_HASH_FOREACH_END();
321319
if (!(GC_FLAGS(myht) & GC_IMMUTABLE)) {
322-
if (level > 1) {
323-
GC_UNPROTECT_RECURSION(myht);
324-
}
320+
GC_UNPROTECT_RECURSION(myht);
325321
GC_DELREF(myht);
326322
}
327323
if (level > 1) {

0 commit comments

Comments
 (0)