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

Reply via email to