From: Sascha Schumann Date: Wed, 18 Oct 2000 18:32:32 +0000 (+0000) Subject: Back out circular references protection patch. X-Git-Tag: php-4.0.4RC3~631 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9f71179ca99e2670e968998ccb3a485db37e76e2;p=php 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 --- 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);