1
0
mirror of https://github.com/php/php-src.git synced 2026-04-11 18:13:00 +02:00

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
This commit is contained in:
Sascha Schumann
2000-10-18 18:32:32 +00:00
parent 23defd97e9
commit 9f71179ca9

View File

@@ -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);