Waste Management
| From: | herrwitten@php.net | Date: | Mon, 04 Jul 2005 04:47:16 +0000 |
| Subject: | Waste Management | ||
| Groups: | php.pecl.dev | ||
| Request: | Send a blank email to pecl-dev+get-2536@lists.php.net to get a copy of this message | ||
When and where do I deallocate.
Take this code for example:
MAKE_STD_ZVAL(delegator->_delegates);
array_init(delegator->_delegates);
ZEND_SET_SYMBOL(delegator->zendObject.properties, "_delegates", delegator->_delegates);
It works the same as:
MAKE_STD_ZVAL(delegator->_delegates);
efree(delegator->_delegates);
efree(delegator->_delegates);
array_init(delegator->_delegates);
ZEND_SET_SYMBOL(delegator->zendObject.properties, "_delegates", delegator->_delegates);
However,
if I add a third efree anywhere:
MAKE_STD_ZVAL(delegator->_delegates);
efree(delegator->_delegates);
efree(delegator->_delegates);
efree(delegator->_delegates);
array_init(delegator->_delegates);
ZEND_SET_SYMBOL(delegator->zendObject.properties, "_delegates", delegator->_delegates);
Then it is as if the symbol were not in the object.
and any more frees produces errors.
Also, what am i supposed to use to deallocate? There are millions of macros.
Thanks for the help,
Witten