RE: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_builtin_functions.c php-src NEWS
| From: | Andi Gutmans | Date: | Fri, 04 Nov 2005 00:18:35 +0000 |
| Subject: | RE: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_builtin_functions.c php-src NEWS | ||
| References: | 1 2 | Groups: | php.zend-engine.cvs |
| Request: | Send a blank email to php-zend-engine-cvs+get-4322@lists.php.net to get a copy of this message | ||
Yep, I think it can be useful but unless we have a bullet proof implementation (which we don't feel is a hack and might break), it's best not to do it. I'm coming in kind of late so I'll look into whether this was resolved as I read my emails.
Andi
At 12:35 PM 10/31/2005, Dmitry Stogov wrote:
-----Original Message----- From: Derick Rethans [mailto:derick@php.net] Sent: Monday, October 31, 2005 11:32 PM To: Dmitry Stogov Cc: 'Zeev Suraski'; 'Sebastian Bergmann'; zend-engine-cvs@lists.php.net; 'Andi Gutmans'; 'Marcus Boerger'; 'Ilia Alshanetsky' Subject: RE: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend_builtin_functions.c php-src NEWS On Mon, 31 Oct 2005, Dmitry Stogov wrote:The problem is conceptual. Before this patch PHP looked for EG(exception) after calling constructor and disabled destructor calling.We can also revert it simply, as I don't see a huge point in having the object *itself* in the backtrace... Derick Of course we can. :) But probably $this can be really useful in debug backtrace. Dmitry.if (EG(exception) && ctor_opline) { if (RETURN_VALUE_USED(ctor_opline)) { EG(This)->refcount--; } if (EG(This)->refcount == 1) { zend_object_store_ctor_failed(EG(This) TSRMLS_CC); } }Now the object also stored in backtrace so refcount is more then 1. Probably we can check refcount with 2, but I am not sure that is a proper way.