Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ PHP NEWS
. Fixed bug GH-20217 (ReflectionClass::isIterable() incorrectly returns true
for classes with property hooks). (alexandre-daubois)

- Session:
. Fixed bug 71162 (updateTimestamp never called when session data is empty).
(Girgias)

- Soap:
. Soap::__setCookie() when cookie name is a digit is now not stored and
represented as a string anymore but a int. (David Carlier)
Expand Down
4 changes: 4 additions & 0 deletions UPGRADING
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ PHP 8.6 UPGRADE NOTES
- Session:
. A ValueError is not thrown if $name is a string containing null bytes in
session_module_name().
. session_encode() now returns an empty string instead of false for empty
sessions. It only returns false now when the session data could not be
encoded. This mainly happens with the default serialization handler
if a key contains the pipe | character.

- Standard:
. Invalid mode values now throw in array_filter() instead of being silently
Expand Down
5 changes: 5 additions & 0 deletions UPGRADING.INTERNALS
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ PHP 8.6 INTERNALS UPGRADE NOTES
zend_string* parameter.
. EG(in_autoload) was renamed to EG(autoload_current_classnames) and no
longer is a pointer, but a directly embedded HashTable struct.
. Added a C23_ENUM() helper macro to define forward-compatible fixed-size
enums.

========================
2. Build system changes
Expand Down Expand Up @@ -104,6 +106,9 @@ PHP 8.6 INTERNALS UPGRADE NOTES

- ext/session:
. php_session_flush() now returns a bool rather than a zend_result.
. The mod_user_names global has been removed.
. The mod_user_uses_object_methods_as_handlers global has been added,
it indicates whether the session handlers are methods of an object or not.
. Removed session_adapt_url().
. PS_OPEN_ARGS is now defined as
`void **mod_data, zend_string *save_path, zend_string *session_name`
Expand Down
20 changes: 11 additions & 9 deletions Zend/zend_compile.h
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,12 @@ typedef struct _zend_class_constant {

#define ZEND_CLASS_CONST_FLAGS(c) Z_CONSTANT_FLAGS((c)->value)

C23_ENUM(zend_function_type, uint8_t) {
ZEND_INTERNAL_FUNCTION = 1,
ZEND_USER_FUNCTION = 2,
ZEND_EVAL_CODE = 4,
};

/* arg_info for internal functions */
typedef struct _zend_internal_arg_info {
const char *name;
Expand Down Expand Up @@ -524,7 +530,7 @@ typedef struct _zend_internal_function_info {

struct _zend_op_array {
/* Common elements */
uint8_t type;
zend_function_type type;
uint8_t arg_flags[3]; /* bitset of arg_info.pass_by_reference */
uint32_t fn_flags;
zend_string *function_name;
Expand Down Expand Up @@ -584,7 +590,7 @@ typedef void (ZEND_FASTCALL *zif_handler)(INTERNAL_FUNCTION_PARAMETERS);

typedef struct _zend_internal_function {
/* Common elements */
uint8_t type;
zend_function_type type;
uint8_t arg_flags[3]; /* bitset of arg_info.pass_by_reference */
uint32_t fn_flags;
zend_string* function_name;
Expand All @@ -610,11 +616,11 @@ typedef struct _zend_internal_function {
#define ZEND_FN_SCOPE_NAME(function) ((function) && (function)->common.scope ? ZSTR_VAL((function)->common.scope->name) : "")

union _zend_function {
uint8_t type; /* MUST be the first element of this struct! */
zend_function_type type; /* MUST be the first element of this struct! */
uint32_t quick_arg_flags;

struct {
uint8_t type; /* never used */
zend_function_type type; /* never used */
uint8_t arg_flags[3]; /* bitset of arg_info.pass_by_reference */
uint32_t fn_flags;
zend_string *function_name;
Expand Down Expand Up @@ -956,7 +962,7 @@ ZEND_API zend_ast *zend_compile_string_to_ast(
ZEND_API zend_result zend_execute_scripts(int type, zval *retval, int file_count, ...);
ZEND_API zend_result zend_execute_script(int type, zval *retval, zend_file_handle *file_handle);
ZEND_API zend_result open_file_for_scanning(zend_file_handle *file_handle);
ZEND_API void init_op_array(zend_op_array *op_array, uint8_t type, int initial_ops_size);
ZEND_API void init_op_array(zend_op_array *op_array, zend_function_type type, int initial_ops_size);
ZEND_API void destroy_op_array(zend_op_array *op_array);
ZEND_API void zend_destroy_static_vars(zend_op_array *op_array);
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle);
Expand Down Expand Up @@ -1071,10 +1077,6 @@ ZEND_API zend_string *zend_type_to_string(zend_type type);
#define BP_VAR_FUNC_ARG 4
#define BP_VAR_UNSET 5

#define ZEND_INTERNAL_FUNCTION 1
#define ZEND_USER_FUNCTION 2
#define ZEND_EVAL_CODE 4

#define ZEND_USER_CODE(type) ((type) != ZEND_INTERNAL_FUNCTION)

#define ZEND_INTERNAL_CLASS 1
Expand Down
Loading
Loading