cvs: ZendEngine2 / zend_execute.c zend_execute_API.c

From: Date: Tue, 06 May 2008 16:02:51 +0000
Subject: cvs: ZendEngine2 / zend_execute.c zend_execute_API.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-6670@lists.php.net to get a copy of this message
dmitry Tue May 6 16:02:51 2008 UTC Modified files: /ZendEngine2 zend_execute.c zend_execute_API.c Log: GC fix http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute.c?r1=1.795&r2=1.796&diff_format=u Index: ZendEngine2/zend_execute.c diff -u ZendEngine2/zend_execute.c:1.795 ZendEngine2/zend_execute.c:1.796 --- ZendEngine2/zend_execute.c:1.795 Mon May 5 11:02:45 2008 +++ ZendEngine2/zend_execute.c Tue May 6 16:02:50 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.c,v 1.795 2008/05/05 11:02:45 dmitry Exp $ */ +/* $Id: zend_execute.c,v 1.796 2008/05/06 16:02:50 dmitry Exp $ */ #define ZEND_INTENSIVE_DEBUGGING 0 @@ -85,9 +85,13 @@ static inline void zend_pzval_unlock_free_func(zval *z) /* {{{ */ { if (!Z_DELREF_P(z)) { - GC_REMOVE_ZVAL_FROM_BUFFER(z); - zval_dtor(z); - safe_free_zval_ptr(z); + TSRMLS_FETCH(); + + if (z != &EG(uninitialized_zval)) { + GC_REMOVE_ZVAL_FROM_BUFFER(z); + zval_dtor(z); + efree(z); + } } } /* }}} */ @@ -778,9 +782,11 @@ } else { Z_ADDREF_P(value); *variable_ptr_ptr = value; - GC_REMOVE_ZVAL_FROM_BUFFER(variable_ptr); - zendi_zval_dtor(*variable_ptr); - safe_free_zval_ptr(variable_ptr); + if (variable_ptr != &EG(uninitialized_zval)) { + GC_REMOVE_ZVAL_FROM_BUFFER(variable_ptr); + zval_dtor(variable_ptr); + efree(variable_ptr); + } return value; } } else { http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute_API.c?r1=1.445&r2=1.446&diff_format=u Index: ZendEngine2/zend_execute_API.c diff -u ZendEngine2/zend_execute_API.c:1.445 ZendEngine2/zend_execute_API.c:1.446 --- ZendEngine2/zend_execute_API.c:1.445 Tue Apr 29 09:18:43 2008 +++ ZendEngine2/zend_execute_API.c Tue May 6 16:02:50 2008 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute_API.c,v 1.445 2008/04/29 09:18:43 dmitry Exp $ */ +/* $Id: zend_execute_API.c,v 1.446 2008/05/06 16:02:50 dmitry Exp $ */ #include <stdio.h> #include <signal.h> @@ -445,9 +445,13 @@ #endif Z_DELREF_PP(zval_ptr); if (Z_REFCOUNT_PP(zval_ptr) == 0) { - GC_REMOVE_ZVAL_FROM_BUFFER(*zval_ptr); - zval_dtor(*zval_ptr); - safe_free_zval_ptr_rel(*zval_ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC); + TSRMLS_FETCH(); + + if (*zval_ptr != &EG(uninitialized_zval)) { + GC_REMOVE_ZVAL_FROM_BUFFER(*zval_ptr); + zval_dtor(*zval_ptr); + efree_rel(*zval_ptr); + } } else { TSRMLS_FETCH();

« previous php.zend-engine.cvs (#6670) next »