From: Dmitry Stogov Date: Tue, 18 Oct 2016 12:09:44 +0000 (+0300) Subject: Merge branch 'PHP-7.0' into PHP-7.1 X-Git-Tag: php-7.1.0RC5~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c31d66b3fdab3c7ab8e71ef7e02f90421851a495;p=php Merge branch 'PHP-7.0' into PHP-7.1 * PHP-7.0: Fixed bug #73337 (try/catch not working with two exceptions inside a same operation) Revert "Fix bug #47890 #73215 uniqid() should use better random source" Update NEWS --- c31d66b3fdab3c7ab8e71ef7e02f90421851a495 diff --cc NEWS index f16fc913cf,be20d3ba96..f20c8ad315 --- a/NEWS +++ b/NEWS @@@ -1,45 -1,18 +1,48 @@@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| -?? ??? 2016 PHP 7.0.13 +?? ??? ????, PHP 7.1.0RC5 - Core: - . Fixed bug #73181 (parse_str() without a second argument leads to crash). - (Nikita) - . Fixed bug #66773 (Autoload with Opcache allows importing conflicting class - name to namespace). (Nikita) - . Fixed bug #66862 ((Sub-)Namespaces unexpected behaviour). (Nikita) + . Fixed bug #73215 (uniqid() should use better random source). (Yasuo) + +- SQLite3: + . Fixed bug #73333 (2147483647 is fetched as string). (cmb) + +19 Oct 2016, PHP 7.1.0RC4 + +- Core: + . Fixed bug #73288 (Segfault in __clone > Exception.toString > __get). + (Laruence) + . Fixed for #73240 (Write out of bounds at number_format). (Stas) . Fix pthreads detection when cross-compiling (ffontaine) + . Fixed bug #73215 (uniqid() should use better random source). (Yasuo) + . Fixed bug #73337 (try/catch not working with two exceptions inside a same + operation). (Dmitry) +- BCmath: + . Fix bug #73190 (memcpy negative parameter _bc_new_num_ex). (Stas) + +- Date: + . Fixed bug #45554 (Inconsistent behavior of the u format char). (Derick) + . Fixed bug #48225 (DateTime parser doesn't set microseconds for "now"). + (Derick) + . Fixed bug #52514 (microseconds are missing in DateTime class). (Derick) + . Fixed bug #52519 (microseconds in DateInterval are missing). (Derick) + . Fixed bug #60089 (DateTime::createFromFormat() U after u nukes microtime). + (Derick) + . Fixed bug #64887 (Allow DateTime modification with subsecond items). + (Derick) + . Fixed bug #68506 (General DateTime improvments needed for microseconds to + become useful). (Derick) + . Fixed bug #73109 (timelib_meridian doesn't parse dots correctly). (Derick) + . Fixed bug #73247 (DateTime constructor does not initialise microseconds + property). (Derick) + . Fixed bug #73147 (Use After Free in PHP7 unserialize()). (Stas) + . Fixed bug #73189 (Memcpy negative size parameter php_resolve_path). (Stas) + +- DOM: + . Fixed bug #73150 (missing NULL check in dom_document_save_html). (Stas) + - GD: . Fixed bug #73213 (Integer overflow in imageline() with antialiasing). (cmb) . Fixed bug #73272 (imagescale() is not affected by, but affects diff --cc Zend/zend_execute_API.c index 2e299e8515,f96cac5f09..fc4a39acb6 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@@ -820,10 -844,22 +820,13 @@@ int zend_call_function(zend_fcall_info ZEND_ADD_CALL_FLAG(call, ZEND_CALL_CLOSURE); } - /* PHP-7 doesn't support symbol_table substitution for functions */ - ZEND_ASSERT(fci->symbol_table == NULL); - -- if (func->type == ZEND_USER_FUNCTION) { ++ if (func->type == ZEND_USER_FUNCTION) { int call_via_handler = (func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE) != 0; - EG(scope) = func->common.scope; - call->symbol_table = fci->symbol_table; - if (EXPECTED((func->op_array.fn_flags & ZEND_ACC_GENERATOR) == 0)) { - const zend_op *current_opline_before_exception = EG(opline_before_exception); - - zend_init_execute_data(call, &func->op_array, fci->retval); - zend_execute_ex(call); - EG(opline_before_exception) = current_opline_before_exception; - } else { - zend_generator_create_zval(call, &func->op_array, fci->retval); - } ++ const zend_op *current_opline_before_exception = EG(opline_before_exception); ++ + zend_init_execute_data(call, &func->op_array, fci->retval); + zend_execute_ex(call); ++ EG(opline_before_exception) = current_opline_before_exception; if (call_via_handler) { /* We must re-initialize function again */ fci_cache->initialized = 0;