php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
zend_execute.c File Reference
#include <stdio.h>
#include <signal.h>
#include "zend.h"
#include "zend_compile.h"
#include "zend_execute.h"
#include "zend_API.h"
#include "zend_ptr_stack.h"
#include "zend_constants.h"
#include "zend_extensions.h"
#include "zend_ini.h"
#include "zend_exceptions.h"
#include "zend_interfaces.h"
#include "zend_closures.h"
#include "zend_generators.h"
#include "zend_vm.h"
#include "zend_dtrace.h"
#include "zend_inheritance.h"
#include "zend_type_info.h"
#include "zend_smart_str.h"
#include "zend_observer.h"
#include "zend_system_id.h"
#include "zend_call_stack.h"
#include "zend_attributes.h"
#include "Optimizer/zend_func_info.h"
#include "zend_virtual_cwd.h"
#include "zend_vm_execute.h"

Go to the source code of this file.

Macros

#define ZEND_INTENSIVE_DEBUGGING   0
 
#define EXECUTE_DATA_D   zend_execute_data* execute_data
 
#define EXECUTE_DATA_C   execute_data
 
#define EXECUTE_DATA_DC   , EXECUTE_DATA_D
 
#define EXECUTE_DATA_CC   , EXECUTE_DATA_C
 
#define NO_EXECUTE_DATA_CC   , NULL
 
#define OPLINE_D   const zend_op* opline
 
#define OPLINE_C   opline
 
#define OPLINE_DC   , OPLINE_D
 
#define OPLINE_CC   , OPLINE_C
 
#define _CONST_CODE   0
 
#define _TMP_CODE   1
 
#define _VAR_CODE   2
 
#define _UNUSED_CODE   3
 
#define _CV_CODE   4
 
#define get_zval_ptr(op_type, node, type)
 
#define get_zval_ptr_deref(op_type, node, type)
 
#define get_zval_ptr_undef(op_type, node, type)
 
#define get_op_data_zval_ptr_r(op_type, node)
 
#define get_op_data_zval_ptr_deref_r(op_type, node)
 
#define get_zval_ptr_ptr(op_type, node, type)
 
#define get_zval_ptr_ptr_undef(op_type, node, type)
 
#define get_obj_zval_ptr(op_type, node, type)
 
#define get_obj_zval_ptr_undef(op_type, node, type)
 
#define get_obj_zval_ptr_ptr(op_type, node, type)
 
#define RETURN_VALUE_USED(opline)
 
#define FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY(free_var)
 
#define FREE_OP(type, var)
 
#define CV_DEF_OF(i)
 
#define ZEND_VM_STACK_PAGE_SLOTS   (16 * 1024) /* should be a power of 2 */
 
#define ZEND_VM_STACK_PAGE_SIZE   (ZEND_VM_STACK_PAGE_SLOTS * sizeof(zval))
 
#define ZEND_VM_STACK_PAGE_ALIGNED_SIZE(size, page_size)
 
#define ZVAL_UNDEFINED_OP1()
 
#define ZVAL_UNDEFINED_OP2()
 
#define HAVE_CACHE_SLOT   1
 
#define PROGRESS_CACHE_SLOT()
 
#define CHECK_SYMBOL_TABLES()
 
#define ZEND_VM_INTERRUPT_CHECK()
 
#define ZEND_VM_LOOP_INTERRUPT_CHECK()
 
#define ZEND_VM_FCALL_INTERRUPT_CHECK(call)
 
#define ZEND_FAKE_OP_ARRAY   ((zend_op_array*)(intptr_t)-1)
 
#define _zend_vm_stack_push_call_frame_ex   zend_vm_stack_push_call_frame_ex
 
#define _zend_vm_stack_push_call_frame   zend_vm_stack_push_call_frame
 
#define ZEND_VM_NEXT_OPCODE_EX(check_exception, skip)
 
#define ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION()
 
#define ZEND_VM_NEXT_OPCODE()
 
#define ZEND_VM_SET_NEXT_OPCODE(new_op)
 
#define ZEND_VM_SET_OPCODE_NO_INTERRUPT(new_op)
 
#define ZEND_VM_SET_OPCODE(new_op)
 
#define ZEND_VM_SET_RELATIVE_OPCODE(opline, offset)
 
#define ZEND_VM_JMP_EX(new_op, check_exception)
 
#define ZEND_VM_JMP(new_op)
 
#define ZEND_VM_INC_OPCODE()
 
#define ZEND_VM_REPEATABLE_OPCODE    do {
 
#define ZEND_VM_REPEAT_OPCODE(_opcode)
 
#define ZEND_VM_SMART_BRANCH(_result, _check)
 
#define ZEND_VM_SMART_BRANCH_JMPZ(_result, _check)
 
#define ZEND_VM_SMART_BRANCH_JMPNZ(_result, _check)
 
#define ZEND_VM_SMART_BRANCH_NONE(_result, _check)
 
#define ZEND_VM_SMART_BRANCH_TRUE()
 
#define ZEND_VM_SMART_BRANCH_TRUE_JMPZ()
 
#define ZEND_VM_SMART_BRANCH_TRUE_JMPNZ()
 
#define ZEND_VM_SMART_BRANCH_TRUE_NONE()
 
#define ZEND_VM_SMART_BRANCH_FALSE()
 
#define ZEND_VM_SMART_BRANCH_FALSE_JMPZ()
 
#define ZEND_VM_SMART_BRANCH_FALSE_JMPNZ()
 
#define ZEND_VM_SMART_BRANCH_FALSE_NONE()
 
#define ZEND_VM_GUARD(name)
 
#define UNDEF_RESULT()
 

Typedefs

typedef int(ZEND_FASTCALLincdec_t) (zval *)
 

Functions

ZEND_API void zend_vm_stack_init (void)
 
ZEND_API void zend_vm_stack_init_ex (size_t page_size)
 
ZEND_API void zend_vm_stack_destroy (void)
 
ZEND_API voidzend_vm_stack_extend (size_t size)
 
ZEND_API zvalzend_get_compiled_variable_value (const zend_execute_data *execute_data, uint32_t var)
 
