stas Wed, 23 Dec 2009 21:41:05 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=292566
Log:
cleanup some code, improve error handling
Changed paths:
U php/php-src/branches/PHP_5_3/ext/intl/dateformat/dateformat.c
U php/php-src/branches/PHP_5_3/ext/intl/formatter/formatter_main.c
U php/php-src/branches/PHP_5_3/ext/intl/grapheme/grapheme_string.c
U php/php-src/branches/PHP_5_3/ext/intl/grapheme/grapheme_util.c
U php/php-src/branches/PHP_5_3/ext/intl/idn/idn.c
U php/php-src/branches/PHP_5_3/ext/intl/intl_error.c
U php/php-src/branches/PHP_5_3/ext/intl/intl_error.h
U php/php-src/branches/PHP_5_3/ext/intl/locale/locale_methods.c
U php/php-src/branches/PHP_5_3/ext/intl/normalizer/normalizer_normalize.c
A php/php-src/branches/PHP_5_3/ext/intl/tests/badargs.phpt
U php/php-src/trunk/ext/intl/dateformat/dateformat.c
U php/php-src/trunk/ext/intl/formatter/formatter_main.c
U php/php-src/trunk/ext/intl/grapheme/grapheme_string.c
U php/php-src/trunk/ext/intl/grapheme/grapheme_util.c
U php/php-src/trunk/ext/intl/idn/idn.c
U php/php-src/trunk/ext/intl/intl_error.c
U php/php-src/trunk/ext/intl/intl_error.h
U php/php-src/trunk/ext/intl/locale/locale_methods.c
U php/php-src/trunk/ext/intl/normalizer/normalizer_normalize.c
A php/php-src/trunk/ext/intl/tests/badargs.phpt
Modified: php/php-src/branches/PHP_5_3/ext/intl/dateformat/dateformat.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/dateformat/dateformat.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/branches/PHP_5_3/ext/intl/dateformat/dateformat.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -181,8 +181,7 @@
*/
PHP_FUNCTION( datefmt_get_error_code )
{
- zval* object = NULL;
- IntlDateFormatter_object* dfo = NULL;
+ DATE_FORMAT_METHOD_INIT_VARS;
/* Parse parameters. */
if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
@@ -208,8 +207,7 @@
PHP_FUNCTION( datefmt_get_error_message )
{
char* message = NULL;
- zval* object = NULL;
- IntlDateFormatter_object* dfo = NULL;
+ DATE_FORMAT_METHOD_INIT_VARS;
/* Parse parameters. */
if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
@@ -224,7 +222,7 @@
dfo = (IntlDateFormatter_object *) zend_object_store_get_object( object TSRMLS_CC );
/* Return last error message. */
- message = intl_error_get_message( &dfo->datef_data.error TSRMLS_CC );
+ message = intl_error_get_message( INTL_DATA_ERROR_P(dfo) TSRMLS_CC );
RETURN_STRING( message, 0);
}
/* }}} */
Modified: php/php-src/branches/PHP_5_3/ext/intl/formatter/formatter_main.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/formatter/formatter_main.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/branches/PHP_5_3/ext/intl/formatter/formatter_main.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -141,7 +141,7 @@
nfo = (NumberFormatter_object *) zend_object_store_get_object( object TSRMLS_CC );
/* Return last error message. */
- message = intl_error_get_message( &INTL_DATA_ERROR(nfo) TSRMLS_CC );
+ message = intl_error_get_message( INTL_DATA_ERROR_P(nfo) TSRMLS_CC );
RETURN_STRING( message, 0);
}
/* }}} */
Modified: php/php-src/branches/PHP_5_3/ext/intl/grapheme/grapheme_string.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/grapheme/grapheme_string.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/branches/PHP_5_3/ext/intl/grapheme/grapheme_string.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -83,7 +83,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( ustring );
RETURN_NULL();
}
@@ -446,7 +446,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( ustr );
RETURN_FALSE;
}
@@ -507,7 +507,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 0 TSRMLS_CC );
efree( sub_str );
@@ -563,7 +563,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 0 TSRMLS_CC );
if ( NULL != sub_str )
efree( sub_str );
@@ -870,7 +870,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
if ( NULL != ustr )
efree( ustr );
Modified: php/php-src/branches/PHP_5_3/ext/intl/grapheme/grapheme_util.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/grapheme/grapheme_util.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/branches/PHP_5_3/ext/intl/grapheme/grapheme_util.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -169,7 +169,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( uhaystack );
return -1;
}
@@ -202,7 +202,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( uhaystack );
efree( uneedle );
ubrk_close (bi);
@@ -294,7 +294,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( uhaystack );
return -1;
}
@@ -331,7 +331,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( uhaystack );
efree( uneedle );
ubrk_close (bi);
Modified: php/php-src/branches/PHP_5_3/ext/intl/idn/idn.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/idn/idn.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/branches/PHP_5_3/ext/intl/idn/idn.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -84,7 +84,7 @@
intl_error_set_code(NULL, status TSRMLS_CC);
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree(ustring);
RETURN_FALSE;
} else {
@@ -111,7 +111,7 @@
intl_error_set_code(NULL, status TSRMLS_CC);
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 0 TSRMLS_CC );
efree(converted_utf8);
RETURN_FALSE;
}
Modified: php/php-src/branches/PHP_5_3/ext/intl/intl_error.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/intl_error.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/branches/PHP_5_3/ext/intl/intl_error.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -44,11 +44,10 @@
if( !err && !( err = intl_g_error_get( TSRMLS_C ) ) )
return;
- if( !err->free_custom_error_message )
- return;
+ if(err->free_custom_error_message ) {
+ efree( err->custom_error_message );
+ }
- efree( err->custom_error_message );
-
err->custom_error_message = NULL;
err->free_custom_error_message = 0;
}
@@ -181,6 +180,16 @@
}
/* }}} */
+/* {{{ void intl_errors_set( intl_error* err, UErrorCode code, char* msg, int copyMsg )
+ * Set error code and message.
+ */
+void intl_errors_set( intl_error* err, UErrorCode code, char* msg, int copyMsg TSRMLS_DC )
+{
+ intl_errors_set_code( err, code TSRMLS_CC );
+ intl_errors_set_custom_msg( err, msg, copyMsg TSRMLS_CC );
+}
+/* }}} */
+
/* {{{ void intl_errors_reset( intl_error* err )
*/
void intl_errors_reset( intl_error* err TSRMLS_DC )
Modified: php/php-src/branches/PHP_5_3/ext/intl/intl_error.h
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/intl_error.h 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/branches/PHP_5_3/ext/intl/intl_error.h 2009-12-23 21:41:05 UTC (rev 292566)
@@ -42,5 +42,6 @@
void intl_errors_reset( intl_error* err TSRMLS_DC );
void intl_errors_set_custom_msg( intl_error* err, char* msg, int copyMsg TSRMLS_DC );
void intl_errors_set_code( intl_error* err, UErrorCode err_code TSRMLS_DC );
+void intl_errors_set( intl_error* err, UErrorCode code, char* msg, int copyMsg TSRMLS_DC );
#endif // INTL_ERROR_H
Modified: php/php-src/branches/PHP_5_3/ext/intl/locale/locale_methods.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/locale/locale_methods.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/branches/PHP_5_3/ext/intl/locale/locale_methods.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -389,7 +389,7 @@
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, msg , 1 TSRMLS_CC );
efree(msg);
- RETURN_NULL();
+ RETURN_FALSE;
}
if(loc_name_len == 0) {
@@ -1129,10 +1129,10 @@
if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "s",
&loc_name, &loc_name_len ) == FAILURE)
{
- intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
"locale_parse: unable to parse input params", 0 TSRMLS_CC );
- RETURN_FALSE;
+ RETURN_FALSE;
}
if(loc_name_len == 0) {
@@ -1524,7 +1524,7 @@
if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "as|bs", &arr, &loc_range, &loc_range_len,
&boolCanonical, &fallback_loc, &fallback_loc_len) == FAILURE) {
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, "locale_lookup: unable to parse input params", 0 TSRMLS_CC );
- RETURN_NULL();
+ RETURN_FALSE;
}
if(loc_range_len == 0) {
@@ -1571,7 +1571,7 @@
{
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
"locale_accept_from_http: unable to parse input parameters", 0 TSRMLS_CC );
- RETURN_NULL();
+ RETURN_FALSE;
}
available = ures_openAvailableLocales(NULL, &status);
Modified: php/php-src/branches/PHP_5_3/ext/intl/normalizer/normalizer_normalize.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/normalizer/normalizer_normalize.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/branches/PHP_5_3/ext/intl/normalizer/normalizer_normalize.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -57,9 +57,9 @@
&input, &input_len, &form ) == FAILURE )
{
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "normalizer_normalize: unable to parse input params", 1 TSRMLS_CC );
+ "normalizer_normalize: unable to parse input params", 0 TSRMLS_CC );
- RETURN_NULL();
+ RETURN_FALSE;
}
expansion_factor = 1;
@@ -78,8 +78,8 @@
break;
default:
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "normalizer_normalize: illegal normalization form", 1 TSRMLS_CC );
- RETURN_NULL();
+ "normalizer_normalize: illegal normalization form", 0 TSRMLS_CC );
+ RETURN_FALSE;
}
/*
@@ -95,9 +95,9 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( uinput );
- RETURN_NULL();
+ RETURN_FALSE;
}
@@ -134,10 +134,10 @@
/* Bail out if an unexpected error occured. */
if( U_FAILURE(status) ) {
/* Set error messages. */
- intl_error_set_custom_msg( NULL,"Error normalizing string", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL,"Error normalizing string", 0 TSRMLS_CC );
efree( uret_buf );
efree( uinput );
- RETURN_NULL();
+ RETURN_FALSE;
}
}
@@ -152,8 +152,8 @@
if( U_FAILURE( status ) )
{
intl_error_set( NULL, status,
- "normalizer_normalize: error converting normalized text UTF-8", 1 TSRMLS_CC );
- RETURN_NULL();
+ "normalizer_normalize: error converting normalized text UTF-8", 0 TSRMLS_CC );
+ RETURN_FALSE;
}
/* Return it. */
@@ -186,7 +186,7 @@
&input, &input_len, &form) == FAILURE )
{
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "normalizer_is_normalized: unable to parse input params", 1 TSRMLS_CC );
+ "normalizer_is_normalized: unable to parse input params", 0 TSRMLS_CC );
RETURN_FALSE;
}
@@ -201,8 +201,8 @@
break;
default:
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "normalizer_normalize: illegal normalization form", 1 TSRMLS_CC );
- RETURN_NULL();
+ "normalizer_normalize: illegal normalization form", 0 TSRMLS_CC );
+ RETURN_FALSE;
}
@@ -219,7 +219,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting string to UTF-16.", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting string to UTF-16.", 0 TSRMLS_CC );
efree( uinput );
RETURN_FALSE;
}
@@ -233,7 +233,7 @@
/* Bail out if an unexpected error occured. */
if( U_FAILURE(status) ) {
/* Set error messages. */
- intl_error_set_custom_msg( NULL,"Error testing if string is the given normalization form.", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL,"Error testing if string is the given normalization form.", 0 TSRMLS_CC );
RETURN_FALSE;
}
Added: php/php-src/branches/PHP_5_3/ext/intl/tests/badargs.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/intl/tests/badargs.phpt (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/intl/tests/badargs.phpt 2009-12-23 21:41:05 UTC (rev 292566)
@@ -0,0 +1,25 @@
+--TEST--
+Check that bad argumens return the same
+--SKIPIF--
+<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
+--FILE--
+<?php
+$funcs = get_extension_funcs("intl");
+function ignore_err() {}
+set_error_handler("ignore_err");
+$arg = new stdClass();
+foreach($funcs as $func) {
+ $rfunc = new ReflectionFunction($func);
+ if($rfunc->getNumberOfRequiredParameters() == 0) {
+ continue;
+ }
+ $res = $func($arg);
+ if($res != false) {
+ echo "$func: ";
+ var_dump($res);
+ }
+}
+echo "OK!\n";
+?>
+--EXPECT--
+OK!
Property changes on: php/php-src/branches/PHP_5_3/ext/intl/tests/badargs.phpt
___________________________________________________________________
Added: svn:executable
+ *
Modified: php/php-src/trunk/ext/intl/dateformat/dateformat.c
===================================================================
--- php/php-src/trunk/ext/intl/dateformat/dateformat.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/trunk/ext/intl/dateformat/dateformat.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -155,8 +155,7 @@
*/
PHP_FUNCTION( datefmt_get_error_code )
{
- zval* object = NULL;
- IntlDateFormatter_object* dfo = NULL;
+ DATE_FORMAT_METHOD_INIT_VARS;
/* Parse parameters. */
if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
@@ -182,8 +181,7 @@
PHP_FUNCTION( datefmt_get_error_message )
{
char* message = NULL;
- zval* object = NULL;
- IntlDateFormatter_object* dfo = NULL;
+ DATE_FORMAT_METHOD_INIT_VARS;
/* Parse parameters. */
if( zend_parse_method_parameters( ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",
@@ -198,7 +196,7 @@
dfo = (IntlDateFormatter_object *) zend_object_store_get_object( object TSRMLS_CC );
/* Return last error message. */
- message = intl_error_get_message( &dfo->datef_data.error TSRMLS_CC );
+ message = intl_error_get_message( INTL_DATA_ERROR_P(dfo) TSRMLS_CC );
RETURN_STRING( message, 0);
}
/* }}} */
Modified: php/php-src/trunk/ext/intl/formatter/formatter_main.c
===================================================================
--- php/php-src/trunk/ext/intl/formatter/formatter_main.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/trunk/ext/intl/formatter/formatter_main.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -128,7 +128,7 @@
nfo = (NumberFormatter_object *) zend_object_store_get_object( object TSRMLS_CC );
/* Return last error message. */
- message = intl_error_get_message( &INTL_DATA_ERROR(nfo) TSRMLS_CC );
+ message = intl_error_get_message( INTL_DATA_ERROR_P(nfo) TSRMLS_CC );
RETURN_STRING( message, 0);
}
/* }}} */
Modified: php/php-src/trunk/ext/intl/grapheme/grapheme_string.c
===================================================================
--- php/php-src/trunk/ext/intl/grapheme/grapheme_string.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/trunk/ext/intl/grapheme/grapheme_string.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -83,7 +83,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( ustring );
RETURN_NULL();
}
@@ -446,7 +446,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( ustr );
RETURN_FALSE;
}
@@ -507,7 +507,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 0 TSRMLS_CC );
efree( sub_str );
@@ -563,7 +563,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting output string to UTF-8", 0 TSRMLS_CC );
if ( NULL != sub_str )
efree( sub_str );
@@ -869,7 +869,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
if ( NULL != ustr )
efree( ustr );
Modified: php/php-src/trunk/ext/intl/grapheme/grapheme_util.c
===================================================================
--- php/php-src/trunk/ext/intl/grapheme/grapheme_util.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/trunk/ext/intl/grapheme/grapheme_util.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -169,7 +169,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( uhaystack );
return -1;
}
@@ -202,7 +202,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( uhaystack );
efree( uneedle );
ubrk_close (bi);
@@ -294,7 +294,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( uhaystack );
return -1;
}
@@ -331,7 +331,7 @@
intl_error_set_code( NULL, status TSRMLS_CC );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 TSRMLS_CC );
efree( uhaystack );
efree( uneedle );
ubrk_close (bi);
Modified: php/php-src/trunk/ext/intl/idn/idn.c
===================================================================
--- php/php-src/trunk/ext/intl/idn/idn.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/trunk/ext/intl/idn/idn.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -65,7 +65,7 @@
int32_t converted_ret_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "u|l", (char **)&domain, &domain_len, &option) == FAILURE) {
- return;
+ RETURN_FALSE;
}
if (domain_len < 1) {
Modified: php/php-src/trunk/ext/intl/intl_error.c
===================================================================
--- php/php-src/trunk/ext/intl/intl_error.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/trunk/ext/intl/intl_error.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -44,11 +44,10 @@
if( !err && !( err = intl_g_error_get( TSRMLS_C ) ) )
return;
- if( !err->free_custom_error_message )
- return;
+ if( err->free_custom_error_message ) {
+ efree( err->custom_error_message );
+ }
- efree( err->custom_error_message );
-
err->custom_error_message = NULL;
err->free_custom_error_message = 0;
}
@@ -181,6 +180,16 @@
}
/* }}} */
+/* {{{ void intl_errors_set( intl_error* err, UErrorCode code, char* msg, int copyMsg )
+ * Set error code and message.
+ */
+void intl_errors_set( intl_error* err, UErrorCode code, char* msg, int copyMsg TSRMLS_DC )
+{
+ intl_errors_set_code( err, code TSRMLS_CC );
+ intl_errors_set_custom_msg( err, msg, copyMsg TSRMLS_CC );
+}
+/* }}} */
+
/* {{{ void intl_errors_reset( intl_error* err )
*/
void intl_errors_reset( intl_error* err TSRMLS_DC )
Modified: php/php-src/trunk/ext/intl/intl_error.h
===================================================================
--- php/php-src/trunk/ext/intl/intl_error.h 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/trunk/ext/intl/intl_error.h 2009-12-23 21:41:05 UTC (rev 292566)
@@ -42,5 +42,6 @@
void intl_errors_reset( intl_error* err TSRMLS_DC );
void intl_errors_set_custom_msg( intl_error* err, char* msg, int copyMsg TSRMLS_DC );
void intl_errors_set_code( intl_error* err, UErrorCode err_code TSRMLS_DC );
+void intl_errors_set( intl_error* err, UErrorCode code, char* msg, int copyMsg TSRMLS_DC );
#endif // INTL_ERROR_H
Modified: php/php-src/trunk/ext/intl/locale/locale_methods.c
===================================================================
--- php/php-src/trunk/ext/intl/locale/locale_methods.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/trunk/ext/intl/locale/locale_methods.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -389,7 +389,7 @@
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, msg , 1 TSRMLS_CC );
efree(msg);
- RETURN_NULL();
+ RETURN_FALSE;
}
if(loc_name_len == 0) {
@@ -1129,10 +1129,10 @@
if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "s",
&loc_name, &loc_name_len ) == FAILURE)
{
- intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
+ intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
"locale_parse: unable to parse input params", 0 TSRMLS_CC );
- RETURN_FALSE;
+ RETURN_FALSE;
}
if(loc_name_len == 0) {
@@ -1524,7 +1524,7 @@
if(zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "as|bs", &arr, &loc_range, &loc_range_len,
&boolCanonical, &fallback_loc, &fallback_loc_len) == FAILURE) {
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR, "locale_lookup: unable to parse input params", 0 TSRMLS_CC );
- RETURN_NULL();
+ RETURN_FALSE;
}
if(loc_range_len == 0) {
@@ -1571,7 +1571,7 @@
{
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
"locale_accept_from_http: unable to parse input parameters", 0 TSRMLS_CC );
- RETURN_NULL();
+ RETURN_FALSE;
}
available = ures_openAvailableLocales(NULL, &status);
Modified: php/php-src/trunk/ext/intl/normalizer/normalizer_normalize.c
===================================================================
--- php/php-src/trunk/ext/intl/normalizer/normalizer_normalize.c 2009-12-23 21:40:12 UTC (rev 292565)
+++ php/php-src/trunk/ext/intl/normalizer/normalizer_normalize.c 2009-12-23 21:41:05 UTC (rev 292566)
@@ -52,9 +52,9 @@
&uinput, &uinput_len, &form ) == FAILURE )
{
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "normalizer_normalize: unable to parse input params", 1 TSRMLS_CC );
+ "normalizer_normalize: unable to parse input params", 0 TSRMLS_CC );
- RETURN_NULL();
+ RETURN_FALSE;
}
expansion_factor = 1;
@@ -73,8 +73,8 @@
break;
default:
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "normalizer_normalize: illegal normalization form", 1 TSRMLS_CC );
- RETURN_NULL();
+ "normalizer_normalize: illegal normalization form", 0 TSRMLS_CC );
+ RETURN_FALSE;
}
/*
@@ -94,7 +94,7 @@
*/
if( U_FAILURE(status) && status != U_BUFFER_OVERFLOW_ERROR && status != U_STRING_NOT_TERMINATED_WARNING ) {
efree( uret_buf );
- RETURN_NULL();
+ RETURN_FALSE;
}
if ( size_needed > uret_len ) {
@@ -113,9 +113,9 @@
/* Bail out if an unexpected error occured. */
if( U_FAILURE(status) ) {
/* Set error messages. */
- intl_error_set_custom_msg( NULL,"Error normalizing string", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL,"Error normalizing string", 0 TSRMLS_CC );
efree( uret_buf );
- RETURN_NULL();
+ RETURN_FALSE;
}
}
@@ -149,7 +149,7 @@
&uinput, &uinput_len, &form) == FAILURE )
{
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "normalizer_is_normalized: unable to parse input params", 1 TSRMLS_CC );
+ "normalizer_is_normalized: unable to parse input params", 0 TSRMLS_CC );
RETURN_FALSE;
}
@@ -164,8 +164,8 @@
break;
default:
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "normalizer_normalize: illegal normalization form", 1 TSRMLS_CC );
- RETURN_NULL();
+ "normalizer_normalize: illegal normalization form", 0 TSRMLS_CC );
+ RETURN_FALSE;
}
@@ -179,7 +179,7 @@
/* Bail out if an unexpected error occured. */
if( U_FAILURE(status) ) {
/* Set error messages. */
- intl_error_set_custom_msg( NULL,"Error testing if string is the given normalization form.", 1 TSRMLS_CC );
+ intl_error_set_custom_msg( NULL,"Error testing if string is the given normalization form.", 0 TSRMLS_CC );
RETURN_FALSE;
}
Added: php/php-src/trunk/ext/intl/tests/badargs.phpt
===================================================================
--- php/php-src/trunk/ext/intl/tests/badargs.phpt (rev 0)
+++ php/php-src/trunk/ext/intl/tests/badargs.phpt 2009-12-23 21:41:05 UTC (rev 292566)
@@ -0,0 +1,25 @@
+--TEST--
+Check that bad argumens return the same
+--SKIPIF--
+<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
+--FILE--
+<?php
+$funcs = get_extension_funcs("intl");
+function ignore_err() {}
+set_error_handler("ignore_err");
+$arg = new stdClass();
+foreach($funcs as $func) {
+ $rfunc = new ReflectionFunction($func);
+ if($rfunc->getNumberOfRequiredParameters() == 0) {
+ continue;
+ }
+ $res = $func($arg);
+ if($res != false) {
+ echo "$func: ";
+ var_dump($res);
+ }
+}
+echo "OK!\n";
+?>
+--EXPECT--
+OK!
Property changes on: php/php-src/trunk/ext/intl/tests/badargs.phpt
___________________________________________________________________
Added: svn:executable
+ *
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php