* master:
Fix still broken session test. Only return true/false.
Fixed bug #66830 (Empty header causes PHP built-in web server to hang).
Followup fix to custom session save handlers
create locales and re-add test
rm test for now
Conflicts:
ext/session/tests/session_set_save_handler_class_012.phpt
We had an infinite loop in sapi_cli_server_send_headers(): while iterating over
the linked list of headers, when an empty header was hit, continue would go to
the next iteration of the loop without updating h to be the next value in the
linked list. Updating it to always increment regardless of whether the header
is actually valid or not fixes the issue.
2d9885c introduced some regressions. This addresses those.
* Don't throw return type notice or session write failure when in an exception
* Fix tests to properly return true/false since null is no longer falsy/successy
* Rerecord a few tests to accomodate difference in raised warnings
* master: (48 commits)
change locale - looks like not everybody has sl_SI
Fix bug #66921 - Wrong argument type hint for function intltz_from_date_time_zone
fix format
Fix bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting)
Make sure the generator script also creates a newline at the end of file
Add newline at end of file to prevent compilation warning
Fix handling of session user module custom handlers.
Reference bug report instead of github issue in NEWS file
add more exts for Travis
Update NEWS
Fix phpdbg.1 man page installation when build != src directory
BFN for bug #67551 (php://input temp file will be located in sys_temp_dir instead of upload_tmp_dir)
reorder
restore API compatibility
finish
refactor php_stream_temp_create{,_ex} and use it for the php://input stream
refactor _php_stream_fopen_{temporary_,tmp}file()
fix length overflow of HTTP_RAW_POST_DATA
Update NEWS
Fixed bug #67215 (php-cgi work with opcache, may be segmentation fault happen)
...
Conflicts:
ext/opcache/zend_accelerator_util_funcs.c
ext/session/mod_user.c
ext/spl/spl_array.c
ext/spl/spl_dllist.c
ext/standard/file.c
ext/standard/streamsfuncs.c
ext/standard/string.c
main/streams/memory.c
* call-frame:
Simplify call-frame handling
Removed EG(active_symbol_table) and use corresponding value from EG(current_execute_data)
Use values from current_execute_data instead of globals where possible
Removed EG(called_scope) and use corresponding value from EG(current_execute_data)
Removed EG(in_execution). If EG(currentent_execute_data) is not NULL we are executing something.
Removed EG(opline_ptr) and use corresponding value from EG(current_execute_data)
Removed EG(active_op_array) and use corresponding value from EG(current_execute_data)
Uinified call frame handling for user and internal functions. Now EG(current_execute_data) always point to the call frame of the currently executed function.
Fixed cleanup of incompleytely passed parameters
Prohibited parameter redefinition
Fixed support for extra arguments in conjunction with variadiv argument. Use compile time flags to check if we call constructor and result of ZEND_NEW is used or not.
Fixed uninitialized variables
Optimization
Changed zend_execute_data layout to reduce memory overhead
Help C compilet to do the better job optimizing target code
Use fast comparison for (func->type == ZEND_USER_FUNCTION || func->type == ZEND_EVAL_CODE)
Keep extra args in the same VM stack segment (after all CV and TMP vars)
Refactoring: merge call_frame and end_execute_data into single data structure. Keep only single copy of each argument on VM stack (previously ZE kept two copies of each arguments for user functions)
Refactoring: use call_frames instead of call_slots
Conflicts:
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
* PHP-5.6:
Fix bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting)
Make sure the generator script also creates a newline at the end of file
Add newline at end of file to prevent compilation warning
* PHP-5.5:
Fix bug #67052 (NumberFormatter::parse() resets LC_NUMERIC setting)
Make sure the generator script also creates a newline at the end of file
Add newline at end of file to prevent compilation warning
According to the documentation, returning TRUE from
user based session handlers should indicate success,
while returning FALSE should indicate failure.
The existing logic relied on casting the return value
to an integer and returning that from the function.
However, the internal handlers use SUCCESS/FAILURE
where SUCCESS == 0, and FAILURE == -1, so the following
behavior map occurs:
return false; => return 0; => return SUCCESS
return true; => return 1; => return <undefined>
Since the session API checks against FAILURE,
both boolean responses wind up appearing like "not FAILURE".
This diff reasserts boolean responses to behave as
documented and introduces some special handling
for integer responses of 0 and -1 so that code can be
written for older and newer versions of PHP.