ZEND_API bool zend_gcc_global_regs (void)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_cannot_pass_by_reference (uint32_t arg_num)
 
ZEND_API ZEND_COLD void zend_verify_arg_error (const zend_function *zf, const zend_arg_info *arg_info, uint32_t arg_num, zval *value)
 
ZEND_API bool zend_verify_scalar_type_hint (uint32_t type_mask, zval *arg, bool strict, bool is_internal_arg)
 
ZEND_COLD zend_never_inline void zend_verify_class_constant_type_error (const zend_class_constant *c, const zend_string *name, const zval *constant)
 
ZEND_COLD zend_never_inline void zend_verify_property_type_error (const zend_property_info *info, const zval *property)
 
ZEND_COLD zend_never_inline void zend_magic_get_property_type_inconsistency_error (const zend_property_info *info, const zval *property)
 
ZEND_COLD void zend_match_unhandled_error (const zval *value)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_modification_error (const zend_property_info *info)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_modification_error_ex (const char *class_name, const char *prop_name)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_indirect_modification_error (const zend_property_info *info)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_invalid_class_constant_type_error (uint8_t type)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_object_released_while_assigning_to_property_error (const zend_property_info *info)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_asymmetric_visibility_property_modification_error (const zend_property_info *prop_info, const char *operation)
 
ZEND_API bool zend_never_inline zend_verify_property_type (const zend_property_info *info, zval *property, bool strict)
 
ZEND_API bool zend_check_user_type_slow (zend_type *type, zval *arg, zend_reference *ref, void **cache_slot, bool is_return_type)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_missing_arg_error (zend_execute_data *execute_data)
 
ZEND_API ZEND_COLD void zend_verify_return_error (const zend_function *zf, zval *value)
 
ZEND_API ZEND_COLD void zend_verify_never_error (const zend_function *zf)
 
ZEND_API bool zend_never_inline zend_verify_class_constant_type (zend_class_constant *c, const zend_string *name, zval *constant)
 
ZEND_API void zend_frameless_observed_call (zend_execute_data *execute_data)
 
ZEND_API ZEND_COLD void zend_wrong_string_offset_error (void)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_deprecated_function (const zend_function *fbc)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_deprecated_class_constant (const zend_class_constant *c, const zend_string *constant_name)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_false_to_array_deprecated (void)
 
ZEND_API ZEND_COLD zval *ZEND_FASTCALL zend_undefined_offset_write (HashTable *ht, zend_long lval)
 
ZEND_API ZEND_COLD zval *ZEND_FASTCALL zend_undefined_index_write (HashTable *ht, zend_string *offset)
 
ZEND_COLD void ZEND_FASTCALL zend_param_must_be_ref (const zend_function *func, uint32_t arg_num)
 
ZEND_API zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_cannot_add_element (void)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_use_resource_as_offset (const zval *dim)
 
ZEND_API void zend_fetch_dimension_const (zval *result, zval *container, zval *dim, int type)
 
ZEND_API bool zend_verify_ref_array_assignable (zend_reference *ref)
 
ZEND_API ZEND_COLD void zend_throw_ref_type_error_type (const zend_property_info *prop1, const zend_property_info *prop2, const zval *zv)
 
ZEND_API ZEND_COLD void zend_throw_ref_type_error_zval (const zend_property_info *prop, const zval *zv)
 
ZEND_API ZEND_COLD void zend_throw_conflicting_coercion_error (const zend_property_info *prop1, const zend_property_info *prop2, const zval *zv)
 
ZEND_API bool ZEND_FASTCALL zend_verify_ref_assignable_zval (zend_reference *ref, zval *zv, bool strict)
 
ZEND_API zvalzend_assign_to_typed_ref_ex (zval *variable_ptr, zval *orig_value, uint8_t value_type, bool strict, zend_refcounted **garbage_ptr)
 
ZEND_API zvalzend_assign_to_typed_ref (zval *variable_ptr, zval *orig_value, uint8_t value_type, bool strict)
 
ZEND_API bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref_ex (const zend_property_info *prop_info, zval *orig_val, bool strict, zend_verify_prop_assignable_by_ref_context context)
 
ZEND_API bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref (const zend_property_info *prop_info, zval *orig_val, bool strict)
 
ZEND_API void ZEND_FASTCALL zend_ref_add_type_source (zend_property_info_source_list *source_list, zend_property_info *prop)
 
ZEND_API void ZEND_FASTCALL zend_ref_del_type_source (zend_property_info_source_list *source_list, const zend_property_info *prop)
 
ZEND_API void execute_internal (zend_execute_data *execute_data, zval *return_value)
 
ZEND_API void zend_clean_and_cache_symbol_table (zend_array *symbol_table)
 
ZEND_API void ZEND_FASTCALL zend_free_compiled_variables (zend_execute_data *execute_data)
 
ZEND_API ZEND_COLD void ZEND_FASTCALL zend_fcall_interrupt (zend_execute_data *call)
 
ZEND_API zend_function *ZEND_FASTCALL zend_fetch_function (zend_string *name)
 
ZEND_API zend_function *ZEND_FASTCALL zend_fetch_function_str (const char *name, size_t len)
 
ZEND_API void ZEND_FASTCALL zend_init_func_run_time_cache (zend_op_array *op_array)
 
ZEND_API void zend_init_func_execute_data (zend_execute_data *ex, zend_op_array *op_array, zval *return_value)
 
ZEND_API void zend_init_code_execute_data (zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value)
 
ZEND_API void zend_init_execute_data (zend_execute_data *execute_data, zend_op_array *op_array, zval *return_value)
 
zend_execute_datazend_vm_stack_copy_call_frame (zend_execute_data *call, uint32_t passed_args, uint32_t additional_args)
 
ZEND_API void zend_unfinished_calls_gc (zend_execute_data *execute_data, zend_execute_data *call, uint32_t op_num, zend_get_gc_buffer *buf)
 
ZEND_API void zend_cleanup_unfinished_execution (zend_execute_data *execute_data, uint32_t op_num, uint32_t catch_op_num)
 
ZEND_API ZEND_ATTRIBUTE_DEPRECATED HashTablezend_unfinished_execution_gc (zend_execute_data *execute_data, zend_execute_data *call, zend_get_gc_buffer *gc_buffer)
 
