cvs: php4 /ext/standard var.c

From: Date: Fri, 29 Sep 2000 18:48:40 +0000
Subject: cvs: php4 /ext/standard var.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-1877@lists.php.net to get a copy of this message
sas Fri Sep 29 11:48:40 2000 EDT Modified files: /php4/ext/standard var.c Log: Don't try to serialize references. Circular references would otherwise kill PHP, as the serializer would overrun the stack. Index: php4/ext/standard/var.c diff -u php4/ext/standard/var.c:1.72 php4/ext/standard/var.c:1.73 --- php4/ext/standard/var.c:1.72 Tue Aug 29 04:09:20 2000 +++ php4/ext/standard/var.c Fri Sep 29 11:48:40 2000 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: var.c,v 1.72 2000/08/29 11:09:20 thies Exp $ */ +/* $Id: var.c,v 1.73 2000/09/29 18:48:40 sas Exp $ */ /* {{{ includes @@ -300,25 +300,27 @@ continue; } - 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; + 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); } - php_var_serialize(buf, data); } } STR_CAT(buf, "}", 1);

« previous php.cvs (#1877) next »