]> granicus.if.org Git - php/commitdiff
Some changes were lost in the merge commit of #66091
authorTjerk Meesters <datibbaw@php.net>
Wed, 13 Aug 2014 12:57:10 +0000 (20:57 +0800)
committerTjerk Meesters <datibbaw@php.net>
Wed, 13 Aug 2014 12:57:10 +0000 (20:57 +0800)
ext/date/php_date.c

index 1f7ee758c1cb1e1b54b9a45553c376a4533279ea..39b25d9cb59c25125a03d0e0e6b60bd69dec59f9 100644 (file)
@@ -2667,14 +2667,19 @@ PHP_FUNCTION(date_create_immutable)
        zval           *timezone_object = NULL;
        char           *time_str = NULL;
        int             time_str_len = 0;
+       zval            datetime_object;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sO!", &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
                RETURN_FALSE;
        }
 
-       php_date_instantiate(date_ce_immutable, return_value TSRMLS_CC);
-       if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) {
+       php_date_instantiate(date_ce_immutable, &datetime_object TSRMLS_CC);
+       if (!php_date_initialize(zend_object_store_get_object(&datetime_object TSRMLS_CC), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) {
+               zval_dtor(&datetime_object);
                RETURN_FALSE;
+       } else {
+               zval *datetime_object_ptr = &datetime_object;
+               RETVAL_ZVAL(datetime_object_ptr, 0, 0);
        }
 }
 /* }}} */
@@ -2712,14 +2717,19 @@ PHP_FUNCTION(date_create_immutable_from_format)
        zval           *timezone_object = NULL;
        char           *time_str = NULL, *format_str = NULL;
        int             time_str_len = 0, format_str_len = 0;
+       zval            datetime_object;
 
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|O", &format_str, &format_str_len, &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
                RETURN_FALSE;
        }
 
-       php_date_instantiate(date_ce_immutable, return_value TSRMLS_CC);
-       if (!php_date_initialize(zend_object_store_get_object(return_value TSRMLS_CC), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) {
+       php_date_instantiate(date_ce_immutable, &datetime_object TSRMLS_CC);
+       if (!php_date_initialize(zend_object_store_get_object(&datetime_object TSRMLS_CC), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) {
+               zval_dtor(&datetime_object);
                RETURN_FALSE;
+       } else {
+               zval *datetime_object_ptr = &datetime_object;
+               RETVAL_ZVAL(datetime_object_ptr, 0, 0);
        }
 }
 /* }}} */