Browse Source

Fixed Bug #52063 (DateTime constructor's second argument doesn't have a null default value)

experimental/with_scalar_types
Stanislav Malyshev 16 years ago
parent
commit
a6c0a4e474
  1. 4
      ext/date/php_date.c
  2. 15
      ext/date/tests/bug52063.phpt

4
ext/date/php_date.c

@ -2460,7 +2460,7 @@ PHP_FUNCTION(date_create)
char *time_str = NULL;
int time_str_len = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO", &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO!", &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
RETURN_FALSE;
}
@ -2502,7 +2502,7 @@ PHP_METHOD(DateTime, __construct)
zend_error_handling error_handling;
zend_replace_error_handling(EH_THROW, NULL, &error_handling TSRMLS_CC);
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO", &time_str, &time_str_len, &timezone_object, date_ce_timezone)) {
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO!", &time_str, &time_str_len, &timezone_object, date_ce_timezone)) {
php_date_initialize(zend_object_store_get_object(getThis() TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 1 TSRMLS_CC);
}
zend_restore_error_handling(&error_handling TSRMLS_CC);

15
ext/date/tests/bug52063.phpt

@ -0,0 +1,15 @@
--TEST--
Bug #52063 (DateTime constructor's second argument doesn't have a null default value)
--FILE--
<?php
date_default_timezone_set("Europe/Lisbon");
$a = new DateTime("2009-01-01", null);
echo $a->format(DateTime::COOKIE);
echo "\n";
$a = date_create("2009-01-01", null);
echo $a->format(DateTime::COOKIE);
echo "\n";
?>
--EXPECTF--
Thursday, 01-Jan-09 00:00:00 WET
Thursday, 01-Jan-09 00:00:00 WET
Loading…
Cancel
Save