From: Dmitry Stogov Date: Thu, 14 Aug 2014 19:30:49 +0000 (+0400) Subject: Merge branch 'master' into phpng X-Git-Tag: POST_PHPNG_MERGE~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7497c8793d928d2f025709d573150fb5e158ea9d;p=php Merge branch 'master' into phpng * master: (51 commits) Update Git rules Back to -dev (with EOL notice in NEWS) new NEWS block for the next release It's 2014 already, fix copyright year where user visible PHP 5.3.29 Some changes were lost in the merge commit of #66091 Updated NEWS for #66091 Fixed #66091 Updated NEWS for #66091 Updated NEWS for #66091 Fixed #66091 updated NEWS updated NEWS updated NEWS backported the fix for bug #41577 NEWS entry for e6d93a1 / d73d44c restore FPM compatibility with mod_fastcgi broken since #694 / 67541, fixes bug 67606 Revert "Merge branch 'pull-request/694' into PHP-5.6" PHP 5.3.29RC1 Fix missing type checks in various functions ... Conflicts: ext/date/php_date.c ext/standard/math.c --- 7497c8793d928d2f025709d573150fb5e158ea9d diff --cc ext/com_dotnet/com_dotnet.c index c582309c28,073f40f83a..9698fb3419 --- a/ext/com_dotnet/com_dotnet.c +++ b/ext/com_dotnet/com_dotnet.c @@@ -207,12 -208,38 +208,38 @@@ PHP_FUNCTION(com_dotnet_create_instance if (err) LocalFree(err); php_com_throw_exception(hr, buf TSRMLS_CC); - ZVAL_NULL(object); + ZEND_CTOR_MAKE_NULL(); return; } - } + stuff = (struct dotnet_runtime_stuff*)COMG(dotnet_runtime_stuff); - stuff = (struct dotnet_runtime_stuff*)COMG(dotnet_runtime_stuff); + } else if (stuff->dotnet_domain == NULL) { + where = "ICorRuntimeHost_GetDefaultDomain"; + hr = ICorRuntimeHost_GetDefaultDomain(stuff->dotnet_host, &unk); + if (FAILED(hr)) { + char buf[1024]; + char *err = php_win32_error_to_msg(hr); + snprintf(buf, sizeof(buf), "Failed to re-init .Net domain [%s] %s", where, err); + if (err) + LocalFree(err); + php_com_throw_exception(hr, buf TSRMLS_CC); + ZVAL_NULL(object); + return; + } + + where = "QI: System._AppDomain"; + hr = IUnknown_QueryInterface(unk, &IID_mscorlib_System_AppDomain, (LPVOID*)&stuff->dotnet_domain); + if (FAILED(hr)) { + char buf[1024]; + char *err = php_win32_error_to_msg(hr); + snprintf(buf, sizeof(buf), "Failed to re-init .Net domain [%s] %s", where, err); + if (err) + LocalFree(err); + php_com_throw_exception(hr, buf TSRMLS_CC); + ZVAL_NULL(object); + return; + } + } obj = CDNO_FETCH(object); diff --cc ext/date/php_date.c index cc0499da0b,24e16e3936..6cea2af048 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@@ -2601,11 -2653,12 +2602,12 @@@ PHP_FUNCTION(date_create RETURN_FALSE; } - php_date_instantiate(date_ce_date, return_value TSRMLS_CC); - if (!php_date_initialize(Z_PHPDATE_P(return_value), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) { - zval_dtor(return_value); + php_date_instantiate(date_ce_date, &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)) { ++ if (!php_date_initialize(Z_PHPDATE_P(&datetime_object), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) { + zval_dtor(&datetime_object); RETURN_FALSE; } + RETVAL_ZVAL(&datetime_object, 0, 0); } /* }}} */ @@@ -2622,11 -2676,12 +2625,12 @@@ PHP_FUNCTION(date_create_immutable RETURN_FALSE; } - php_date_instantiate(date_ce_immutable, return_value TSRMLS_CC); - if (!php_date_initialize(Z_PHPDATE_P(return_value), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) { - zval_dtor(return_value); + 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)) { ++ if (!php_date_initialize(Z_PHPDATE_P(&datetime_object), time_str, time_str_len, NULL, timezone_object, 0 TSRMLS_CC)) { + zval_dtor(&datetime_object); RETURN_FALSE; } + RETVAL_ZVAL(&datetime_object, 0, 0); } /* }}} */ @@@ -2643,11 -2699,12 +2648,12 @@@ PHP_FUNCTION(date_create_from_format RETURN_FALSE; } - php_date_instantiate(date_ce_date, return_value TSRMLS_CC); - if (!php_date_initialize(Z_PHPDATE_P(return_value), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) { - zval_dtor(return_value); + php_date_instantiate(date_ce_date, &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)) { ++ if (!php_date_initialize(Z_PHPDATE_P(&datetime_object), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) { + zval_dtor(&datetime_object); RETURN_FALSE; } + RETVAL_ZVAL(&datetime_object, 0, 0); } /* }}} */ @@@ -2664,11 -2722,12 +2671,12 @@@ PHP_FUNCTION(date_create_immutable_from RETURN_FALSE; } - php_date_instantiate(date_ce_immutable, return_value TSRMLS_CC); - if (!php_date_initialize(Z_PHPDATE_P(return_value), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) { - zval_dtor(return_value); + 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)) { ++ if (!php_date_initialize(Z_PHPDATE_P(&datetime_object), time_str, time_str_len, format_str, timezone_object, 0 TSRMLS_CC)) { + zval_dtor(&datetime_object); RETURN_FALSE; } + RETVAL_ZVAL(&datetime_object, 0, 0); } /* }}} */ @@@ -2738,12 -2797,12 +2746,12 @@@ PHP_METHOD(DateTimeImmutable, createFro } /* }}} */ - static int php_date_initialize_from_hash(zval *return_value, php_date_obj **dateobj, HashTable *myht TSRMLS_DC) /* {{{ */ + static int php_date_initialize_from_hash(php_date_obj **dateobj, HashTable *myht TSRMLS_DC) { - zval **z_date = NULL; - zval **z_timezone = NULL; - zval **z_timezone_type = NULL; - zval *tmp_obj = NULL; + zval *z_date; + zval *z_timezone; + zval *z_timezone_type; + zval tmp_obj; timelib_tzinfo *tzi; php_timezone_obj *tzobj; @@@ -2809,8 -2866,8 +2817,8 @@@ PHP_METHOD(DateTime, __set_state myht = HASH_OF(array); php_date_instantiate(date_ce_date, return_value TSRMLS_CC); - dateobj = (php_date_obj *) zend_object_store_get_object(return_value TSRMLS_CC); + dateobj = Z_PHPDATE_P(return_value); - if (!php_date_initialize_from_hash(return_value, &dateobj, myht TSRMLS_CC)) { + if (!php_date_initialize_from_hash(&dateobj, myht TSRMLS_CC)) { php_error(E_ERROR, "Invalid serialization data for DateTime object"); } } @@@ -2831,8 -2888,8 +2839,8 @@@ PHP_METHOD(DateTimeImmutable, __set_sta myht = HASH_OF(array); php_date_instantiate(date_ce_immutable, return_value TSRMLS_CC); - dateobj = (php_date_obj *) zend_object_store_get_object(return_value TSRMLS_CC); + dateobj = Z_PHPDATE_P(return_value); - if (!php_date_initialize_from_hash(return_value, &dateobj, myht TSRMLS_CC)) { + if (!php_date_initialize_from_hash(&dateobj, myht TSRMLS_CC)) { php_error(E_ERROR, "Invalid serialization data for DateTimeImmutable object"); } }