ZEND_API HashTablezend_unfinished_execution_gc_ex (zend_execute_data *execute_data, zend_execute_data *call, zend_get_gc_buffer *gc_buffer, bool suspended_by_yield)
 
zval *ZEND_FASTCALL zend_handle_named_arg (zend_execute_data **call_ptr, zend_string *arg_name, uint32_t *arg_num_ptr, void **cache_slot)
 
ZEND_API zend_result ZEND_FASTCALL zend_handle_undef_args (zend_execute_data *call)
 
ZEND_API void ZEND_FASTCALL zend_free_extra_named_params (zend_array *extra_named_params)
 
ZEND_API void (ZEND_FASTCALL *zend_touch_vm_stack_data)(void *vm_stack_data)
 
ZEND_API zend_result zend_set_user_opcode_handler (zend_uchar opcode, user_opcode_handler_t handler)
 
ZEND_API user_opcode_handler_t zend_get_user_opcode_handler (zend_uchar opcode)
 
ZEND_API zvalzend_get_zval_ptr (const zend_op *opline, int op_type, const znode_op *node, const zend_execute_data *execute_data)
 

Variables

ZEND_API const zend_internal_function zend_pass_function
 

Macro Definition Documentation

◆ _CONST_CODE

#define _CONST_CODE   0

Definition at line 113 of file zend_execute.c.

◆ _CV_CODE

#define _CV_CODE   4

Definition at line 117 of file zend_execute.c.

◆ _TMP_CODE

#define _TMP_CODE   1

Definition at line 114 of file zend_execute.c.

◆ _UNUSED_CODE

#define _UNUSED_CODE   3

Definition at line 116 of file zend_execute.c.

◆ _VAR_CODE

#define _VAR_CODE   2

Definition at line 115 of file zend_execute.c.

◆ _zend_vm_stack_push_call_frame

#define _zend_vm_stack_push_call_frame   zend_vm_stack_push_call_frame

Definition at line 5510 of file zend_execute.c.

◆ _zend_vm_stack_push_call_frame_ex

#define _zend_vm_stack_push_call_frame_ex   zend_vm_stack_push_call_frame_ex

Definition at line 5509 of file zend_execute.c.

◆ CHECK_SYMBOL_TABLES

#define CHECK_SYMBOL_TABLES ( )

Definition at line 4041 of file zend_execute.c.

◆ CV_DEF_OF

#define CV_DEF_OF ( i)
Value:
(EX(func)->op_array.vars[i])
execute_data func
#define EX(element)

Definition at line 181 of file zend_execute.c.

◆ EXECUTE_DATA_C

#define EXECUTE_DATA_C   execute_data

Definition at line 88 of file zend_execute.c.

◆ EXECUTE_DATA_CC

#define EXECUTE_DATA_CC   , EXECUTE_DATA_C

Definition at line 90 of file zend_execute.c.

◆ EXECUTE_DATA_D

#define EXECUTE_DATA_D   zend_execute_data* execute_data

Definition at line 87 of file zend_execute.c.

◆ EXECUTE_DATA_DC

#define EXECUTE_DATA_DC   , EXECUTE_DATA_D

Definition at line 89 of file zend_execute.c.

◆ FREE_OP

#define FREE_OP ( type,
var )
Value:
if ((type) & (IS_TMP_VAR|IS_VAR)) { \
zval_ptr_dtor_nogc(EX_VAR(var)); \
}
zend_ffi_type * type
Definition ffi.c:3812
#define IS_VAR
#define EX_VAR(n)
#define IS_TMP_VAR

Definition at line 176 of file zend_execute.c.

◆ FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY

#define FREE_VAR_PTR_AND_EXTRACT_RESULT_IF_NECESSARY ( free_var)
Value:
do { \
zval *__container_to_free = EX_VAR(free_var); \
if (UNEXPECTED(Z_REFCOUNTED_P(__container_to_free))) { \
zend_refcounted *__ref = Z_COUNTED_P(__container_to_free); \
if (UNEXPECTED(!GC_DELREF(__ref))) { \
zval *__zv = EX_VAR(opline->result.var); \
if (EXPECTED(Z_TYPE_P(__zv) == IS_INDIRECT)) { \
ZVAL_COPY(__zv, Z_INDIRECT_P(__zv)); \
} \
rc_dtor_func(__ref); \
} \
} \
} while (0)
struct _zval_struct zval
#define EXPECTED(condition)
#define UNEXPECTED(condition)
#define Z_TYPE_P(zval_p)
Definition zend_types.h:660
#define Z_REFCOUNTED_P(zval_p)
Definition zend_types.h:921
#define Z_COUNTED_P(zval_p)
Definition zend_types.h:699
#define GC_DELREF(p)
Definition zend_types.h:710
struct _zend_refcounted zend_refcounted
Definition zend_types.h:95
#define Z_INDIRECT_P(zval_p)
#define IS_INDIRECT
Definition zend_types.h:623

Definition at line 162 of file zend_execute.c.

◆ get_obj_zval_ptr

#define get_obj_zval_ptr ( op_type,
node,
type )
Value:
_get_obj_zval_ptr(op_type, node, type EXECUTE_DATA_CC OPLINE_CC)
#define EXECUTE_DATA_CC
#define OPLINE_CC

Definition at line 128 of file zend_execute.c.

◆ get_obj_zval_ptr_ptr

#define get_obj_zval_ptr_ptr ( op_type,
node,
type )
Value:
_get_obj_zval_ptr_ptr(op_type, node, type EXECUTE_DATA_CC)

Definition at line 130 of file zend_execute.c.

◆ get_obj_zval_ptr_undef

#define get_obj_zval_ptr_undef ( op_type,
node,
type )
Value:
_get_obj_zval_ptr_undef(op_type, node, type EXECUTE_DATA_CC OPLINE_CC)

Definition at line 129 of file zend_execute.c.

◆ get_op_data_zval_ptr_deref_r

#define get_op_data_zval_ptr_deref_r ( op_type,
node )
Value:
_get_op_data_zval_ptr_deref_r(op_type, node EXECUTE_DATA_CC OPLINE_CC)

