> Can you give me a concrete example of when you think this macro doesn't
> behave properly? If it's correct, I'll try to fix it. Note that the last
> time you had problems with this (and other) macros these were actually bugs
> in the session module.
That was another instance showing the inherent lack of
abstraction in this particular API. What should be a black
box is a test of familiarity with implementation details.
<?php
$foo = $bar = $a;
@session_start();
$_SESSION['foo'] = $_SESSION['bar'] = $a;
All four zvals are initialized using an undefined variable.
During the shutdown phase, this occurs:
zval **val;
ht = Z_ARRVAL_P(PS(http_session_vars));
zend_hash_find(&EG(symbol_table), "foo", &val);
ZEND_SET_SYMBOL_WITH_LENGTH(ht, "foo", *val,
(*val)->refcount + 1 , 1);
zend_hash_find(&EG(symbol_table), "bar", &val);
/* crash in FREE_ZVAL */
ZEND_SET_SYMBOL_WITH_LENGTH(ht, "bar", *val,
(*val)->refcount + 1 , 1);
The contents of val at each stage can be seen here:
http://news.php.net/article.php?group=php.cvs&article=22706
- Sascha
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php