Use zval_ptr_dtor() to free variables as soon as they hit refcount of 0.

Note:  You should not be using ZVAL_DELREF() in day to day usage.  Instead,
       you should use zval_ptr_dtor().  Use ZVAL_DELREF() only if you're
       messing with the refcount directly and know what you're doing.
Note #2:  For clarity, if you want to initialize a new zval with a refcount
          of 0, it's best to do that directly, instead of using ZVAL_DELREF
          after allocating the zval...
This commit is contained in:
Zeev Suraski 2004-02-15 12:58:19 +00:00
parent a2e1844de9
commit 7c710a9f9b
4 changed files with 5 additions and 5 deletions

View file

@ -281,7 +281,7 @@ void php_add_session_var(char *name, size_t namelen TSRMLS_DC)
zval *empty_var;
ALLOC_INIT_ZVAL(empty_var); /* this sets refcount to 1 */
ZVAL_DELREF(empty_var); /* our module does not maintain a ref */
empty_var->refcount = 0; /* our module does not maintain a ref */
/* The next call will increase refcount by NR_OF_SYM_TABLES==2 */
zend_set_hash_symbol(empty_var, name, namelen, 1, 2, Z_ARRVAL_P(PS(http_session_vars)), &EG(symbol_table));
} else if (sym_global == NULL) {