diff options
Diffstat (limited to 'Zend/zend_compile.h')
| -rw-r--r-- | Zend/zend_compile.h | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index a885518caf..63d67660c6 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -245,26 +245,33 @@ typedef struct _zend_property_info { #define OBJ_PROP_TO_NUM(offset) \ ((offset - OBJ_PROP_TO_OFFSET(0)) / sizeof(zval)) +/* arg_info for internal functions */ +typedef struct _zend_internal_arg_info { + const char *name; + const char *class_name; + zend_uchar type_hint; + zend_uchar pass_by_reference; + zend_bool allow_null; + zend_bool is_variadic; +} zend_internal_arg_info; + +/* arg_info for user functions */ typedef struct _zend_arg_info { - const char *name; // TODO: convert into zend_string ??? - uint32_t name_len; - const char *class_name; // TODO: convert into zend_string ??? - uint32_t class_name_len; + zend_string *name; + zend_string *class_name; zend_uchar type_hint; zend_uchar pass_by_reference; zend_bool allow_null; zend_bool is_variadic; } zend_arg_info; -/* the following structure repeats the layout of zend_arg_info, +/* the following structure repeats the layout of zend_internal_arg_info, * but its fields have different meaning. It's used as the first element of * arg_info array to define properties of internal functions. */ typedef struct _zend_internal_function_info { - const char *_name; - uint32_t _name_len; + zend_uintptr_t required_num_args; const char *_class_name; - uint32_t required_num_args; zend_uchar _type_hint; zend_bool return_reference; zend_bool _allow_null; @@ -330,7 +337,7 @@ typedef struct _zend_internal_function { zend_function *prototype; uint32_t num_args; uint32_t required_num_args; - zend_arg_info *arg_info; + zend_internal_arg_info *arg_info; /* END of common elements */ void (*handler)(INTERNAL_FUNCTION_PARAMETERS); |
