Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend.c zend_globals.h zend_unicode.c

From: Date: Tue, 03 Oct 2006 15:42:43 +0000
Subject: Re: [ZEND-ENGINE-CVS] cvs: ZendEngine2 / zend.c zend_globals.h zend_unicode.c
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-25916@lists.php.net to get a copy of this message
Strange. I don't see it here on FreeBSD. Does anyone else have this problem? -A On Oct 3, 2006, at 4:56 AM, Rob Richards wrote:
I get consistent crashes on windows during shutdown with this change. Access violation in the dtor at: ucol_close(unicode_globals->root_collator); It did open correctly as: unicode_globals->root_collator = ucol_open("en_US", &status); returned -128, which is supposedly successful. I already tried upgrading ICU to 3.4.1 but still same problem. Rob Andrei Zmievski wrote:
andrei Fri Sep 29 20:59:26 2006 UTC
  Modified files:                  /ZendEngine2	zend.c zend_globals.h zend_unicode.c   Log:
Fix off-by-one error.
    http://cvs.php.net/viewvc.cgi/ZendEngine2/zend.c?r1=1.372&r2=1.373&diff_format=u
Index: ZendEngine2/zend.c diff -u ZendEngine2/zend.c:1.372 ZendEngine2/zend.c:1.373 --- ZendEngine2/zend.c:1.372 Tue Sep 19 20:44:37 2006 +++ ZendEngine2/zend.c Fri Sep 29 20:59:26 2006 @@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
*/ -/* $Id: zend.c,v 1.372 2006/09/19 20:44:37 andrei Exp $ */ +/* $Id: zend.c,v 1.373 2006/09/29 20:59:26 andrei Exp $ */ #include "zend.h" #include "zend_extensions.h" @@ -929,11 +929,26 @@ unicode_globals->to_error_mode = ZEND_CONV_ERROR_STOP; unicode_globals->conv_error_handler = NULL; + { + UErrorCode status = U_ZERO_ERROR; + + unicode_globals->root_collator = ucol_open("en_US", &status); + ucol_setStrength(unicode_globals->root_collator, UCOL_PRIMARY); + unicode_globals->root_search = usearch_openFromCollator(EMPTY_STR, 1, EMPTY_STR, 1, + unicode_globals->root_collator, NULL, &status); + } + zend_hash_init_ex(&unicode_globals->flex_compatible, 0, NULL, NULL, 1, 0); } static void unicode_globals_dtor(zend_unicode_globals *unicode_globals TSRMLS_DC) { + if (unicode_globals->root_collator) { + ucol_close(unicode_globals->root_collator); + } + if (unicode_globals->root_search) { + usearch_close(unicode_globals->root_search); + } if (unicode_globals->fallback_encoding_conv) { ucnv_close(unicode_globals->fallback_encoding_conv);


« previous php.internals (#25916) next »