From 06c502b67b401eb69785bb34243a2d45d72c43c8 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 12 Jan 2023 19:49:38 +0100 Subject: [PATCH 01/20] Zend/zend_execute: always include zend_globals.h Commit ecc880f491d was incomplete; EG() is used in inline functions outside of ZEND_DEBUG. --- Zend/zend_execute.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index b7aa52764718..300db3902f4a 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -22,15 +22,12 @@ #define ZEND_EXECUTE_H #include "zend_compile.h" // for zend_op_array +#include "zend_globals.h" // for struct _zend_executor_globals +#include "zend_globals_macros.h" // for EG() #include "zend_list.h" // for zend_rsrc_list_get_rsrc_type() #include "zend_portability.h" // for BEGIN_EXTERN_C #include "zend_types.h" // for zend_execute_data -#if ZEND_DEBUG -#include "zend_globals.h" // for struct _zend_executor_globals -#include "zend_globals_macros.h" // for EG() -#endif - BEGIN_EXTERN_C() struct _zend_fcall_info; ZEND_API extern void (*zend_execute_ex)(zend_execute_data *execute_data); From 9de78404ebf1fc8d1c486497939ad160da5721b6 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 12 Jan 2023 17:03:36 +0100 Subject: [PATCH 02/20] ext/opcache/ZendAccelerator.h: add missing include for "INIT_FUNC_ARGS" --- ext/opcache/ZendAccelerator.h | 1 + 1 file changed, 1 insertion(+) diff --git a/ext/opcache/ZendAccelerator.h b/ext/opcache/ZendAccelerator.h index 6ecc2c2bc9df..5cda73bb1d6f 100644 --- a/ext/opcache/ZendAccelerator.h +++ b/ext/opcache/ZendAccelerator.h @@ -50,6 +50,7 @@ #include "zend_extensions.h" #include "zend_compile.h" +#include "zend_modules.h" // for INIT_FUNC_ARGS #include "Optimizer/zend_optimizer.h" #include "zend_accelerator_hash.h" From 89c86f115fb3068bf7709e87512c9a9830b5ccab Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:34:59 +0100 Subject: [PATCH 03/20] Zend/zend_globals_macros: add missing include for BEGIN_EXTERN_C --- Zend/zend_globals_macros.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Zend/zend_globals_macros.h b/Zend/zend_globals_macros.h index 59b3daca53fd..60e8def86d5a 100644 --- a/Zend/zend_globals_macros.h +++ b/Zend/zend_globals_macros.h @@ -20,6 +20,8 @@ #ifndef ZEND_GLOBALS_MACROS_H #define ZEND_GLOBALS_MACROS_H +#include "zend_portability.h" // for BEGIN_EXTERN_C + typedef struct _zend_compiler_globals zend_compiler_globals; typedef struct _zend_executor_globals zend_executor_globals; typedef struct _zend_php_scanner_globals zend_php_scanner_globals; From 0226f70b229f3ac31bc3629bbca64a00f9141752 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:34:59 +0100 Subject: [PATCH 04/20] main/php.h: add missing includes --- main/php.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main/php.h b/main/php.h index b7101ed22f0a..cb1ab5ea7c8e 100644 --- a/main/php.h +++ b/main/php.h @@ -29,6 +29,8 @@ #include "php_version.h" #include "zend.h" +#include "zend_arena.h" +#include "zend_objects.h" #include "zend_sort.h" #include "php_compat.h" From 5ec615850924e2a15669104db9f4d6b335bf8600 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 21:12:08 +0100 Subject: [PATCH 05/20] Zend/zend_language_scanner: include cleanup --- Zend/zend_language_scanner.h | 8 ++++++++ Zend/zend_language_scanner.l | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Zend/zend_language_scanner.h b/Zend/zend_language_scanner.h index ca32329a557f..c93b0fea56ed 100644 --- a/Zend/zend_language_scanner.h +++ b/Zend/zend_language_scanner.h @@ -20,6 +20,14 @@ #ifndef ZEND_SCANNER_H #define ZEND_SCANNER_H +#include "zend_globals.h" // for zend_php_scanner_event +#include "zend_multibyte.h" // for zend_encoding_filter +#include "zend_portability.h" // for BEGIN_EXTERN_C +#include "zend_ptr_stack.h" +#include "zend_stack.h" + +typedef struct _zend_file_handle zend_file_handle; + typedef struct _zend_lex_state { unsigned int yy_leng; unsigned char *yy_start; diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index c73a50948d6b..c1ba518ddfba 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -27,6 +27,7 @@ # define YYDEBUG(s, c) #endif +#include "zend_language_scanner.h" #include "zend_language_scanner_defs.h" #include @@ -35,9 +36,9 @@ # include #endif #include "zend_alloc.h" +#include "zend_arena.h" #include #include "zend_compile.h" -#include "zend_language_scanner.h" #include "zend_highlight.h" #include "zend_constants.h" #include "zend_variables.h" From 0b55055ced3af52f4e45059a8e53bbdc81b20dc6 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 09:24:12 +0100 Subject: [PATCH 06/20] Zend/zend_ast: include cleanup --- Zend/zend_ast.c | 10 +++++----- Zend/zend_ast.h | 4 +++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Zend/zend_ast.c b/Zend/zend_ast.c index 70646856d3a1..0581714ab1ed 100644 --- a/Zend/zend_ast.c +++ b/Zend/zend_ast.c @@ -18,13 +18,13 @@ */ #include "zend_ast.h" -#include "zend_API.h" -#include "zend_operators.h" -#include "zend_language_parser.h" -#include "zend_smart_str.h" -#include "zend_exceptions.h" +#include "zend_API.h" // for array_set_zval_key +#include "zend_arena.h" #include "zend_constants.h" #include "zend_enum.h" +#include "zend_language_parser.h" // for T_* +#include "zend_smart_str.h" +#include "zend_exceptions.h" // for zend_throw_error ZEND_API zend_ast_process_t zend_ast_process = NULL; diff --git a/Zend/zend_ast.h b/Zend/zend_ast.h index b5df2a55a209..7fc6bef28963 100644 --- a/Zend/zend_ast.h +++ b/Zend/zend_ast.h @@ -21,7 +21,9 @@ #ifndef ZEND_AST_H #define ZEND_AST_H -#include "zend.h" +#include "zend_types.h" // for zval + +#include #ifndef ZEND_AST_SPEC # define ZEND_AST_SPEC 1 From 139568f8fe4c592adb5720113751ee2f5be97beb Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:20:23 +0100 Subject: [PATCH 07/20] Zend/zend_call_stack: include cleanup --- Zend/zend_call_stack.c | 6 +++--- Zend/zend_call_stack.h | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Zend/zend_call_stack.c b/Zend/zend_call_stack.c index dadaa60dcb20..738dfbec5172 100644 --- a/Zend/zend_call_stack.c +++ b/Zend/zend_call_stack.c @@ -18,11 +18,11 @@ /* Inspired from Chromium's stack_util.cc */ -#include "zend.h" -#include "zend_globals.h" -#include "zend_portability.h" #include "zend_call_stack.h" +#include "zend_globals.h" + #include + #ifdef ZEND_WIN32 # include # include diff --git a/Zend/zend_call_stack.h b/Zend/zend_call_stack.h index d73c333eeeae..028788ca3c0b 100644 --- a/Zend/zend_call_stack.h +++ b/Zend/zend_call_stack.h @@ -19,12 +19,14 @@ #ifndef ZEND_CALL_STACK_H #define ZEND_CALL_STACK_H -#include "zend.h" -#include "zend_portability.h" +#include "zend_portability.h" // for zend_always_inline + #ifdef __APPLE__ # include #endif +#include + #ifdef ZEND_CHECK_STACK_LIMIT typedef struct _zend_call_stack { From 101e86dabffd640f591e0c40596227f22ce502b7 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:24:56 +0100 Subject: [PATCH 08/20] Zend/zend_iterators: include cleanup --- Zend/zend_iterators.c | 6 ++++-- Zend/zend_iterators.h | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Zend/zend_iterators.c b/Zend/zend_iterators.c index f67033b11161..fd5a0895b2a0 100644 --- a/Zend/zend_iterators.c +++ b/Zend/zend_iterators.c @@ -17,8 +17,10 @@ +----------------------------------------------------------------------+ */ -#include "zend.h" -#include "zend_API.h" +#include "zend_iterators.h" +#include "zend_objects.h" +#include "zend_object_handlers.h" +#include "zend_API.h" // for INIT_CLASS_ENTRY static zend_class_entry zend_iterator_class_entry; diff --git a/Zend/zend_iterators.h b/Zend/zend_iterators.h index 5e7451f7eacc..98337961948f 100644 --- a/Zend/zend_iterators.h +++ b/Zend/zend_iterators.h @@ -17,6 +17,11 @@ +----------------------------------------------------------------------+ */ +#ifndef ZEND_ITERATORS_H +#define ZEND_ITERATORS_H + +#include "zend_types.h" // for zval + /* These iterators were designed to operate within the foreach() * structures provided by the engine, but could be extended for use * with other iterative engine opcodes. @@ -89,3 +94,5 @@ ZEND_API void zend_iterator_dtor(zend_object_iterator *iter); ZEND_API void zend_register_iterator_wrapper(void); END_EXTERN_C() + +#endif /* ZEND_ITERATORS_H */ From c7b481f24a600c0383266d64479db44db6cc11a8 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 09:21:39 +0100 Subject: [PATCH 09/20] Zend/zend_compile: include cleanup --- Zend/zend_compile.c | 28 ++++++++++++++-------------- Zend/zend_compile.h | 10 ++++------ 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 4cb9b9c85305..166d94dc0dd6 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -18,23 +18,23 @@ +----------------------------------------------------------------------+ */ -#include -#include "zend.h" -#include "zend_attributes.h" #include "zend_compile.h" +#include "zend_API.h" // for zend_get_object_type() +#include "zend_arena.h" +#include "zend_attributes.h" #include "zend_constants.h" -#include "zend_llist.h" -#include "zend_API.h" -#include "zend_exceptions.h" -#include "zend_interfaces.h" -#include "zend_virtual_cwd.h" -#include "zend_multibyte.h" -#include "zend_language_scanner.h" -#include "zend_inheritance.h" -#include "zend_vm.h" #include "zend_enum.h" -#include "zend_observer.h" -#include "zend_call_stack.h" +#include "zend_exceptions.h" // for zend_throw_exception_ex() +#include "zend_globals.h" // struct _zend_compiler_globals +#include "zend_globals_macros.h" // for CG() +#include "zend_inheritance.h" // for zend_do_link_class() +#include "zend_language_parser.h" +#include "zend_language_scanner.h" +#include "zend_list.h" // for zend_init_rsrc_list() +#include "zend_observer.h" // for zend_observer_function_declared_notify() +#include "zend_type_info.h" // for MAY_BE_* +#include "zend_virtual_cwd.h" // for IS_SLASH_P, DEFAULT_SLASH +#include "zend_vm.h" // for ZEND_VM_SET_OPCODE_HANDLER() #define SET_NODE(target, src) do { \ target ## _type = (src)->op_type; \ diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index fa9e582869fb..6f7a7d42101c 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -20,12 +20,12 @@ #ifndef ZEND_COMPILE_H #define ZEND_COMPILE_H -#include "zend.h" +#include "zend.h" // for INTERNAL_FUNCTION_PARAMETERS #include "zend_ast.h" +#include "zend_portability.h" //for ZEND_FASTCALL +#include "zend_types.h" // for zend_uchar -#include - -#include "zend_llist.h" +#include #define SET_UNUSED(op) do { \ op ## _type = IS_UNUSED; \ @@ -758,8 +758,6 @@ struct _zend_execute_data { #define ZEND_EXTRA_VALUE 1 -#include "zend_globals.h" - typedef enum _zend_compile_position { ZEND_COMPILE_POSITION_AT_SHEBANG = 0, ZEND_COMPILE_POSITION_AT_OPEN_TAG, From ab2195329a80e4354f316fd536343687097d6b15 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:35:48 +0100 Subject: [PATCH 10/20] Zend/zend_weakrefs: include cleanup --- Zend/zend_weakrefs.c | 6 +++--- Zend/zend_weakrefs.h | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Zend/zend_weakrefs.c b/Zend/zend_weakrefs.c index db95b13a7254..19cbe6fa37ef 100644 --- a/Zend/zend_weakrefs.c +++ b/Zend/zend_weakrefs.c @@ -14,11 +14,11 @@ +----------------------------------------------------------------------+ */ -#include "zend.h" -#include "zend_interfaces.h" -#include "zend_objects_API.h" #include "zend_weakrefs.h" +#include "zend_API.h" // for ZEND_BEGIN_ARG_INFO_EX +#include "zend_objects.h" // for zend_object_std_init() #include "zend_weakrefs_arginfo.h" +#include "zend_interfaces.h" // for zend_create_internal_iterator_zval() typedef struct _zend_weakref { zend_object *referent; diff --git a/Zend/zend_weakrefs.h b/Zend/zend_weakrefs.h index 506e2e9d40c5..6e3f108646c3 100644 --- a/Zend/zend_weakrefs.h +++ b/Zend/zend_weakrefs.h @@ -17,7 +17,8 @@ #ifndef ZEND_WEAKREFS_H #define ZEND_WEAKREFS_H -#include "zend_alloc.h" +#include "zend_portability.h" // for BEGIN_EXTERN_C +#include "zend_types.h" // for zval BEGIN_EXTERN_C() From 1324306faa2dfa11e97d6b1f7c98500d5b43f38b Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:27:41 +0100 Subject: [PATCH 11/20] Zend/zend_enum: include cleanup --- Zend/zend_enum.c | 10 +++++----- Zend/zend_enum.h | 7 +++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Zend/zend_enum.c b/Zend/zend_enum.c index 3e455b702cbf..11c62d83e1a7 100644 --- a/Zend/zend_enum.c +++ b/Zend/zend_enum.c @@ -16,13 +16,13 @@ +----------------------------------------------------------------------+ */ -#include "zend.h" -#include "zend_API.h" -#include "zend_compile.h" +#include "zend_enum.h" +#include "zend_arena.h" // ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX2 +#include "zend_API.h" // for INIT_CLASS_ENTRY_EX() #include "zend_enum_arginfo.h" #include "zend_interfaces.h" -#include "zend_enum.h" -#include "zend_extensions.h" +#include "zend_extensions.h" // for zend_internal_run_time_cache_reserved_size() +#include "zend_objects.h" // for zend_objects_new() #include "zend_observer.h" #define ZEND_ENUM_DISALLOW_MAGIC_METHOD(propertyName, methodName) \ diff --git a/Zend/zend_enum.h b/Zend/zend_enum.h index dbb230c4175c..895100f09229 100644 --- a/Zend/zend_enum.h +++ b/Zend/zend_enum.h @@ -19,8 +19,11 @@ #ifndef ZEND_ENUM_H #define ZEND_ENUM_H -#include "zend.h" -#include "zend_types.h" +#include "zend_compile.h" // for OBJ_PROP_NUM +#include "zend_portability.h" // for BEGIN_EXTERN_C + +typedef struct _zend_class_entry zend_class_entry; +typedef struct _zend_function_entry zend_function_entry; BEGIN_EXTERN_C() From 1c4a2d41ebd0516213237917781d3ea489582e1f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:22:28 +0100 Subject: [PATCH 12/20] Zend/zend_interfaces: include cleanup --- Zend/zend_interfaces.c | 4 +++- Zend/zend_interfaces.h | 8 ++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index d05310b737b0..52cc476578bd 100644 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -16,11 +16,13 @@ +----------------------------------------------------------------------+ */ +#include "zend_interfaces.h" #include "zend.h" #include "zend_API.h" -#include "zend_interfaces.h" +#include "zend_arena.h" #include "zend_exceptions.h" #include "zend_interfaces_arginfo.h" +#include "zend_objects.h" // for zend_object_std_init() ZEND_API zend_class_entry *zend_ce_traversable; ZEND_API zend_class_entry *zend_ce_aggregate; diff --git a/Zend/zend_interfaces.h b/Zend/zend_interfaces.h index 883e482f510c..e8291213d7fb 100644 --- a/Zend/zend_interfaces.h +++ b/Zend/zend_interfaces.h @@ -19,8 +19,12 @@ #ifndef ZEND_INTERFACES_H #define ZEND_INTERFACES_H -#include "zend.h" -#include "zend_API.h" +#include "zend_iterators.h" // for zend_object_iterator +#include "zend_portability.h" // for BEGIN_EXTERN_C + +typedef struct _zend_class_entry zend_class_entry; +typedef struct _zend_serialize_data zend_serialize_data; +typedef struct _zend_unserialize_data zend_unserialize_data; BEGIN_EXTERN_C() From 3a0b2045e4bec6f58cb7dafc3f704023b1efc7e3 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:42:10 +0100 Subject: [PATCH 13/20] Zend/zend_observer: include cleanup --- Zend/zend_observer.c | 6 +++--- Zend/zend_observer.h | 12 +++++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Zend/zend_observer.c b/Zend/zend_observer.c index 79929bfdd80e..7ff183f0efac 100644 --- a/Zend/zend_observer.c +++ b/Zend/zend_observer.c @@ -18,10 +18,10 @@ */ #include "zend_observer.h" - -#include "zend_extensions.h" +#include "zend_fibers.h" +#include "zend_extensions.h" // for zend_get_op_array_extension_handles() #include "zend_llist.h" -#include "zend_vm.h" +#include "zend_vm.h" // for ZEND_VM_SET_OPCODE_HANDLER() #define ZEND_OBSERVER_DATA(function) \ ZEND_OP_ARRAY_EXTENSION((&(function)->common), zend_observer_fcall_op_array_extension) diff --git a/Zend/zend_observer.h b/Zend/zend_observer.h index fc4d9a62c890..8c5b20b3495d 100644 --- a/Zend/zend_observer.h +++ b/Zend/zend_observer.h @@ -20,9 +20,15 @@ #ifndef ZEND_OBSERVER_H #define ZEND_OBSERVER_H -#include "zend.h" -#include "zend_compile.h" -#include "zend_fibers.h" +#include "zend_portability.h" // for BEGIN_EXTERN_C + +typedef struct _zend_class_entry zend_class_entry; +typedef struct _zend_execute_data zend_execute_data; +typedef struct _zend_fiber_context zend_fiber_context; +typedef union _zend_function zend_function; +typedef struct _zend_op_array zend_op_array; +typedef struct _zend_string zend_string; +typedef struct _zval_struct zval; BEGIN_EXTERN_C() From f6668f396a3e86ffc3e9ac69e82f3cc7a726a84b Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:48:55 +0100 Subject: [PATCH 14/20] Zend/zend_llist: include cleanup --- Zend/zend_llist.c | 2 +- Zend/zend_llist.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Zend/zend_llist.c b/Zend/zend_llist.c index 8c42b2494ea0..cdc018ae6278 100644 --- a/Zend/zend_llist.c +++ b/Zend/zend_llist.c @@ -17,8 +17,8 @@ +----------------------------------------------------------------------+ */ -#include "zend.h" #include "zend_llist.h" +#include "zend_alloc.h" //for pemalloc() #include "zend_sort.h" ZEND_API void zend_llist_init(zend_llist *l, size_t size, llist_dtor_func_t dtor, unsigned char persistent) diff --git a/Zend/zend_llist.h b/Zend/zend_llist.h index cce5ad5ce95a..e68be3cb2011 100644 --- a/Zend/zend_llist.h +++ b/Zend/zend_llist.h @@ -20,6 +20,8 @@ #ifndef ZEND_LLIST_H #define ZEND_LLIST_H +#include "zend_portability.h" // for BEGIN_EXTERN_C + typedef struct _zend_llist_element { struct _zend_llist_element *next; struct _zend_llist_element *prev; From bb41217dafd7e3774e5f24fbb14b774ca9c1b1b6 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:54:16 +0100 Subject: [PATCH 15/20] Zend/zend_gc: include cleanup --- Zend/zend_gc.c | 11 ++++++++--- Zend/zend_gc.h | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Zend/zend_gc.c b/Zend/zend_gc.c index 66324672b1e9..ccd75a0706b3 100644 --- a/Zend/zend_gc.c +++ b/Zend/zend_gc.c @@ -66,9 +66,14 @@ * * @see http://researcher.watson.ibm.com/researcher/files/us-bacon/Bacon01Concurrent.pdf */ -#include "zend.h" -#include "zend_API.h" -#include "zend_fibers.h" + +#include "zend_gc.h" +#include "zend_alloc.h" // for ZEND_MM_OVERHEAD +#include "zend_fibers.h" // for zend_fiber_switch_block() +#include "zend_globals.h" // for struct _zend_executor_globals +#include "zend_globals_macros.h" // for EG() +#include "zend_objects.h" // for zend_objects_destroy_object() +#include "zend.h" // for zend_error() #ifndef GC_BENCH # define GC_BENCH 0 diff --git a/Zend/zend_gc.h b/Zend/zend_gc.h index 0589e193f4a1..0ee7e38460e7 100644 --- a/Zend/zend_gc.h +++ b/Zend/zend_gc.h @@ -20,6 +20,9 @@ #ifndef ZEND_GC_H #define ZEND_GC_H +#include "zend_portability.h" // for BEGIN_EXTERN_C +#include "zend_types.h" // for GC_TYPE_INFO() + BEGIN_EXTERN_C() typedef struct _zend_gc_status { From b3a619d0215941451a78150ce74ec9238d0eeb1f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 4 Jan 2023 20:50:15 +0100 Subject: [PATCH 16/20] Zend/zend_objects: include cleanup --- Zend/zend_objects.c | 15 ++++++++------- Zend/zend_objects.h | 5 ++++- Zend/zend_objects_API.c | 3 ++- Zend/zend_objects_API.h | 8 ++++++-- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index df76fa0bb8dc..f82f577df512 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -18,13 +18,14 @@ +----------------------------------------------------------------------+ */ -#include "zend.h" -#include "zend_globals.h" -#include "zend_variables.h" -#include "zend_API.h" -#include "zend_interfaces.h" -#include "zend_exceptions.h" -#include "zend_weakrefs.h" +#include "zend_objects.h" +#include "zend_objects_API.h" +#include "zend_exceptions.h" // for zend_rethrow_exception() +#include "zend_execute.h" // for ZEND_REF_HAS_TYPE_SOURCES +#include "zend_types.h" // for GC_SET_REFCOUNT() +#include "zend_weakrefs.h" // for zend_weakrefs_notify() +#include "zend.h" // for struct _zend_class_entry +#include "zend_API.h" // for zend_call_known_instance_method_with_0_params() static zend_always_inline void _zend_object_std_init(zend_object *object, zend_class_entry *ce) { diff --git a/Zend/zend_objects.h b/Zend/zend_objects.h index 91d388154dd1..c998e9c60a29 100644 --- a/Zend/zend_objects.h +++ b/Zend/zend_objects.h @@ -20,7 +20,10 @@ #ifndef ZEND_OBJECTS_H #define ZEND_OBJECTS_H -#include "zend.h" +#include "zend_portability.h" // for BEGIN_EXTERN_C + +typedef struct _zend_class_entry zend_class_entry; +typedef struct _zend_object zend_object; BEGIN_EXTERN_C() ZEND_API void ZEND_FASTCALL zend_object_std_init(zend_object *object, zend_class_entry *ce); diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index 80f5b747db71..140219c07779 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -18,11 +18,12 @@ +----------------------------------------------------------------------+ */ +#include "zend_objects_API.h" +#include "zend_objects.h" // for zend_objects_destroy_object() #include "zend.h" #include "zend_globals.h" #include "zend_variables.h" #include "zend_API.h" -#include "zend_objects_API.h" #include "zend_fibers.h" ZEND_API void ZEND_FASTCALL zend_objects_store_init(zend_objects_store *objects, uint32_t init_size) diff --git a/Zend/zend_objects_API.h b/Zend/zend_objects_API.h index 7a9a3a00082c..c643a250ce75 100644 --- a/Zend/zend_objects_API.h +++ b/Zend/zend_objects_API.h @@ -20,8 +20,12 @@ #ifndef ZEND_OBJECTS_API_H #define ZEND_OBJECTS_API_H -#include "zend.h" -#include "zend_compile.h" +#include "zend_portability.h" // for BEGIN_EXTERN_C +#include "zend_gc.h" // for GC_MAY_LEAK +#include "zend_compile.h" // for ZEND_ACC_USE_GUARDS +#include "zend.h" // for _zend_class_entry + +typedef struct _zend_object zend_object; #define OBJ_BUCKET_INVALID (1<<0) From 189fcb773ec781fc0f4cd8b7c492949506787a6d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 5 Jan 2023 09:01:24 +0100 Subject: [PATCH 17/20] Zend/zend_list: include cleanup --- Zend/zend_list.c | 8 +++++--- Zend/zend_list.h | 8 ++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Zend/zend_list.c b/Zend/zend_list.c index 51ef3e1d92eb..6b2742c6808d 100644 --- a/Zend/zend_list.c +++ b/Zend/zend_list.c @@ -19,10 +19,12 @@ /* resource lists */ -#include "zend.h" #include "zend_list.h" -#include "zend_API.h" -#include "zend_globals.h" +#include "zend_execute.h" // for get_active_class_name() +#include "zend_globals.h" // for struct _zend_executor_globals +#include "zend_globals_macros.h" // for EG() +#include "zend_hash.h" +#include "zend_types.h" // for zval ZEND_API int le_index_ptr; diff --git a/Zend/zend_list.h b/Zend/zend_list.h index 680915121e2a..643abe65023c 100644 --- a/Zend/zend_list.h +++ b/Zend/zend_list.h @@ -20,8 +20,12 @@ #ifndef ZEND_LIST_H #define ZEND_LIST_H -#include "zend_hash.h" -#include "zend_globals.h" +#include "zend_portability.h" // for BEGIN_EXTERN_C + +typedef struct _zend_array HashTable; +typedef struct _zend_resource zend_resource; +typedef struct _zend_string zend_string; +typedef struct _zval_struct zval; BEGIN_EXTERN_C() From e73c1262fd7d7fd2702d4e27ac61b0718ed2db0d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 5 Jan 2023 10:33:43 +0100 Subject: [PATCH 18/20] Zend/zend_API: include cleanup --- Zend/zend_API.c | 8 +++----- Zend/zend_API.h | 12 ++++++------ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/Zend/zend_API.c b/Zend/zend_API.c index c06d6119b7af..6c42d274c0db 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -19,15 +19,13 @@ +----------------------------------------------------------------------+ */ -#include "zend.h" -#include "zend_execute.h" #include "zend_API.h" -#include "zend_modules.h" +#include "zend_arena.h" +#include "zend_objects.h" // for zend_objects_new() #include "zend_extensions.h" #include "zend_constants.h" -#include "zend_interfaces.h" +#include "zend_interfaces.h" // for zend_ce_stringable #include "zend_exceptions.h" -#include "zend_closures.h" #include "zend_inheritance.h" #include "zend_ini.h" #include "zend_enum.h" diff --git a/Zend/zend_API.h b/Zend/zend_API.h index cbc455eaab0b..44ea4eaf8783 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -22,13 +22,13 @@ #ifndef ZEND_API_H #define ZEND_API_H -#include "zend_modules.h" -#include "zend_list.h" -#include "zend_operators.h" -#include "zend_variables.h" -#include "zend_execute.h" -#include "zend_type_info.h" +#include "zend_compile.h" // for zif_handler +#include "zend_execute.h" // for get_active_function_or_method_name() +#include "zend_globals.h" // for struct _zend_compiler_globals used by ZEND_MAP_PTR_GET_IMM() +#include "zend_globals_macros.h" // for CG() used by ZEND_MAP_PTR_GET_IMM() +#include "zend_portability.h" // for BEGIN_EXTERN_C +typedef struct _zend_module_entry zend_module_entry; BEGIN_EXTERN_C() From cdeb918541cb07c297ccf9e319a68354ce4e6cc1 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 5 Jan 2023 10:30:57 +0100 Subject: [PATCH 19/20] Zend/zend_inheritance: include cleanup --- Zend/zend_inheritance.c | 1 + 1 file changed, 1 insertion(+) diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index b45c16ef9152..29141125a59a 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -18,6 +18,7 @@ */ #include "zend.h" +#include "zend_arena.h" #include "zend_API.h" #include "zend_compile.h" #include "zend_execute.h" From 038b317a42aa9609bbff8b0728d1aebe43229fd0 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 5 Jan 2023 10:09:39 +0100 Subject: [PATCH 20/20] Zend/zend_closures: include cleanup --- Zend/zend_closures.c | 11 ++++------- Zend/zend_closures.h | 9 +++++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c index 4c326a6c79b1..03601ce3fc78 100644 --- a/Zend/zend_closures.c +++ b/Zend/zend_closures.c @@ -18,14 +18,11 @@ +----------------------------------------------------------------------+ */ -#include "zend.h" -#include "zend_API.h" #include "zend_closures.h" -#include "zend_exceptions.h" -#include "zend_interfaces.h" -#include "zend_objects.h" -#include "zend_objects_API.h" -#include "zend_globals.h" +#include "zend_API.h" //for ZEND_METHOD() +#include "zend_arena.h" +#include "zend_compile.h" // for union _zend_function +#include "zend_objects.h" // for zend_object_std_init() #include "zend_closures_arginfo.h" typedef struct _zend_closure { diff --git a/Zend/zend_closures.h b/Zend/zend_closures.h index 2d093fa61680..40cb0a36ca3f 100644 --- a/Zend/zend_closures.h +++ b/Zend/zend_closures.h @@ -20,6 +20,15 @@ #ifndef ZEND_CLOSURES_H #define ZEND_CLOSURES_H +#include "zend_portability.h" // for BEGIN_EXTERN_C + +typedef struct _zend_class_entry zend_class_entry; +typedef struct _zend_execute_data zend_execute_data; +typedef union _zend_function zend_function; +typedef struct _zend_object zend_object; +typedef struct _zend_string zend_string; +typedef struct _zval_struct zval; + BEGIN_EXTERN_C() /* This macro depends on zend_closure structure layout */