]> granicus.if.org Git - php/commitdiff
Fixed Bug #52063 (DateTime constructor's second argument doesn't have a null default...
authorStanislav Malyshev <stas@php.net>
Mon, 24 Jan 2011 01:15:41 +0000 (01:15 +0000)
committerStanislav Malyshev <stas@php.net>
Mon, 24 Jan 2011 01:15:41 +0000 (01:15 +0000)
NEWS
ext/date/php_date.c
ext/date/tests/bug52063.phpt [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 86e983f54ce59d648e4d1bd553e44f914cbd3897..35461b41554a82a374b6ec02c3c4ad2ba1edeae0 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -36,6 +36,8 @@
     no effect. (Derick)
   . Fixed bug #53729 (DatePeriod fails to initialize recurrences on 64bit
     big-endian systems). (Derick, rein@basefarm.no)
+  . Fixed bug #52063 (DateTime constructor's second argument doesn't have a 
+    null default value). (Gustavo, Stas)
 
 - Filter extension:
   . Fixed bug #53150 (FILTER_FLAG_NO_RES_RANGE is missing some IP ranges).
index 7a375974659695a3d042e98a52bc37c2384696e3..876e2e39e45d88491c045451e8fdffa5a77eed9e 100644 (file)
@@ -2465,7 +2465,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;
        }
 
@@ -2507,7 +2507,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);
diff --git a/ext/date/tests/bug52063.phpt b/ext/date/tests/bug52063.phpt
new file mode 100644 (file)
index 0000000..af9da9e
--- /dev/null
@@ -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