cvs: php4 /ext/session session.c
| From: | Stanislav Malyshev | Date: | Mon, 20 Nov 2000 12:39:14 +0000 |
| Subject: | cvs: php4 /ext/session session.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-2698@lists.php.net to get a copy of this message | ||
stas Mon Nov 20 04:39:14 2000 EDT
Modified files:
/php4/ext/session session.c
Log:
Move "replace value" logic to Zend
Index: php4/ext/session/session.c
diff -u php4/ext/session/session.c:1.185 php4/ext/session/session.c:1.186
--- php4/ext/session/session.c:1.185 Sun Nov 19 05:13:36 2000
+++ php4/ext/session/session.c Mon Nov 20 04:39:14 2000
@@ -221,25 +221,15 @@
if (PG(register_globals)) {
zval **old_symbol;
- if(zend_hash_find(&EG(symbol_table),name,namelen+1,&old_symbol) == SUCCESS) {
+ if(zend_hash_find(&EG(symbol_table),name,namelen+1,(void *)&old_symbol) == SUCCESS) {
/*
There where old one, we need to replace it accurately.
hash_update in zend_set_hash_symbol is not good, because
it will leave referenced variables (such as local instances
of a global variable) dangling.
*/
- int is_ref, refcount;
-
- zval_dtor(*old_symbol);
-
- /* replace variable contents while saving is_ref and reference
- count */
- is_ref = (*old_symbol)->is_ref;
- refcount = (*old_symbol)->refcount;
- **old_symbol = *state_val_copy;
- (*old_symbol)->is_ref = is_ref;
- (*old_symbol)->refcount = refcount;
-
+
+ REPLACE_ZVAL_VALUE(old_symbol,state_val_copy,0);
FREE_ZVAL(state_val_copy);
zend_set_hash_symbol(*old_symbol, name, namelen, 0, 1, Z_ARRVAL_P(PS(http_session_vars)));