Hi Tony,

This commit breaks the build, see:

http://windows.php.net/downloads/snaps/trunk-ts-windows-vc9-x86/logs/r309857/compile.txt

Not sure yet why it fails. Does it work for you?

On Thu, Mar 31, 2011 at 1:59 PM, Antony Dovgal <tony2...@php.net> wrote:
> tony2001                                 Thu, 31 Mar 2011 11:59:34 +0000
>
> Revision: http://svn.php.net/viewvc?view=revision&revision=309853
>
> Log:
> fix bug #54423 (classes from dl()'ed extensions are not destroyed)
>
> Bug: http://bugs.php.net/54423 (Closed) classes from dl()'ed extensions are 
> not destroyed
>
> Changed paths:
>    U   php/php-src/branches/PHP_5_3/NEWS
>    U   php/php-src/branches/PHP_5_3/Zend/zend_API.c
>    U   php/php-src/trunk/Zend/zend_API.c
>
> Modified: php/php-src/branches/PHP_5_3/NEWS
> ===================================================================
> --- php/php-src/branches/PHP_5_3/NEWS   2011-03-31 09:00:14 UTC (rev 309852)
> +++ php/php-src/branches/PHP_5_3/NEWS   2011-03-31 11:59:34 UTC (rev 309853)
> @@ -2,6 +2,8 @@
>  |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
>  ?? ??? 2011, PHP 5.3.7
>  - Zend Engine:
> +  . Fixed bug #54423 (classes from dl()'ed extensions are not destroyed).
> +    (Tony, Dmitry)
>   . Fixed bug #54262 (Crash when assigning value to a dimension in a 
> non-array).
>     (Dmitry)
>
>
> Modified: php/php-src/branches/PHP_5_3/Zend/zend_API.c
> ===================================================================
> --- php/php-src/branches/PHP_5_3/Zend/zend_API.c        2011-03-31 09:00:14 
> UTC (rev 309852)
> +++ php/php-src/branches/PHP_5_3/Zend/zend_API.c        2011-03-31 11:59:34 
> UTC (rev 309853)
> @@ -2082,6 +2082,22 @@
>  }
>  /* }}} */
>
> +static int clean_module_class(const zend_class_entry **ce, int 
> *module_number TSRMLS_DC) /* {{{ */
> +{
> +       if ((*ce)->type == ZEND_INTERNAL_CLASS && 
> (*ce)->module->module_number == *module_number) {
> +               return ZEND_HASH_APPLY_REMOVE;
> +       } else {
> +               return ZEND_HASH_APPLY_KEEP;
> +       }
> +}
> +/* }}} */
> +
> +static void clean_module_classes(int module_number TSRMLS_DC) /* {{{ */
> +{
> +       zend_hash_apply_with_argument(EG(class_table), (apply_func_arg_t) 
> clean_module_class, (void *) &module_number TSRMLS_CC);
> +}
> +/* }}} */
> +
>  void module_destructor(zend_module_entry *module) /* {{{ */
>  {
>        TSRMLS_FETCH();
> @@ -2089,6 +2105,7 @@
>        if (module->type == MODULE_TEMPORARY) {
>                zend_clean_module_rsrc_dtors(module->module_number TSRMLS_CC);
>                clean_module_constants(module->module_number TSRMLS_CC);
> +               clean_module_classes(module->module_number TSRMLS_CC);
>        }
>
>        if (module->module_started && module->module_shutdown_func) {
>
> Modified: php/php-src/trunk/Zend/zend_API.c
> ===================================================================
> --- php/php-src/trunk/Zend/zend_API.c   2011-03-31 09:00:14 UTC (rev 309852)
> +++ php/php-src/trunk/Zend/zend_API.c   2011-03-31 11:59:34 UTC (rev 309853)
> @@ -2208,6 +2208,22 @@
>  }
>  /* }}} */
>
> +static int clean_module_class(const zend_class_entry **ce, int 
> *module_number TSRMLS_DC) /* {{{ */
> +{
> +       if ((*ce)->type == ZEND_INTERNAL_CLASS && 
> (*ce)->module->module_number == *module_number) {
> +               return ZEND_HASH_APPLY_REMOVE;
> +       } else {
> +               return ZEND_HASH_APPLY_KEEP;
> +       }
> +}
> +/* }}} */
> +
> +static void clean_module_classes(int module_number TSRMLS_DC) /* {{{ */
> +{
> +       zend_hash_apply_with_argument(EG(class_table), (apply_func_arg_t) 
> clean_module_class, (void *) &module_number TSRMLS_CC);
> +}
> +/* }}} */
> +
>  void module_destructor(zend_module_entry *module) /* {{{ */
>  {
>        TSRMLS_FETCH();
> @@ -2215,6 +2231,7 @@
>        if (module->type == MODULE_TEMPORARY) {
>                zend_clean_module_rsrc_dtors(module->module_number TSRMLS_CC);
>                clean_module_constants(module->module_number TSRMLS_CC);
> +               clean_module_classes(module->module_number TSRMLS_CC);
>        }
>
>        if (module->module_started && module->module_shutdown_func) {
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>



-- 
Pierre

@pierrejoye | http://blog.thepimp.net | http://www.libgd.org

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to