On Mon, 15 Jan 2007, Marcus Boerger wrote:
> Any comments?
Shouldn't you init is_temp here? As far as I can see it is not initialized in
every code path, and there is an if() using it in the 3rd patch element here:
> @@ -581,6 +581,7 @@ ZEND_API void zend_print_zval_r_ex(zend_
> HashTable *properties = NULL;
> zstr class_name = NULL_ZSTR;
> zend_uint clen;
> + int is_temp;
>
>
> if (Z_OBJ_HANDLER_P(expr, get_class_name)) {
> Z_OBJ_HANDLER_P(expr,
> get_class_name)(expr, &class_name, &clen, 0 TSRMLS_CC);
> @@ -593,8 +594,11 @@ ZEND_API void zend_print_zval_r_ex(zend_
> if (class_name.v) {
> efree(class_name.v);
> }
> - if (Z_OBJ_HANDLER_P(expr, get_properties)) {
> + if (Z_OBJ_HANDLER_P(expr, get_debug_info)) {
> + properties = Z_OBJ_HANDLER_P(expr,
> get_debug_info)(expr, &is_temp TSRMLS_CC);
> + } else if (Z_OBJ_HANDLER_P(expr,
> get_properties)) {
> properties = Z_OBJPROP_P(expr);
> + is_temp = 0;
> }
> if (properties) {
> if (++properties->nApplyCount>1) {
> @@ -604,6 +608,10 @@ ZEND_API void zend_print_zval_r_ex(zend_
> }
> print_hash(properties, indent, 1
> TSRMLS_CC);
> properties->nApplyCount--;
> + if (is_temp) {
> + zend_hash_destroy(properties);
> + efree(properties);
> + }
> }
> break;
> }
regards,
Derick
--
Derick Rethans
http://derickrethans.nl | http://ez.no | http://xdebug.org
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php