2020#ifndef ZEND_H
2121#define ZEND_H
2222
23- #define ZEND_VERSION "4.4.0 "
23+ #define ZEND_VERSION "4.2.28-dev "
2424
2525#define ZEND_ENGINE_3
2626
@@ -183,8 +183,6 @@ struct _zend_class_entry {
183183 zend_function * __serialize ;
184184 zend_function * __unserialize ;
185185
186- const zend_object_handlers * default_object_handlers ;
187-
188186 /* allocated only if class implements Iterator or IteratorAggregate interface */
189187 zend_class_iterator_funcs * iterator_funcs_ptr ;
190188 /* allocated only if class implements ArrayAccess interface */
@@ -204,8 +202,6 @@ struct _zend_class_entry {
204202
205203 uint32_t num_interfaces ;
206204 uint32_t num_traits ;
207- uint32_t num_hooked_props ;
208- uint32_t num_hooked_prop_variance_checks ;
209205
210206 /* class_entry or string(s) depending on ZEND_ACC_LINKED */
211207 union {
@@ -221,13 +217,12 @@ struct _zend_class_entry {
221217 uint32_t enum_backing_type ;
222218 HashTable * backed_enum_table ;
223219
224- zend_string * doc_comment ;
225-
226220 union {
227221 struct {
228222 zend_string * filename ;
229223 uint32_t line_start ;
230224 uint32_t line_end ;
225+ zend_string * doc_comment ;
231226 } user ;
232227 struct {
233228 const struct _zend_function_entry * builtin_functions ;
@@ -236,11 +231,6 @@ struct _zend_class_entry {
236231 } info ;
237232};
238233
239- typedef union {
240- zend_max_align_t align ;
241- uint64_t opaque [5 ];
242- } zend_random_bytes_insecure_state ;
243-
244234typedef struct _zend_utility_functions {
245235 void (* error_function )(int type , zend_string * error_filename , const uint32_t error_lineno , zend_string * message );
246236 size_t (* printf_function )(const char * format , ...) ZEND_ATTRIBUTE_PTR_FORMAT (printf , 1 , 2 );
@@ -255,8 +245,6 @@ typedef struct _zend_utility_functions {
255245 void (* printf_to_smart_str_function )(smart_str * buf , const char * format , va_list ap );
256246 char * (* getenv_function )(const char * name , size_t name_len );
257247 zend_string * (* resolve_path_function )(zend_string * filename );
258- zend_result (* random_bytes_function )(void * bytes , size_t size , char * errstr , size_t errstr_size );
259- void (* random_bytes_insecure_function )(zend_random_bytes_insecure_state * state , void * bytes , size_t size );
260248} zend_utility_functions ;
261249
262250typedef struct _zend_utility_values {
@@ -341,47 +329,21 @@ extern ZEND_API size_t (*zend_printf)(const char *format, ...) ZEND_ATTRIBUTE_PT
341329extern ZEND_API zend_write_func_t zend_write ;
342330extern ZEND_API FILE * (* zend_fopen )(zend_string * filename , zend_string * * opened_path );
343331extern ZEND_API void (* zend_ticks_function )(int ticks );
344-
345- /* Called by the VM in certain places like at the loop header, user function
346- * entry, and after internal function calls, if EG(vm_interrupt) has been set.
347- *
348- * If this is used to switch the EG(current_execute_data), such as implementing
349- * a coroutine scheduler, then it needs to check the top frame to see if it's
350- * an internal function. If an internal function is on top, then the frame
351- * shouldn't be switched away.
352- *
353- * Prior to PHP 8.0, this check was not necessary. In PHP 8.0,
354- * zend_call_function started calling zend_interrupt_function, and in 8.4 the
355- * DO_*CALL* opcodes started calling the zend_interrupt_function while the
356- * internal frame is still on top.
357- */
358332extern ZEND_API void (* zend_interrupt_function )(zend_execute_data * execute_data );
359-
360333extern ZEND_API void (* zend_error_cb )(int type , zend_string * error_filename , const uint32_t error_lineno , zend_string * message );
361334extern ZEND_API void (* zend_on_timeout )(int seconds );
362335extern ZEND_API zend_result (* zend_stream_open_function )(zend_file_handle * handle );
363336extern void (* zend_printf_to_smart_string )(smart_string * buf , const char * format , va_list ap );
364337extern void (* zend_printf_to_smart_str )(smart_str * buf , const char * format , va_list ap );
365338extern ZEND_API char * (* zend_getenv )(const char * name , size_t name_len );
366339extern ZEND_API zend_string * (* zend_resolve_path )(zend_string * filename );
367- /* Generate 'size' random bytes into 'bytes' with the OS CSPRNG. */
368- extern ZEND_ATTRIBUTE_NONNULL ZEND_API zend_result (* zend_random_bytes )(
369- void * bytes , size_t size , char * errstr , size_t errstr_size );
370- /* Generate 'size' random bytes into 'bytes' with a general purpose PRNG (not
371- * crypto safe). 'state' must be zeroed before the first call and can be reused.
372- */
373- extern ZEND_ATTRIBUTE_NONNULL ZEND_API void (* zend_random_bytes_insecure )(
374- zend_random_bytes_insecure_state * state , void * bytes , size_t size );
375340
376341/* These two callbacks are especially for opcache */
377342extern ZEND_API zend_result (* zend_post_startup_cb )(void );
378343extern ZEND_API void (* zend_post_shutdown_cb )(void );
379344
380- extern ZEND_API void (* zend_accel_schedule_restart_hook )(int reason );
381-
382345ZEND_API ZEND_COLD void zend_error (int type , const char * format , ...) ZEND_ATTRIBUTE_FORMAT (printf , 2 , 3 );
383346ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn (int type , const char * format , ...) ZEND_ATTRIBUTE_FORMAT (printf , 2 , 3 );
384- ZEND_API ZEND_COLD ZEND_NORETURN void zend_error_noreturn_unchecked (int type , const char * format , ...);
385347/* For custom format specifiers like H */
386348ZEND_API ZEND_COLD void zend_error_unchecked (int type , const char * format , ...);
387349/* If filename is NULL the default filename is used. */
@@ -394,8 +356,6 @@ ZEND_API ZEND_COLD void zend_throw_error(zend_class_entry *exception_ce, const c
394356ZEND_API ZEND_COLD void zend_type_error (const char * format , ...) ZEND_ATTRIBUTE_FORMAT (printf , 1 , 2 );
395357ZEND_API ZEND_COLD void zend_argument_count_error (const char * format , ...) ZEND_ATTRIBUTE_FORMAT (printf , 1 , 2 );
396358ZEND_API ZEND_COLD void zend_value_error (const char * format , ...) ZEND_ATTRIBUTE_FORMAT (printf , 1 , 2 );
397- /* type should be one of the BP_VAR_* constants, only special messages happen for isset/empty and unset */
398- ZEND_API ZEND_COLD void zend_illegal_container_offset (const zend_string * container , const zval * offset , int type );
399359
400360ZEND_COLD void zenderror (const char * error );
401361
0 commit comments