Definition at line 125 of file zend_execute.c.

◆ get_op_data_zval_ptr_r

#define get_op_data_zval_ptr_r ( op_type,
node )
Value:
_get_op_data_zval_ptr_r(op_type, node EXECUTE_DATA_CC OPLINE_CC)

Definition at line 124 of file zend_execute.c.

◆ get_zval_ptr

#define get_zval_ptr ( op_type,
node,
type )
Value:
_get_zval_ptr(op_type, node, type EXECUTE_DATA_CC OPLINE_CC)

Definition at line 121 of file zend_execute.c.

◆ get_zval_ptr_deref

#define get_zval_ptr_deref ( op_type,
node,
type )
Value:
_get_zval_ptr_deref(op_type, node, type EXECUTE_DATA_CC OPLINE_CC)

Definition at line 122 of file zend_execute.c.

◆ get_zval_ptr_ptr

#define get_zval_ptr_ptr ( op_type,
node,
type )
Value:
_get_zval_ptr_ptr(op_type, node, type EXECUTE_DATA_CC)

Definition at line 126 of file zend_execute.c.

◆ get_zval_ptr_ptr_undef

#define get_zval_ptr_ptr_undef ( op_type,
node,
type )
Value:
_get_zval_ptr_ptr(op_type, node, type EXECUTE_DATA_CC)

Definition at line 127 of file zend_execute.c.

◆ get_zval_ptr_undef

#define get_zval_ptr_undef ( op_type,
node,
type )
Value:
_get_zval_ptr_undef(op_type, node, type EXECUTE_DATA_CC OPLINE_CC)

Definition at line 123 of file zend_execute.c.

◆ HAVE_CACHE_SLOT

#define HAVE_CACHE_SLOT   1

Definition at line 1105 of file zend_execute.c.

◆ NO_EXECUTE_DATA_CC

#define NO_EXECUTE_DATA_CC   , NULL

Definition at line 91 of file zend_execute.c.

◆ OPLINE_C

#define OPLINE_C   opline

Definition at line 101 of file zend_execute.c.

◆ OPLINE_CC

#define OPLINE_CC   , OPLINE_C

Definition at line 103 of file zend_execute.c.

◆ OPLINE_D

#define OPLINE_D   const zend_op* opline

Definition at line 100 of file zend_execute.c.

◆ OPLINE_DC

#define OPLINE_DC   , OPLINE_D

Definition at line 102 of file zend_execute.c.

◆ PROGRESS_CACHE_SLOT

#define PROGRESS_CACHE_SLOT ( )
Value:
if (HAVE_CACHE_SLOT) {cache_slot++;}
#define HAVE_CACHE_SLOT

Definition at line 1108 of file zend_execute.c.

◆ RETURN_VALUE_USED

#define RETURN_VALUE_USED ( opline)
Value:
((opline)->result_type != IS_UNUSED)
#define IS_UNUSED

Definition at line 132 of file zend_execute.c.

◆ UNDEF_RESULT

#define UNDEF_RESULT ( )
Value:
do { \
if (opline->result_type & (IS_VAR | IS_TMP_VAR)) { \
ZVAL_UNDEF(EX_VAR(opline->result.var)); \
} \
} while (0)

Definition at line 5674 of file zend_execute.c.

◆ ZEND_FAKE_OP_ARRAY

#define ZEND_FAKE_OP_ARRAY   ((zend_op_array*)(intptr_t)-1)

Definition at line 5074 of file zend_execute.c.

◆ ZEND_INTENSIVE_DEBUGGING

#define ZEND_INTENSIVE_DEBUGGING   0

Definition at line 21 of file zend_execute.c.

◆ ZEND_VM_FCALL_INTERRUPT_CHECK

ZEND_VM_FCALL_INTERRUPT_CHECK ( call)
Value:
do { \
if (UNEXPECTED(zend_atomic_bool_load_ex(&EG(vm_interrupt)))) { \
zend_fcall_interrupt(call); \
} \
} while (0)
#define EG(v)
zend_execute_data * call

Definition at line 4103 of file zend_execute.c.

◆ ZEND_VM_GUARD

#define ZEND_VM_GUARD ( name)

Definition at line 5671 of file zend_execute.c.

◆ ZEND_VM_INC_OPCODE

#define ZEND_VM_INC_OPCODE ( )
Value:
#define OPLINE

Definition at line 5565 of file zend_execute.c.

◆ ZEND_VM_INTERRUPT_CHECK

#define ZEND_VM_INTERRUPT_CHECK ( )
Value:
do { \
if (UNEXPECTED(zend_atomic_bool_load_ex(&EG(vm_interrupt)))) { \
ZEND_VM_INTERRUPT(); \
} \
} while (0)

Definition at line 4091 of file zend_execute.c.

◆ ZEND_VM_JMP

#define ZEND_VM_JMP ( new_op)
Value:
ZEND_VM_JMP_EX(new_op, 1)
#define ZEND_VM_JMP_EX(new_op, check_exception)

Definition at line 5562 of file zend_execute.c.

◆ ZEND_VM_JMP_EX

#define ZEND_VM_JMP_EX ( new_op,
check_exception )
Value:
do { \
if (check_exception && UNEXPECTED(EG(exception))) { \
HANDLE_EXCEPTION(); \
} \
ZEND_VM_SET_OPCODE(new_op); \
ZEND_VM_CONTINUE(); \
} while (0)
bool exception
Definition assert.c:30

Definition at line 5554 of file zend_execute.c.

◆ ZEND_VM_LOOP_INTERRUPT_CHECK

#define ZEND_VM_LOOP_INTERRUPT_CHECK ( )
Value:
do { \
if (UNEXPECTED(zend_atomic_bool_load_ex(&EG(vm_interrupt)))) { \
ZEND_VM_LOOP_INTERRUPT(); \
} \
} while (0)

Definition at line 4097 of file zend_execute.c.

◆ ZEND_VM_NEXT_OPCODE

ZEND_VM_NEXT_OPCODE ( )
Value:
#define ZEND_VM_NEXT_OPCODE_EX(check_exception, skip)

