com php-src: More zpp cleanup in ext/intl: ext/intl/calendar/ca lendar_methods.cpp ext/intl/tests/calendar_clear_erro r.phpt
ext/intl/timezone/timezone_methods.cpp

From: Date: Tue, 06 Oct 2015 20:58:02 +0000
Subject: com php-src: More zpp cleanup in ext/intl: ext/intl/calendar/ca lendar_methods.cpp ext/intl/tests/calendar_clear_erro r.phpt
ext/intl/timezone/timezone_methods.cpp
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-89312@lists.php.net to get a copy of this message
Commit: 0a3c1fb4c2e8d02031c74da49d5a702cafbd3f0b Author: Nikita Popov <nikic@php.net> Tue, 6 Oct 2015 22:32:28 +0200 Parents: e193d35c1ed1307b06cc25c2b720d0141703798c Branches: PHP-7.0 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=0a3c1fb4c2e8d02031c74da49d5a702cafbd3f0b Log: More zpp cleanup in ext/intl Changed paths: M ext/intl/calendar/calendar_methods.cpp M ext/intl/tests/calendar_clear_error.phpt M ext/intl/timezone/timezone_methods.cpp Diff: diff --git a/ext/intl/calendar/calendar_methods.cpp b/ext/intl/calendar/calendar_methods.cpp index adeae6b..155ed5f 100644 --- a/ext/intl/calendar/calendar_methods.cpp +++ b/ext/intl/calendar/calendar_methods.cpp @@ -522,48 +522,28 @@ U_CFUNC PHP_FUNCTION(intlcal_roll) U_CFUNC PHP_FUNCTION(intlcal_clear) { - zval args_a[2] = {0}, - *args = &args_a[0]; - zend_long field; - int variant; + zend_long field; + zend_bool field_is_null = 1; CALENDAR_METHOD_INIT_VARS; - if (ZEND_NUM_ARGS() > (getThis() ? 1 : 2) || - zend_get_parameters_array_ex(ZEND_NUM_ARGS(), args) == FAILURE) { - intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR, - "intlcal_clear: too many arguments", 0); - RETURN_FALSE; - } - if (!getThis()) { - args++; - } - if (Z_ISUNDEF(args[0]) || Z_TYPE(args[0]) == IS_NULL) { - zval *dummy; /* we know it's null */ - if (zend_parse_method_parameters(ZEND_NUM_ARGS(), - getThis(), "O|z", &object, Calendar_ce_ptr, &dummy) == FAILURE) { - intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR, - "intlcal_clear: bad arguments", 0); - RETURN_FALSE; - } - variant = 0; - } else if (zend_parse_method_parameters(ZEND_NUM_ARGS(), - getThis(), "Ol", &object, Calendar_ce_ptr, &field) == FAILURE) { + if (zend_parse_method_parameters(ZEND_NUM_ARGS(), + getThis(), "O|l!", &object, Calendar_ce_ptr, &field, &field_is_null) == FAILURE) { intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR, "intlcal_clear: bad arguments", 0); RETURN_FALSE; - } else if (field < 0 || field >= UCAL_FIELD_COUNT) { - intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR, - "intlcal_clear: invalid field", 0); - RETURN_FALSE; - } else { - variant = 1; } CALENDAR_METHOD_FETCH_OBJECT; - if (variant == 0) { + if (field_is_null) { co->ucal->clear(); } else { + if (field < 0 || field >= UCAL_FIELD_COUNT) { + intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR, + "intlcal_clear: invalid field", 0); + RETURN_FALSE; + } + co->ucal->clear((UCalendarDateFields)field); } @@ -614,7 +594,7 @@ U_CFUNC PHP_FUNCTION(intlcal_get_actual_minimum) #if U_ICU_VERSION_MAJOR_NUM * 10 + U_ICU_VERSION_MINOR_NUM >= 44 U_CFUNC PHP_FUNCTION(intlcal_get_day_of_week_type) { - zend_ulong dow; + zend_long dow; CALENDAR_METHOD_INIT_VARS; if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), diff --git a/ext/intl/tests/calendar_clear_error.phpt b/ext/intl/tests/calendar_clear_error.phpt index 7e9c52b..7ff2ff0 100644 --- a/ext/intl/tests/calendar_clear_error.phpt +++ b/ext/intl/tests/calendar_clear_error.phpt @@ -18,8 +18,9 @@ var_dump($c->clear(-1)); var_dump(intlcal_clear($c, -1)); var_dump(intlcal_clear(1, 2)); --EXPECTF-- +Warning: IntlCalendar::clear() expects at most 1 parameter, 2 given in %s on line %d -Warning: IntlCalendar::clear(): intlcal_clear: too many arguments in %s on line %d +Warning: IntlCalendar::clear(): intlcal_clear: bad arguments in %s on line %d bool(false) Warning: IntlCalendar::clear(): intlcal_clear: invalid field in %s on line %d diff --git a/ext/intl/timezone/timezone_methods.cpp b/ext/intl/timezone/timezone_methods.cpp index c46b448..a35174d 100644 --- a/ext/intl/timezone/timezone_methods.cpp +++ b/ext/intl/timezone/timezone_methods.cpp @@ -440,7 +440,7 @@ U_CFUNC PHP_FUNCTION(intltz_use_daylight_time) U_CFUNC PHP_FUNCTION(intltz_get_offset) { - UDate date; + double date; zend_bool local; zval *rawOffsetArg, *dstOffsetArg; @@ -458,7 +458,7 @@ U_CFUNC PHP_FUNCTION(intltz_get_offset) TIMEZONE_METHOD_FETCH_OBJECT; - to->utimezone->getOffset(date, (UBool) local, rawOffset, dstOffset, + to->utimezone->getOffset((UDate) date, (UBool) local, rawOffset, dstOffset, TIMEZONE_ERROR_CODE(to)); INTL_METHOD_CHECK_STATUS(to, "intltz_get_offset: error obtaining offset");

« previous php.cvs (#89312) next »