fa Thu, 03 Nov 2011 16:20:11 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=318744
Log: Redid the fix for #60192 with suggestions by Pierre and Kalle Bug: https://bugs.php.net/60192 (Closed) SegFault when Collator not constructed properly Changed paths: U php/php-src/branches/PHP_5_3/ext/intl/collator/collator_compare.c U php/php-src/branches/PHP_5_3/ext/intl/collator/collator_locale.c U php/php-src/branches/PHP_5_3/ext/intl/collator/collator_sort.c U php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-compare.phpt U php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getlocale.phpt U php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getsortkey.phpt U php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sort.phpt U php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sortwithsortkeys.phpt U php/php-src/branches/PHP_5_4/ext/intl/collator/collator_compare.c U php/php-src/branches/PHP_5_4/ext/intl/collator/collator_locale.c U php/php-src/branches/PHP_5_4/ext/intl/collator/collator_sort.c U php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-compare.phpt U php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getlocale.phpt U php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getsortkey.phpt U php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sort.phpt U php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sortwithsortkeys.phpt U php/php-src/trunk/ext/intl/collator/collator_compare.c U php/php-src/trunk/ext/intl/collator/collator_locale.c U php/php-src/trunk/ext/intl/collator/collator_sort.c U php/php-src/trunk/ext/intl/tests/bug60192-compare.phpt U php/php-src/trunk/ext/intl/tests/bug60192-getlocale.phpt U php/php-src/trunk/ext/intl/tests/bug60192-getsortkey.phpt U php/php-src/trunk/ext/intl/tests/bug60192-sort.phpt U php/php-src/trunk/ext/intl/tests/bug60192-sortwithsortkeys.phpt
Modified: php/php-src/branches/PHP_5_3/ext/intl/collator/collator_compare.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/intl/collator/collator_compare.c 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_3/ext/intl/collator/collator_compare.c 2011-11-03 16:20:11 UTC (rev 318744) @@ -58,7 +58,15 @@ /* Fetch the object. */ COLLATOR_METHOD_FETCH_OBJECT; + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + RETURN_FALSE; + } + /* * Compare given strings (converting them to UTF-16 first). */ @@ -99,10 +107,6 @@ RETURN_FALSE; } - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } - /* Then compare them. */ result = ucol_strcoll( co->ucoll, Modified: php/php-src/branches/PHP_5_3/ext/intl/collator/collator_locale.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/intl/collator/collator_locale.c 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_3/ext/intl/collator/collator_locale.c 2011-11-03 16:20:11 UTC (rev 318744) @@ -52,7 +52,12 @@ COLLATOR_METHOD_FETCH_OBJECT; if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + + RETURN_FALSE; } /* Get locale by specified type. */ Modified: php/php-src/branches/PHP_5_3/ext/intl/collator/collator_sort.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/intl/collator/collator_sort.c 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_3/ext/intl/collator/collator_sort.c 2011-11-03 16:20:11 UTC (rev 318744) @@ -74,7 +74,10 @@ co = (Collator_object *) zend_object_store_get_object( INTL_G(current_collator) TSRMLS_CC ); if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); } /* Compare the strings using ICU. */ @@ -391,7 +394,15 @@ /* Fetch the object. */ COLLATOR_METHOD_FETCH_OBJECT; + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + RETURN_FALSE; + } + /* * Sort specified array. */ @@ -445,10 +456,6 @@ /* Get sort key, reallocating the buffer if needed. */ bufLeft = sortKeyBufSize - sortKeyBufOffset; - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } - sortKeyLen = ucol_getSortKey( co->ucoll, utf16_buf, utf16_len, @@ -559,7 +566,15 @@ /* Fetch the object. */ COLLATOR_METHOD_FETCH_OBJECT; + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + RETURN_FALSE; + } + /* * Compare given strings (converting them to UTF-16 first). */ @@ -579,10 +594,6 @@ RETURN_FALSE; } - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } - key_len = ucol_getSortKey(co->ucoll, ustr, ustr_len, key, 0); if(!key_len) { efree( ustr ); Modified: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-compare.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-compare.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-compare.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -6,7 +6,6 @@ ?> --FILE-- <?php - class Collator2 extends Collator{ public function __construct() { // ommitting parent::__construct($someLocale); @@ -14,7 +13,7 @@ } $c = new Collator2(); -$c->compare('h', 'H'); +$a = $c->compare('h', 'H'); --EXPECTF-- -Fatal error: Collator::compare(): Object not initialized in %s on line %d +Catchable fatal error: Collator::compare(): Object not initialized in %s on line %d Modified: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getlocale.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getlocale.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getlocale.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -17,4 +17,4 @@ $c->getLocale(Locale::ACTUAL_LOCALE); --EXPECTF-- -Fatal error: Collator::getLocale(): Object not initialized in %s on line %d +Catchable fatal error: Collator::getLocale(): Object not initialized in %s on line %d Modified: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getsortkey.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getsortkey.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-getsortkey.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -17,4 +17,4 @@ $c->getSortKey('h'); --EXPECTF-- -Fatal error: Collator::getSortKey(): Object not initialized in %s on line %d +Catchable fatal error: Collator::getSortKey(): Object not initialized in %s on line %d Modified: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sort.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sort.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sort.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -18,4 +18,4 @@ $c->sort($a); --EXPECTF-- -Fatal error: Collator::sort(): Object not initialized in %s on line %d +Catchable fatal error: Collator::sort(): Object not initialized in %s on line %d Modified: php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sortwithsortkeys.phpt =================================================================== --- php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sortwithsortkeys.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_3/ext/intl/tests/bug60192-sortwithsortkeys.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -18,4 +18,4 @@ $c->sortWithSortKeys($a); --EXPECTF-- -Fatal error: Collator::sortWithSortKeys(): Object not initialized in %s on line %d +Catchable fatal error: Collator::sortWithSortKeys(): Object not initialized in %s on line %d Modified: php/php-src/branches/PHP_5_4/ext/intl/collator/collator_compare.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/intl/collator/collator_compare.c 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_4/ext/intl/collator/collator_compare.c 2011-11-03 16:20:11 UTC (rev 318744) @@ -58,7 +58,15 @@ /* Fetch the object. */ COLLATOR_METHOD_FETCH_OBJECT; + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + RETURN_FALSE; + } + /* * Compare given strings (converting them to UTF-16 first). */ @@ -99,10 +107,6 @@ RETURN_FALSE; } - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } - /* Then compare them. */ result = ucol_strcoll( co->ucoll, Modified: php/php-src/branches/PHP_5_4/ext/intl/collator/collator_locale.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/intl/collator/collator_locale.c 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_4/ext/intl/collator/collator_locale.c 2011-11-03 16:20:11 UTC (rev 318744) @@ -52,7 +52,12 @@ COLLATOR_METHOD_FETCH_OBJECT; if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + + RETURN_FALSE; } /* Get locale by specified type. */ Modified: php/php-src/branches/PHP_5_4/ext/intl/collator/collator_sort.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/intl/collator/collator_sort.c 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_4/ext/intl/collator/collator_sort.c 2011-11-03 16:20:11 UTC (rev 318744) @@ -73,9 +73,12 @@ /* Fetch collator object. */ co = (Collator_object *) zend_object_store_get_object( INTL_G(current_collator) TSRMLS_CC ); - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + } /* Compare the strings using ICU. */ result->value.lval = ucol_strcoll( @@ -391,7 +394,15 @@ /* Fetch the object. */ COLLATOR_METHOD_FETCH_OBJECT; + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + RETURN_FALSE; + } + /* * Sort specified array. */ @@ -445,10 +456,6 @@ /* Get sort key, reallocating the buffer if needed. */ bufLeft = sortKeyBufSize - sortKeyBufOffset; - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } - sortKeyLen = ucol_getSortKey( co->ucoll, utf16_buf, utf16_len, @@ -559,7 +566,15 @@ /* Fetch the object. */ COLLATOR_METHOD_FETCH_OBJECT; + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + RETURN_FALSE; + } + /* * Compare given strings (converting them to UTF-16 first). */ @@ -579,10 +594,6 @@ RETURN_FALSE; } - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } - key_len = ucol_getSortKey(co->ucoll, ustr, ustr_len, key, 0); if(!key_len) { efree( ustr ); Modified: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-compare.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-compare.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-compare.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -6,7 +6,6 @@ ?> --FILE-- <?php - class Collator2 extends Collator{ public function __construct() { // ommitting parent::__construct($someLocale); @@ -14,7 +13,7 @@ } $c = new Collator2(); -$c->compare('h', 'H'); +$a = $c->compare('h', 'H'); --EXPECTF-- -Fatal error: Collator::compare(): Object not initialized in %s on line %d +Catchable fatal error: Collator::compare(): Object not initialized in %s on line %d Modified: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getlocale.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getlocale.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getlocale.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -17,4 +17,4 @@ $c->getLocale(Locale::ACTUAL_LOCALE); --EXPECTF-- -Fatal error: Collator::getLocale(): Object not initialized in %s on line %d +Catchable fatal error: Collator::getLocale(): Object not initialized in %s on line %d Modified: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getsortkey.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getsortkey.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-getsortkey.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -17,4 +17,4 @@ $c->getSortKey('h'); --EXPECTF-- -Fatal error: Collator::getSortKey(): Object not initialized in %s on line %d +Catchable fatal error: Collator::getSortKey(): Object not initialized in %s on line %d Modified: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sort.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sort.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sort.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -18,4 +18,4 @@ $c->sort($a); --EXPECTF-- -Fatal error: Collator::sort(): Object not initialized in %s on line %d +Catchable fatal error: Collator::sort(): Object not initialized in %s on line %d Modified: php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sortwithsortkeys.phpt =================================================================== --- php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sortwithsortkeys.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/branches/PHP_5_4/ext/intl/tests/bug60192-sortwithsortkeys.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -18,4 +18,4 @@ $c->sortWithSortKeys($a); --EXPECTF-- -Fatal error: Collator::sortWithSortKeys(): Object not initialized in %s on line %d +Catchable fatal error: Collator::sortWithSortKeys(): Object not initialized in %s on line %d Modified: php/php-src/trunk/ext/intl/collator/collator_compare.c =================================================================== --- php/php-src/trunk/ext/intl/collator/collator_compare.c 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/trunk/ext/intl/collator/collator_compare.c 2011-11-03 16:20:11 UTC (rev 318744) @@ -58,7 +58,15 @@ /* Fetch the object. */ COLLATOR_METHOD_FETCH_OBJECT; + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + RETURN_FALSE; + } + /* * Compare given strings (converting them to UTF-16 first). */ @@ -99,10 +107,6 @@ RETURN_FALSE; } - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } - /* Then compare them. */ result = ucol_strcoll( co->ucoll, Modified: php/php-src/trunk/ext/intl/collator/collator_locale.c =================================================================== --- php/php-src/trunk/ext/intl/collator/collator_locale.c 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/trunk/ext/intl/collator/collator_locale.c 2011-11-03 16:20:11 UTC (rev 318744) @@ -52,7 +52,12 @@ COLLATOR_METHOD_FETCH_OBJECT; if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + + RETURN_FALSE; } /* Get locale by specified type. */ Modified: php/php-src/trunk/ext/intl/collator/collator_sort.c =================================================================== --- php/php-src/trunk/ext/intl/collator/collator_sort.c 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/trunk/ext/intl/collator/collator_sort.c 2011-11-03 16:20:11 UTC (rev 318744) @@ -73,10 +73,14 @@ /* Fetch collator object. */ co = (Collator_object *) zend_object_store_get_object( INTL_G(current_collator) TSRMLS_CC ); - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + } + /* Compare the strings using ICU. */ result->value.lval = ucol_strcoll( co->ucoll, @@ -391,7 +395,15 @@ /* Fetch the object. */ COLLATOR_METHOD_FETCH_OBJECT; + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + RETURN_FALSE; + } + /* * Sort specified array. */ @@ -445,10 +457,6 @@ /* Get sort key, reallocating the buffer if needed. */ bufLeft = sortKeyBufSize - sortKeyBufOffset; - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } - sortKeyLen = ucol_getSortKey( co->ucoll, utf16_buf, utf16_len, @@ -559,7 +567,15 @@ /* Fetch the object. */ COLLATOR_METHOD_FETCH_OBJECT; + if (!co || !co->ucoll) { + intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) TSRMLS_CC ); + intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ), + "Object not initialized", 0 TSRMLS_CC ); + php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Object not initialized"); + RETURN_FALSE; + } + /* * Compare given strings (converting them to UTF-16 first). */ @@ -579,10 +595,6 @@ RETURN_FALSE; } - if (!co || !co->ucoll) { - php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized"); - } - key_len = ucol_getSortKey(co->ucoll, ustr, ustr_len, key, 0); if(!key_len) { efree( ustr ); Modified: php/php-src/trunk/ext/intl/tests/bug60192-compare.phpt =================================================================== --- php/php-src/trunk/ext/intl/tests/bug60192-compare.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/trunk/ext/intl/tests/bug60192-compare.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -6,7 +6,6 @@ ?> --FILE-- <?php - class Collator2 extends Collator{ public function __construct() { // ommitting parent::__construct($someLocale); @@ -14,7 +13,7 @@ } $c = new Collator2(); -$c->compare('h', 'H'); +$a = $c->compare('h', 'H'); --EXPECTF-- -Fatal error: Collator::compare(): Object not initialized in %s on line %d +Catchable fatal error: Collator::compare(): Object not initialized in %s on line %d Modified: php/php-src/trunk/ext/intl/tests/bug60192-getlocale.phpt =================================================================== --- php/php-src/trunk/ext/intl/tests/bug60192-getlocale.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/trunk/ext/intl/tests/bug60192-getlocale.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -17,4 +17,4 @@ $c->getLocale(Locale::ACTUAL_LOCALE); --EXPECTF-- -Fatal error: Collator::getLocale(): Object not initialized in %s on line %d +Catchable fatal error: Collator::getLocale(): Object not initialized in %s on line %d Modified: php/php-src/trunk/ext/intl/tests/bug60192-getsortkey.phpt =================================================================== --- php/php-src/trunk/ext/intl/tests/bug60192-getsortkey.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/trunk/ext/intl/tests/bug60192-getsortkey.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -17,4 +17,4 @@ $c->getSortKey('h'); --EXPECTF-- -Fatal error: Collator::getSortKey(): Object not initialized in %s on line %d +Catchable fatal error: Collator::getSortKey(): Object not initialized in %s on line %d Modified: php/php-src/trunk/ext/intl/tests/bug60192-sort.phpt =================================================================== --- php/php-src/trunk/ext/intl/tests/bug60192-sort.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/trunk/ext/intl/tests/bug60192-sort.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -18,4 +18,4 @@ $c->sort($a); --EXPECTF-- -Fatal error: Collator::sort(): Object not initialized in %s on line %d +Catchable fatal error: Collator::sort(): Object not initialized in %s on line %d Modified: php/php-src/trunk/ext/intl/tests/bug60192-sortwithsortkeys.phpt =================================================================== --- php/php-src/trunk/ext/intl/tests/bug60192-sortwithsortkeys.phpt 2011-11-03 15:47:19 UTC (rev 318743) +++ php/php-src/trunk/ext/intl/tests/bug60192-sortwithsortkeys.phpt 2011-11-03 16:20:11 UTC (rev 318744) @@ -18,4 +18,4 @@ $c->sortWithSortKeys($a); --EXPECTF-- -Fatal error: Collator::sortWithSortKeys(): Object not initialized in %s on line %d +Catchable fatal error: Collator::sortWithSortKeys(): Object not initialized in %s on line %d
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php