From: Dmitry Stogov Date: Mon, 11 Jan 2010 10:07:10 +0000 (+0000) Subject: Fixed bug #50519 (segfault in garbage collection when using set_error_handler and... X-Git-Tag: php-5.4.0alpha1~462 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d2f681cecd43dd40c369b5e29568b87252134e6f;p=php Fixed bug #50519 (segfault in garbage collection when using set_error_handler and DomDocument) --- diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index a607faa98e..dce98ba22c 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -151,13 +151,6 @@ ZEND_API int zend_print_variable(zval *var) } -#if ZEND_DEBUG -ZEND_API void _zval_copy_ctor_wrapper(zval *zvalue) -{ - zval_copy_ctor(zvalue); -} - - ZEND_API void _zval_dtor_wrapper(zval *zvalue) { TSRMLS_FETCH(); @@ -167,6 +160,13 @@ ZEND_API void _zval_dtor_wrapper(zval *zvalue) } +#if ZEND_DEBUG +ZEND_API void _zval_copy_ctor_wrapper(zval *zvalue) +{ + zval_copy_ctor(zvalue); +} + + ZEND_API void _zval_internal_dtor_wrapper(zval *zvalue) { zval_internal_dtor(zvalue); diff --git a/Zend/zend_variables.h b/Zend/zend_variables.h index 4a9fd25b2f..9304a67c0e 100644 --- a/Zend/zend_variables.h +++ b/Zend/zend_variables.h @@ -50,26 +50,25 @@ ZEND_API int zend_print_variable(zval *var); ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC); ZEND_API void _zval_internal_dtor(zval *zvalue ZEND_FILE_LINE_DC); ZEND_API void _zval_internal_ptr_dtor(zval **zvalue ZEND_FILE_LINE_DC); +ZEND_API void _zval_dtor_wrapper(zval *zvalue); #define zval_copy_ctor(zvalue) _zval_copy_ctor((zvalue) ZEND_FILE_LINE_CC) #define zval_dtor(zvalue) _zval_dtor((zvalue) ZEND_FILE_LINE_CC) #define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC) #define zval_internal_dtor(zvalue) _zval_internal_dtor((zvalue) ZEND_FILE_LINE_CC) #define zval_internal_ptr_dtor(zvalue) _zval_internal_ptr_dtor((zvalue) ZEND_FILE_LINE_CC) +#define zval_dtor_wrapper _zval_dtor_wrapper #if ZEND_DEBUG ZEND_API void _zval_copy_ctor_wrapper(zval *zvalue); -ZEND_API void _zval_dtor_wrapper(zval *zvalue); ZEND_API void _zval_ptr_dtor_wrapper(zval **zval_ptr); ZEND_API void _zval_internal_dtor_wrapper(zval *zvalue); ZEND_API void _zval_internal_ptr_dtor_wrapper(zval **zvalue); #define zval_copy_ctor_wrapper _zval_copy_ctor_wrapper -#define zval_dtor_wrapper _zval_dtor_wrapper #define zval_ptr_dtor_wrapper _zval_ptr_dtor_wrapper #define zval_internal_dtor_wrapper _zval_internal_dtor_wrapper #define zval_internal_ptr_dtor_wrapper _zval_internal_ptr_dtor_wrapper #else #define zval_copy_ctor_wrapper _zval_copy_ctor_func -#define zval_dtor_wrapper _zval_dtor_func #define zval_ptr_dtor_wrapper _zval_ptr_dtor #define zval_internal_dtor_wrapper _zval_internal_dtor #define zval_internal_ptr_dtor_wrapper _zval_internal_ptr_dtor