Definition at line 5536 of file zend_execute.c.

◆ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION

ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION ( )
Value:

Definition at line 5533 of file zend_execute.c.

◆ ZEND_VM_NEXT_OPCODE_EX

#define ZEND_VM_NEXT_OPCODE_EX ( check_exception,
skip )
Value:
if (check_exception) { \
OPLINE = EX(opline) + (skip); \
} else { \
ZEND_ASSERT(!EG(exception)); \
OPLINE = opline + (skip); \
} \
ZEND_VM_CONTINUE()
#define CHECK_SYMBOL_TABLES()

Definition at line 5523 of file zend_execute.c.

◆ ZEND_VM_REPEAT_OPCODE

#define ZEND_VM_REPEAT_OPCODE ( _opcode)
Value:
} while (UNEXPECTED((++opline)->opcode == _opcode)); \
OPLINE = opline; \
ZEND_VM_CONTINUE()

Definition at line 5571 of file zend_execute.c.

◆ ZEND_VM_REPEATABLE_OPCODE

#define ZEND_VM_REPEATABLE_OPCODE    do {

Definition at line 5569 of file zend_execute.c.

◆ ZEND_VM_SET_NEXT_OPCODE

#define ZEND_VM_SET_NEXT_OPCODE ( new_op)
Value:

Definition at line 5539 of file zend_execute.c.

◆ ZEND_VM_SET_OPCODE

#define ZEND_VM_SET_OPCODE ( new_op)
Value:
ZEND_VM_INTERRUPT_CHECK()
#define ZEND_VM_SET_OPCODE_NO_INTERRUPT(new_op)

Definition at line 5547 of file zend_execute.c.

◆ ZEND_VM_SET_OPCODE_NO_INTERRUPT

#define ZEND_VM_SET_OPCODE_NO_INTERRUPT ( new_op)
Value:

Definition at line 5543 of file zend_execute.c.

◆ ZEND_VM_SET_RELATIVE_OPCODE

#define ZEND_VM_SET_RELATIVE_OPCODE ( opline,
offset )
Value:
zend_long offset
#define ZEND_OFFSET_TO_OPLINE(base, offset)
#define ZEND_VM_SET_OPCODE(new_op)

Definition at line 5551 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH

#define ZEND_VM_SMART_BRANCH ( _result,
_check )
Value:
do { \
if ((_check) && UNEXPECTED(EG(exception))) { \
OPLINE = EX(opline); \
} else if (EXPECTED(opline->result_type == (IS_SMART_BRANCH_JMPZ|IS_TMP_VAR))) { \
if (_result) { \
ZEND_VM_SET_NEXT_OPCODE(opline + 2); \
} else { \
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline + 1, (opline+1)->op2)); \
} \
} else if (EXPECTED(opline->result_type == (IS_SMART_BRANCH_JMPNZ|IS_TMP_VAR))) { \
if (!(_result)) { \
ZEND_VM_SET_NEXT_OPCODE(opline + 2); \
} else { \
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline + 1, (opline+1)->op2)); \
} \
} else { \
ZVAL_BOOL(EX_VAR(opline->result.var), _result); \
ZEND_VM_SET_NEXT_OPCODE(opline + 1); \
} \
ZEND_VM_CONTINUE(); \
} while (0)
#define IS_SMART_BRANCH_JMPNZ
#define IS_SMART_BRANCH_JMPZ
#define OP_JMP_ADDR(opline, node)
op2

Definition at line 5575 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_FALSE

#define ZEND_VM_SMART_BRANCH_FALSE ( )
Value:
do { \
if (EXPECTED(opline->result_type == (IS_SMART_BRANCH_JMPNZ|IS_TMP_VAR))) { \
ZEND_VM_SET_NEXT_OPCODE(opline + 2); \
} else if (EXPECTED(opline->result_type == (IS_SMART_BRANCH_JMPZ|IS_TMP_VAR))) { \
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline + 1, (opline+1)->op2)); \
} else { \
ZVAL_FALSE(EX_VAR(opline->result.var)); \
ZEND_VM_SET_NEXT_OPCODE(opline + 1); \
} \
ZEND_VM_CONTINUE(); \
} while (0)

Definition at line 5644 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_FALSE_JMPNZ

#define ZEND_VM_SMART_BRANCH_FALSE_JMPNZ ( )
Value:
do { \
ZEND_VM_SET_NEXT_OPCODE(opline + 2); \
ZEND_VM_CONTINUE(); \
} while (0)

Definition at line 5659 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_FALSE_JMPZ

#define ZEND_VM_SMART_BRANCH_FALSE_JMPZ ( )
Value:
do { \
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline + 1, (opline+1)->op2)); \
ZEND_VM_CONTINUE(); \
} while (0)

Definition at line 5655 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_FALSE_NONE

#define ZEND_VM_SMART_BRANCH_FALSE_NONE ( )
Value:
do { \
ZVAL_FALSE(EX_VAR(opline->result.var)); \
ZEND_VM_NEXT_OPCODE(); \
} while (0)

Definition at line 5663 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_JMPNZ

#define ZEND_VM_SMART_BRANCH_JMPNZ ( _result,
_check )
Value:
do { \
if ((_check) && UNEXPECTED(EG(exception))) { \
OPLINE = EX(opline); \
} else if (!(_result)) { \
ZEND_VM_SET_NEXT_OPCODE(opline + 2); \
} else { \
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline + 1, (opline+1)->op2)); \
} \
ZEND_VM_CONTINUE(); \
} while (0)

Definition at line 5606 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_JMPZ

#define ZEND_VM_SMART_BRANCH_JMPZ ( _result,
_check )
Value:
do { \
if ((_check) && UNEXPECTED(EG(exception))) { \
OPLINE = EX(opline); \
} else if (_result) { \
ZEND_VM_SET_NEXT_OPCODE(opline + 2); \
} else { \
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline + 1, (opline+1)->op2)); \
} \
ZEND_VM_CONTINUE(); \
} while (0)

Definition at line 5596 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_NONE

#define ZEND_VM_SMART_BRANCH_NONE ( _result,
_check )
Value:
do { \
ZVAL_BOOL(EX_VAR(opline->result.var), _result); \
ZEND_VM_NEXT_OPCODE_EX(_check, 1); \
ZEND_VM_CONTINUE(); \
} while (0)

