johannes Mon, 25 Jan 2010 13:59:35 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=293979
Log: merge r292566: cleanup some code, improve error handling (stas) Changed paths: U php/php-src/branches/PHP_5_3_2/ext/intl/dateformat/dateformat.c U php/php-src/branches/PHP_5_3_2/ext/intl/formatter/formatter_main.c U php/php-src/branches/PHP_5_3_2/ext/intl/grapheme/grapheme_string.c U php/php-src/branches/PHP_5_3_2/ext/intl/grapheme/grapheme_util.c U php/php-src/branches/PHP_5_3_2/ext/intl/idn/idn.c U php/php-src/branches/PHP_5_3_2/ext/intl/intl_error.c U php/php-src/branches/PHP_5_3_2/ext/intl/intl_error.h U php/php-src/branches/PHP_5_3_2/ext/intl/locale/locale_methods.c U php/php-src/branches/PHP_5_3_2/ext/intl/normalizer/normalizer_normalize.c A + php/php-src/branches/PHP_5_3_2/ext/intl/tests/badargs.phpt (from php/php-src/branches/PHP_5_3/ext/intl/tests/badargs.phpt:r292566)
Modified: php/php-src/branches/PHP_5_3_2/ext/intl/dateformat/dateformat.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/dateformat/dateformat.c 2010-01-25 13:55:41 UTC (rev 293978) +++ php/php-src/branches/PHP_5_3_2/ext/intl/dateformat/dateformat.c 2010-01-25 13:59:35 UTC (rev 293979) @@ -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_2/ext/intl/formatter/formatter_main.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/formatter/formatter_main.c 2010-01-25 13:55:41 UTC (rev 293978) +++ php/php-src/branches/PHP_5_3_2/ext/intl/formatter/formatter_main.c 2010-01-25 13:59:35 UTC (rev 293979) @@ -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_2/ext/intl/grapheme/grapheme_string.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/grapheme/grapheme_string.c 2010-01-25 13:55:41 UTC (rev 293978) +++ php/php-src/branches/PHP_5_3_2/ext/intl/grapheme/grapheme_string.c 2010-01-25 13:59:35 UTC (rev 293979) @@ -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_2/ext/intl/grapheme/grapheme_util.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/grapheme/grapheme_util.c 2010-01-25 13:55:41 UTC (rev 293978) +++ php/php-src/branches/PHP_5_3_2/ext/intl/grapheme/grapheme_util.c 2010-01-25 13:59:35 UTC (rev 293979) @@ -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_2/ext/intl/idn/idn.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/idn/idn.c 2010-01-25 13:55:41 UTC (rev 293978) +++ php/php-src/branches/PHP_5_3_2/ext/intl/idn/idn.c 2010-01-25 13:59:35 UTC (rev 293979) @@ -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_2/ext/intl/intl_error.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/intl_error.c 2010-01-25 13:55:41 UTC (rev 293978) +++ php/php-src/branches/PHP_5_3_2/ext/intl/intl_error.c 2010-01-25 13:59:35 UTC (rev 293979) @@ -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_2/ext/intl/intl_error.h =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/intl_error.h 2010-01-25 13:55:41 UTC (rev 293978) +++ php/php-src/branches/PHP_5_3_2/ext/intl/intl_error.h 2010-01-25 13:59:35 UTC (rev 293979) @@ -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_2/ext/intl/locale/locale_methods.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/locale/locale_methods.c 2010-01-25 13:55:41 UTC (rev 293978) +++ php/php-src/branches/PHP_5_3_2/ext/intl/locale/locale_methods.c 2010-01-25 13:59:35 UTC (rev 293979) @@ -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_2/ext/intl/normalizer/normalizer_normalize.c =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/normalizer/normalizer_normalize.c 2010-01-25 13:55:41 UTC (rev 293978) +++ php/php-src/branches/PHP_5_3_2/ext/intl/normalizer/normalizer_normalize.c 2010-01-25 13:59:35 UTC (rev 293979) @@ -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; } Copied: php/php-src/branches/PHP_5_3_2/ext/intl/tests/badargs.phpt (from rev 292566, php/php-src/branches/PHP_5_3/ext/intl/tests/badargs.phpt) =================================================================== --- php/php-src/branches/PHP_5_3_2/ext/intl/tests/badargs.phpt (rev 0) +++ php/php-src/branches/PHP_5_3_2/ext/intl/tests/badargs.phpt 2010-01-25 13:59:35 UTC (rev 293979) @@ -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!
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php