]> granicus.if.org Git - php/commitdiff
Back out circular references protection patch.
authorSascha Schumann <sas@php.net>
Wed, 18 Oct 2000 18:32:32 +0000 (18:32 +0000)
committerSascha Schumann <sas@php.net>
Wed, 18 Oct 2000 18:32:32 +0000 (18:32 +0000)
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

index 8338959088dd01fb180eb7d7530054f4b21a4212..ac0dadc839218092a1dde0e4ceffe790323992b9 100644 (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);