From 9f71179ca99e2670e968998ccb3a485db37e76e2 Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Wed, 18 Oct 2000 18:32:32 +0000 Subject: [PATCH] Back out circular references protection patch. This causes problems with serializing regular variables and object properties. We need a smarter way to tell whether we have serialized one node already. PR: #7291, #7294 --- ext/standard/var.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/ext/standard/var.c b/ext/standard/var.c index 8338959088..ac0dadc839 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -300,27 +300,25 @@ void php_var_serialize(pval *buf, pval **struc) continue; } - if (!(*data)->is_ref) { - switch (i) { - case HASH_KEY_IS_LONG: - MAKE_STD_ZVAL(d); - d->type = IS_LONG; - d->value.lval = index; - php_var_serialize(buf, &d); - FREE_ZVAL(d); - break; - case HASH_KEY_IS_STRING: - MAKE_STD_ZVAL(d); - d->type = IS_STRING; - d->value.str.val = key; - d->value.str.len = strlen(key); - php_var_serialize(buf, &d); - efree(key); - FREE_ZVAL(d); - break; - } - php_var_serialize(buf, data); + switch (i) { + case HASH_KEY_IS_LONG: + MAKE_STD_ZVAL(d); + d->type = IS_LONG; + d->value.lval = index; + php_var_serialize(buf, &d); + FREE_ZVAL(d); + break; + case HASH_KEY_IS_STRING: + MAKE_STD_ZVAL(d); + d->type = IS_STRING; + d->value.str.val = key; + d->value.str.len = strlen(key); + php_var_serialize(buf, &d); + efree(key); + FREE_ZVAL(d); + break; } + php_var_serialize(buf, data); } } STR_CAT(buf, "}", 1); -- 2.50.1