Definition at line 5616 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_TRUE

#define ZEND_VM_SMART_BRANCH_TRUE ( )
Value:
do { \
if (EXPECTED(opline->result_type == (IS_SMART_BRANCH_JMPNZ|IS_TMP_VAR))) { \
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline + 1, (opline+1)->op2)); \
} else if (EXPECTED(opline->result_type == (IS_SMART_BRANCH_JMPZ|IS_TMP_VAR))) { \
ZEND_VM_SET_NEXT_OPCODE(opline + 2); \
} else { \
ZVAL_TRUE(EX_VAR(opline->result.var)); \
ZEND_VM_SET_NEXT_OPCODE(opline + 1); \
} \
ZEND_VM_CONTINUE(); \
} while (0)

Definition at line 5621 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_TRUE_JMPNZ

#define ZEND_VM_SMART_BRANCH_TRUE_JMPNZ ( )
Value:
do { \
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline + 1, (opline+1)->op2)); \
ZEND_VM_CONTINUE(); \
} while (0)

Definition at line 5636 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_TRUE_JMPZ

#define ZEND_VM_SMART_BRANCH_TRUE_JMPZ ( )
Value:
do { \
ZEND_VM_SET_NEXT_OPCODE(opline + 2); \
ZEND_VM_CONTINUE(); \
} while (0)

Definition at line 5632 of file zend_execute.c.

◆ ZEND_VM_SMART_BRANCH_TRUE_NONE

#define ZEND_VM_SMART_BRANCH_TRUE_NONE ( )
Value:
do { \
ZVAL_TRUE(EX_VAR(opline->result.var)); \
ZEND_VM_NEXT_OPCODE(); \
} while (0)

Definition at line 5640 of file zend_execute.c.

◆ ZEND_VM_STACK_PAGE_ALIGNED_SIZE

#define ZEND_VM_STACK_PAGE_ALIGNED_SIZE ( size,
page_size )
Value:
+ ((page_size) - 1)) & ~((page_size) - 1))
new_type size
Definition ffi.c:4365
#define ZEND_VM_STACK_HEADER_SLOTS

Definition at line 187 of file zend_execute.c.

◆ ZEND_VM_STACK_PAGE_SIZE

#define ZEND_VM_STACK_PAGE_SIZE   (ZEND_VM_STACK_PAGE_SLOTS * sizeof(zval))

Definition at line 185 of file zend_execute.c.

◆ ZEND_VM_STACK_PAGE_SLOTS

#define ZEND_VM_STACK_PAGE_SLOTS   (16 * 1024) /* should be a power of 2 */

Definition at line 183 of file zend_execute.c.

◆ ZVAL_UNDEFINED_OP1

#define ZVAL_UNDEFINED_OP1 ( )
Value:
_zval_undefined_op1(EXECUTE_DATA_C)
#define EXECUTE_DATA_C

Definition at line 294 of file zend_execute.c.

◆ ZVAL_UNDEFINED_OP2

#define ZVAL_UNDEFINED_OP2 ( )
Value:
_zval_undefined_op2(EXECUTE_DATA_C)

Definition at line 295 of file zend_execute.c.

Typedef Documentation

◆ incdec_t

typedef int(ZEND_FASTCALL * incdec_t) (zval *)

Definition at line 119 of file zend_execute.c.

Function Documentation

◆ execute_internal()

ZEND_API void execute_internal ( zend_execute_data * execute_data,
zval * return_value )

Definition at line 4044 of file zend_execute.c.

◆ void()

ZEND_API void ( ZEND_FASTCALL * zend_touch_vm_stack_data)

◆ zend_assign_to_typed_ref()

ZEND_API zval * zend_assign_to_typed_ref ( zval * variable_ptr,
zval * orig_value,
uint8_t value_type,
bool strict )

Definition at line 3853 of file zend_execute.c.

◆ zend_assign_to_typed_ref_ex()

ZEND_API zval * zend_assign_to_typed_ref_ex ( zval * variable_ptr,
zval * orig_value,
uint8_t value_type,
bool strict,
zend_refcounted ** garbage_ptr )

Definition at line 3818 of file zend_execute.c.

◆ zend_asymmetric_visibility_property_modification_error()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_asymmetric_visibility_property_modification_error ( const zend_property_info * prop_info,
const char * operation )

Definition at line 921 of file zend_execute.c.

◆ zend_cannot_add_element()

Definition at line 2488 of file zend_execute.c.

◆ zend_cannot_pass_by_reference()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_cannot_pass_by_reference ( uint32_t arg_num)

Definition at line 599 of file zend_execute.c.

◆ zend_check_user_type_slow()

ZEND_API bool zend_check_user_type_slow ( zend_type * type,
zval * arg,
zend_reference * ref,
void ** cache_slot,
bool is_return_type )

Definition at line 1251 of file zend_execute.c.

◆ zend_clean_and_cache_symbol_table()

ZEND_API void zend_clean_and_cache_symbol_table ( zend_array * symbol_table)

Definition at line 4049 of file zend_execute.c.

◆ zend_cleanup_unfinished_execution()

ZEND_API void zend_cleanup_unfinished_execution ( zend_execute_data * execute_data,
uint32_t op_num,
uint32_t catch_op_num )

Definition at line 4747 of file zend_execute.c.

◆ zend_deprecated_class_constant()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_deprecated_class_constant ( const zend_class_constant * c,
const zend_string * constant_name )

Definition at line 1908 of file zend_execute.c.

◆ zend_deprecated_function()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_deprecated_function ( const zend_function * fbc)

Definition at line 1882 of file zend_execute.c.

◆ zend_false_to_array_deprecated()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_false_to_array_deprecated ( void )

Definition at line 1929 of file zend_execute.c.

◆ zend_fcall_interrupt()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_fcall_interrupt ( zend_execute_data * call)

Definition at line 4081 of file zend_execute.c.

◆ zend_fetch_dimension_const()

ZEND_API void zend_fetch_dimension_const ( zval * result,
zval * container,
zval * dim,
int type )

Definition at line 3098 of file zend_execute.c.

◆ zend_fetch_function()

ZEND_API zend_function *ZEND_FASTCALL zend_fetch_function ( zend_string * name)

Definition at line 4252 of file zend_execute.c.

◆ zend_fetch_function_str()

ZEND_API zend_function *ZEND_FASTCALL zend_fetch_function_str ( const char * name,
size_t len )

Definition at line 4267 of file zend_execute.c.

◆ zend_frameless_observed_call()

ZEND_API void zend_frameless_observed_call ( zend_execute_data * execute_data)

Definition at line 1594 of file zend_execute.c.

◆ zend_free_compiled_variables()

ZEND_API void ZEND_FASTCALL zend_free_compiled_variables ( zend_execute_data * execute_data)

Definition at line 4075 of file zend_execute.c.

◆ zend_free_extra_named_params()

ZEND_API void ZEND_FASTCALL zend_free_extra_named_params ( zend_array * extra_named_params)

Definition at line 5474 of file zend_execute.c.

◆ zend_gcc_global_regs()

ZEND_API bool zend_gcc_global_regs ( void )

Definition at line 242 of file zend_execute.c.

◆ zend_get_compiled_variable_value()

ZEND_API zval * zend_get_compiled_variable_value ( const zend_execute_data * execute_data,
uint32_t var )

Definition at line 237 of file zend_execute.c.

◆ zend_get_user_opcode_handler()

ZEND_API user_opcode_handler_t zend_get_user_opcode_handler ( zend_uchar opcode)

Definition at line 5700 of file zend_execute.c.

◆ zend_get_zval_ptr()

ZEND_API zval * zend_get_zval_ptr ( const zend_op * opline,
int op_type,
const znode_op * node,
const zend_execute_data * execute_data )

Definition at line 5705 of file zend_execute.c.

◆ zend_handle_named_arg()

zval *ZEND_FASTCALL zend_handle_named_arg ( zend_execute_data ** call_ptr,
zend_string * arg_name,
uint32_t * arg_num_ptr,
void ** cache_slot )

Definition at line 5290 of file zend_execute.c.

◆ zend_handle_undef_args()

ZEND_API zend_result ZEND_FASTCALL zend_handle_undef_args ( zend_execute_data * call)

Definition at line 5369 of file zend_execute.c.

◆ zend_init_code_execute_data()

ZEND_API void zend_init_code_execute_data ( zend_execute_data * execute_data,
zend_op_array * op_array,
zval * return_value )

Definition at line 4345 of file zend_execute.c.

◆ zend_init_execute_data()

ZEND_API void zend_init_execute_data ( zend_execute_data * execute_data,
zend_op_array * op_array,
zval * return_value )

Definition at line 4352 of file zend_execute.c.

◆ zend_init_func_execute_data()

ZEND_API void zend_init_func_execute_data ( zend_execute_data * ex,
zend_op_array * op_array,
zval * return_value )

Definition at line 4315 of file zend_execute.c.

◆ zend_init_func_run_time_cache()

ZEND_API void ZEND_FASTCALL zend_init_func_run_time_cache ( zend_op_array * op_array)

Definition at line 4282 of file zend_execute.c.

◆ zend_invalid_class_constant_type_error()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_invalid_class_constant_type_error ( uint8_t type)

Definition at line 910 of file zend_execute.c.

◆ zend_magic_get_property_type_inconsistency_error()

ZEND_COLD zend_never_inline void zend_magic_get_property_type_inconsistency_error ( const zend_property_info * info,
const zval * property )

Definition at line 858 of file zend_execute.c.

◆ zend_match_unhandled_error()

ZEND_COLD void zend_match_unhandled_error ( const zval * value)

Definition at line 875 of file zend_execute.c.

◆ zend_missing_arg_error()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_missing_arg_error ( zend_execute_data * execute_data)

Definition at line 1413 of file zend_execute.c.

◆ zend_object_released_while_assigning_to_property_error()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_object_released_while_assigning_to_property_error ( const zend_property_info * info)

Definition at line 915 of file zend_execute.c.

◆ zend_param_must_be_ref()

ZEND_COLD void ZEND_FASTCALL zend_param_must_be_ref ( const zend_function * func,
uint32_t arg_num )

Definition at line 2468 of file zend_execute.c.

◆ zend_readonly_property_indirect_modification_error()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_indirect_modification_error ( const zend_property_info * info)

Definition at line 904 of file zend_execute.c.

◆ zend_readonly_property_modification_error()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_modification_error ( const zend_property_info * info)

Definition at line 893 of file zend_execute.c.

◆ zend_readonly_property_modification_error_ex()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_readonly_property_modification_error_ex ( const char * class_name,
const char * prop_name )

Definition at line 899 of file zend_execute.c.

◆ zend_ref_add_type_source()

ZEND_API void ZEND_FASTCALL zend_ref_add_type_source ( zend_property_info_source_list * source_list,
zend_property_info * prop )

Definition at line 3908 of file zend_execute.c.

◆ zend_ref_del_type_source()

ZEND_API void ZEND_FASTCALL zend_ref_del_type_source ( zend_property_info_source_list * source_list,
const zend_property_info * prop )

Definition at line 3931 of file zend_execute.c.

◆ zend_set_user_opcode_handler()

ZEND_API zend_result zend_set_user_opcode_handler ( zend_uchar opcode,
user_opcode_handler_t handler )

Definition at line 5685 of file zend_execute.c.

◆ zend_throw_conflicting_coercion_error()

ZEND_API ZEND_COLD void zend_throw_conflicting_coercion_error ( const zend_property_info * prop1,
const zend_property_info * prop2,
const zval * zv )

Definition at line 3685 of file zend_execute.c.

◆ zend_throw_ref_type_error_type()

ZEND_API ZEND_COLD void zend_throw_ref_type_error_type ( const zend_property_info * prop1,
const zend_property_info * prop2,
const zval * zv )

Definition at line 3658 of file zend_execute.c.

◆ zend_throw_ref_type_error_zval()

ZEND_API ZEND_COLD void zend_throw_ref_type_error_zval ( const zend_property_info * prop,
const zval * zv )

Definition at line 3674 of file zend_execute.c.

◆ zend_undefined_index_write()

ZEND_API ZEND_COLD zval *ZEND_FASTCALL zend_undefined_index_write ( HashTable * ht,
zend_string * offset )

Definition at line 2423 of file zend_execute.c.

◆ zend_undefined_offset_write()

ZEND_API ZEND_COLD zval *ZEND_FASTCALL zend_undefined_offset_write ( HashTable * ht,
zend_long lval )

Definition at line 2403 of file zend_execute.c.

◆ zend_unfinished_calls_gc()

ZEND_API void zend_unfinished_calls_gc ( zend_execute_data * execute_data,
zend_execute_data * call,
uint32_t op_num,
zend_get_gc_buffer * buf )

Definition at line 4408 of file zend_execute.c.

◆ zend_unfinished_execution_gc()

ZEND_API ZEND_ATTRIBUTE_DEPRECATED HashTable * zend_unfinished_execution_gc ( zend_execute_data * execute_data,
zend_execute_data * call,
zend_get_gc_buffer * gc_buffer )

Definition at line 4752 of file zend_execute.c.

◆ zend_unfinished_execution_gc_ex()

ZEND_API HashTable * zend_unfinished_execution_gc_ex ( zend_execute_data * execute_data,
zend_execute_data * call,
zend_get_gc_buffer * gc_buffer,
bool suspended_by_yield )

Definition at line 4757 of file zend_execute.c.

◆ zend_use_resource_as_offset()

ZEND_API ZEND_COLD void ZEND_FASTCALL zend_use_resource_as_offset ( const zval * dim)

Definition at line 2493 of file zend_execute.c.

◆ zend_verify_arg_error()

ZEND_API ZEND_COLD void zend_verify_arg_error ( const zend_function * zf,
const zend_arg_info * arg_info,
uint32_t arg_num,
zval * value )

Definition at line 698 of file zend_execute.c.

◆ zend_verify_class_constant_type()

ZEND_API bool zend_never_inline zend_verify_class_constant_type ( zend_class_constant * c,
const zend_string * name,
zval * constant )

Definition at line 1541 of file zend_execute.c.

◆ zend_verify_class_constant_type_error()

ZEND_COLD zend_never_inline void zend_verify_class_constant_type_error ( const zend_class_constant * c,
const zend_string * name,
const zval * constant )

Definition at line 830 of file zend_execute.c.

◆ zend_verify_never_error()

ZEND_API ZEND_COLD void zend_verify_never_error ( const zend_function * zf)

Definition at line 1454 of file zend_execute.c.

◆ zend_verify_prop_assignable_by_ref()

ZEND_API bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref ( const zend_property_info * prop_info,
zval * orig_val,
bool strict )

Definition at line 3904 of file zend_execute.c.

◆ zend_verify_prop_assignable_by_ref_ex()

ZEND_API bool ZEND_FASTCALL zend_verify_prop_assignable_by_ref_ex ( const zend_property_info * prop_info,
zval * orig_val,
bool strict,
zend_verify_prop_assignable_by_ref_context context )

Definition at line 3863 of file zend_execute.c.

◆ zend_verify_property_type()

ZEND_API bool zend_never_inline zend_verify_property_type ( const zend_property_info * info,
zval * property,
bool strict )

Definition at line 1056 of file zend_execute.c.

◆ zend_verify_property_type_error()

ZEND_COLD zend_never_inline void zend_verify_property_type_error ( const zend_property_info * info,
const zval * property )

Definition at line 840 of file zend_execute.c.

◆ zend_verify_ref_array_assignable()

ZEND_API bool zend_verify_ref_array_assignable ( zend_reference * ref)

Definition at line 3284 of file zend_execute.c.

◆ zend_verify_ref_assignable_zval()

ZEND_API bool ZEND_FASTCALL zend_verify_ref_assignable_zval ( zend_reference * ref,
zval * zv,
bool strict )

Definition at line 3743 of file zend_execute.c.

◆ zend_verify_return_error()

ZEND_API ZEND_COLD void zend_verify_return_error ( const zend_function * zf,
zval * value )

Definition at line 1438 of file zend_execute.c.

◆ zend_verify_scalar_type_hint()

ZEND_API bool zend_verify_scalar_type_hint ( uint32_t type_mask,
zval * arg,
bool strict,
bool is_internal_arg )

Definition at line 809 of file zend_execute.c.

◆ zend_vm_stack_copy_call_frame()

zend_execute_data * zend_vm_stack_copy_call_frame ( zend_execute_data * call,
uint32_t passed_args,
uint32_t additional_args )

Definition at line 4362 of file zend_execute.c.

◆ zend_vm_stack_destroy()

ZEND_API void zend_vm_stack_destroy ( void )

Definition at line 209 of file zend_execute.c.

◆ zend_vm_stack_extend()

ZEND_API void * zend_vm_stack_extend ( size_t size)

Definition at line 220 of file zend_execute.c.

◆ zend_vm_stack_init()

ZEND_API void zend_vm_stack_init ( void )

Definition at line 191 of file zend_execute.c.

◆ zend_vm_stack_init_ex()

ZEND_API void zend_vm_stack_init_ex ( size_t page_size)

Definition at line 199 of file zend_execute.c.

◆ zend_wrong_string_offset_error()

ZEND_API ZEND_COLD void zend_wrong_string_offset_error ( void )

Definition at line 1772 of file zend_execute.c.

Variable Documentation

◆ zend_pass_function

ZEND_API const zend_internal_function zend_pass_function
Initial value:
= {
{0, 0, 0},
0,
NULL,
NULL,
NULL,
0,
0,
(zend_internal_arg_info *) zend_pass_function_arg_info + 1,
NULL,
NULL,
NULL,
0,
NULL,
NULL,
NULL,
}
#define NULL
Definition gdcache.h:45
#define pass(a, b, c, mul)
Definition hash_tiger.c:50
#define ZEND_FN(name)
Definition zend_API.h:71
#define ZEND_INTERNAL_FUNCTION
struct _zend_internal_arg_info zend_internal_arg_info

Definition at line 141 of file zend_execute.c.