Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
- index f63b3a755d..499d0d64b6 100644
- --- a/Zend/zend_compile.h
- +++ b/Zend/zend_compile.h
- @@ -202,131 +198,157 @@ typedef struct _zend_oparray_context {
- /* Common flags | | | */
- /* ============ | | | */
- /* | | | */
- +/* Visibility flags (public < protected < private) | | | */
- +#define ZEND_ACC_PUBLIC (1 << 0) /* | X | X | X */
- +#define ZEND_ACC_PROTECTED (1 << 1) /* | X | X | X */
- +#define ZEND_ACC_PRIVATE (1 << 2) /* | X | X | X */
- +/* | | | */
- +/* Property or method overrides private one | | | */
- +#define ZEND_ACC_CHANGED (1 << 3) /* | X | X | */
- +/* | | | */
- /* Staic method or property | | | */
- -#define ZEND_ACC_STATIC (1 << 0) /* | X | X | */
- +#define ZEND_ACC_STATIC (1 << 4) /* | X | X | */
- /* | | | */
- /* Final class or method | | | */
- -#define ZEND_ACC_FINAL (1 << 2) /* X | X | | */
- +#define ZEND_ACC_FINAL (1 << 5) /* X | X | | */
- /* | | | */
- -/* Visibility flags (public < protected < private) | | | */
- -#define ZEND_ACC_PUBLIC (1 << 8) /* | X | X | X */
- -#define ZEND_ACC_PROTECTED (1 << 9) /* | X | X | X */
- -#define ZEND_ACC_PRIVATE (1 << 10) /* | X | X | X */
- +/* Abstract method | | | */
- +#define ZEND_ACC_ABSTRACT (1 << 6) /* X | X | | */
- +#define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS (1 << 6) /* X | | | */
- /* | | | */
- -/* TODO: explain the name ??? | | | */
- -#define ZEND_ACC_CHANGED (1 << 11) /* | X | X | */
- +/* Immutable op_array and class_entries | | | */
- +/* (implemented only for lazy loading of op_arrays) | | | */
- +#define ZEND_ACC_IMMUTABLE (1 << 7) /* X | X | | */
- /* | | | */
- -/* TODO: used only by ext/reflection ??? | | | */
- -#define ZEND_ACC_IMPLICIT_PUBLIC (1 << 12) /* | ? | ? | ? */
- +/* Function has typed arguments / class has typed props | | | */
- +#define ZEND_ACC_HAS_TYPE_HINTS (1 << 8) /* X | X | | */
- /* | | | */
- -/* Shadow of parent's private method/property | | | */
- -#define ZEND_ACC_SHADOW (1 << 17) /* | ? | X | */
- +/* Top-level class or function declaration | | | */
- +#define ZEND_ACC_TOP_LEVEL (1 << 9) /* X | X | | */
- /* | | | */
- -/* Class Flags (unused: 0, 1, 3, 11-18, 21, 25...) | | | */
- +/* op_array or class is preloaded | | | */
- +#define ZEND_ACC_PRELOADED (1 << 10) /* X | X | | */
- +/* | | | */
- +/* Class Flags (unused: 24...) | | | */
- /* =========== | | | */
- /* | | | */
- +/* Special class types | | | */
- +#define ZEND_ACC_INTERFACE (1 << 0) /* X | | | */
- +#define ZEND_ACC_TRAIT (1 << 1) /* X | | | */
- +#define ZEND_ACC_ANON_CLASS (1 << 2) /* X | | | */
- +/* | | | */
- +/* Class linked with parent, interfacs and traits | | | */
- +#define ZEND_ACC_LINKED (1 << 3) /* X | | | */
- +/* | | | */
- /* class is abstarct, since it is set by any | | | */
- /* abstract method | | | */
- #define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS (1 << 4) /* X | | | */
- /* | | | */
- -/* Class is explicitly defined as abstract by using | | | */
- -/* the keyword. | | | */
- -#define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS (1 << 5) /* X | | | */
- -/* | | | */
- -/* Special class types | | | */
- -#define ZEND_ACC_INTERFACE (1 << 6) /* X | | | */
- -#define ZEND_ACC_TRAIT (1 << 7) /* X | | | */
- -#define ZEND_ACC_ANON_CLASS (1 << 8) /* X | | | */
- +/* Class has magic methods __get/__set/__unset/ | | | */
- +/* __isset that use guards | | | */
- +#define ZEND_ACC_USE_GUARDS (1 << 11) /* X | | | */
- /* | | | */
- -/* Bound anonymous class | | | */
- -#define ZEND_ACC_ANON_BOUND (1 << 9) /* X | | | */
- +/* Class constants updated | | | */
- +#define ZEND_ACC_CONSTANTS_UPDATED (1 << 12) /* X | | | */
- /* | | | */
- /* Class extends another class | | | */
- -#define ZEND_ACC_INHERITED (1 << 10) /* X | | | */
- +#define ZEND_ACC_INHERITED (1 << 13) /* X | | | */
- /* | | | */
- /* Class implements interface(s) | | | */
- -#define ZEND_ACC_IMPLEMENT_INTERFACES (1 << 19) /* X | | | */
- -/* | | | */
- -/* Class constants updated | | | */
- -#define ZEND_ACC_CONSTANTS_UPDATED (1 << 20) /* X | | | */
- +#define ZEND_ACC_IMPLEMENT_INTERFACES (1 << 14) /* X | | | */
- /* | | | */
- /* Class uses trait(s) | | | */
- -#define ZEND_ACC_IMPLEMENT_TRAITS (1 << 22) /* X | | | */
- +#define ZEND_ACC_IMPLEMENT_TRAITS (1 << 15) /* X | | | */
- /* | | | */
- /* User class has methods with static variables | | | */
- -#define ZEND_HAS_STATIC_IN_METHODS (1 << 23) /* X | | | */
- +#define ZEND_HAS_STATIC_IN_METHODS (1 << 16) /* X | | | */
- /* | | | */
- -/* Class has magic methods __get/__set/__unset/ | | | */
- -/* __isset that use guards | | | */
- -#define ZEND_ACC_USE_GUARDS (1 << 24) /* X | | | */
- +/* Whether all property types are resolved to CEs | | | */
- +#define ZEND_ACC_PROPERTY_TYPES_RESOLVED (1 << 17) /* X | | | */
- +/* | | | */
- +/* Children must reuse parent get_iterator() | | | */
- +#define ZEND_ACC_REUSE_GET_ITERATOR (1 << 18) /* X | | | */
- /* | | | */
- -/* Function Flags (unused: 4, 5, 17?) | | | */
- +/* Parent class is resolved (CE). | | | */
- +#define ZEND_ACC_RESOLVED_PARENT (1 << 19) /* X | | | */
- +/* | | | */
- +/* Interfaces are resolved (CEs). | | | */
- +#define ZEND_ACC_RESOLVED_INTERFACES (1 << 20) /* X | | | */
- +/* | | | */
- +/* Class has unresolved variance obligations. | | | */
- +#define ZEND_ACC_UNRESOLVED_VARIANCE (1 << 21) /* X | | | */
- +/* | | | */
- +/* Class is linked apart from variance obligations. | | | */
- +#define ZEND_ACC_NEARLY_LINKED (1 << 22) /* X | | | */
- +/* | | | */
- +/* Whether this class was used in its unlinked state. | | | */
- +#define ZEND_ACC_HAS_UNLINKED_USES (1 << 23) /* X | | | */
- +/* | | | */
- +/* Function Flags (unused: 23, 26) | | | */
- /* ============== | | | */
- /* | | | */
- -/* Abstarct method | | | */
- -#define ZEND_ACC_ABSTRACT (1 << 1) /* | X | | */
- +/* deprecation flag | | | */
- +#define ZEND_ACC_DEPRECATED (1 << 11) /* | X | | */
- /* | | | */
- -/* TODO: used only during inheritance ??? | | | */
- -#define ZEND_ACC_IMPLEMENTED_ABSTRACT (1 << 3) /* | X | | */
- +/* Function returning by reference | | | */
- +#define ZEND_ACC_RETURN_REFERENCE (1 << 12) /* | X | | */
- /* | | | */
- -#define ZEND_ACC_FAKE_CLOSURE (1 << 6) /* | X | | */
- +/* Function has a return type | | | */
- +#define ZEND_ACC_HAS_RETURN_TYPE (1 << 13) /* | X | | */
- /* | | | */
- -/* method flag used by Closure::__invoke() | | | */
- -#define ZEND_ACC_USER_ARG_INFO (1 << 7) /* | X | | */
- +/* Function with variable number of arguments | | | */
- +#define ZEND_ACC_VARIADIC (1 << 14) /* | X | | */
- /* | | | */
- -/* method flags (special method detection) | | | */
- -#define ZEND_ACC_CTOR (1 << 13) /* | X | | */
- -#define ZEND_ACC_DTOR (1 << 14) /* | X | | */
- +/* op_array has finally blocks (user only) | | | */
- +#define ZEND_ACC_HAS_FINALLY_BLOCK (1 << 15) /* | X | | */
- /* | | | */
- /* "main" op_array with | | | */
- -/* ZEND_DECLARE_INHERITED_CLASS_DELAYED opcodes | | | */
- -#define ZEND_ACC_EARLY_BINDING (1 << 15) /* | X | | */
- +/* ZEND_DECLARE_CLASS_DELAYED opcodes | | | */
- +#define ZEND_ACC_EARLY_BINDING (1 << 16) /* | X | | */
- /* | | | */
- /* method flag (bc only), any method that has this | | | */
- /* flag can be used statically and non statically. | | | */
- -#define ZEND_ACC_ALLOW_STATIC (1 << 16) /* | X | | */
- -/* | | | */
- -/* deprecation flag | | | */
- -#define ZEND_ACC_DEPRECATED (1 << 18) /* | X | | */
- -/* | | | */
- -#define ZEND_ACC_NO_RT_ARENA (1 << 19) /* | X | | */
- -/* | | | */
- -#define ZEND_ACC_CLOSURE (1 << 20) /* | X | | */
- +#define ZEND_ACC_ALLOW_STATIC (1 << 17) /* | X | | */
- /* | | | */
- /* call through user function trampoline. e.g. | | | */
- /* __call, __callstatic | | | */
- -#define ZEND_ACC_CALL_VIA_TRAMPOLINE (1 << 21) /* | X | | */
- +#define ZEND_ACC_CALL_VIA_TRAMPOLINE (1 << 18) /* | X | | */
- /* | | | */
- /* disable inline caching | | | */
- -#define ZEND_ACC_NEVER_CACHE (1 << 22) /* | X | | */
- +#define ZEND_ACC_NEVER_CACHE (1 << 19) /* | X | | */
- /* | | | */
- -#define ZEND_ACC_GENERATOR (1 << 23) /* | X | | */
- +/* Closure related | | | */
- +#define ZEND_ACC_CLOSURE (1 << 20) /* | X | | */
- +#define ZEND_ACC_FAKE_CLOSURE (1 << 21) /* | X | | */
- /* | | | */
- -/* Function with varable number of arguments | | | */
- -#define ZEND_ACC_VARIADIC (1 << 24) /* | X | | */
- +/* run_time_cache allocated on heap (user only) | | | */
- +#define ZEND_ACC_HEAP_RT_CACHE (1 << 22) /* | X | | */
- /* | | | */
- -/* Immutable op_array (lazy loading) | | | */
- -#define ZEND_ACC_IMMUTABLE (1 << 25) /* | X | | */
- +/* method flag used by Closure::__invoke() (int only) | | | */
- +#define ZEND_ACC_USER_ARG_INFO (1 << 22) /* | X | | */
- /* | | | */
- -/* Function returning by reference | | | */
- -#define ZEND_ACC_RETURN_REFERENCE (1 << 26) /* | X | | */
- +#define ZEND_ACC_GENERATOR (1 << 24) /* | X | | */
- /* | | | */
- -#define ZEND_ACC_DONE_PASS_TWO (1 << 27) /* | X | | */
- +/* function was processed by pass two (user only) | | | */
- +#define ZEND_ACC_DONE_PASS_TWO (1 << 25) /* | X | | */
- /* | | | */
- -/* Function has typed arguments | | | */
- -#define ZEND_ACC_HAS_TYPE_HINTS (1 << 28) /* | X | | */
- +/* internal function is allocated at arena (int only) | | | */
- +#define ZEND_ACC_ARENA_ALLOCATED (1 << 25) /* | X | | */
- /* | | | */
- -/* op_array has finally blocks (user only) | | | */
- -#define ZEND_ACC_HAS_FINALLY_BLOCK (1 << 29) /* | X | | */
- +/* op_array is a clone of trait method | | | */
- +#define ZEND_ACC_TRAIT_CLONE (1 << 27) /* | X | | */
- /* | | | */
- -/* internal function is allocated at arena (int only) | | | */
- -#define ZEND_ACC_ARENA_ALLOCATED (1 << 29) /* | X | | */
- +/* functions is a constructor | | | */
- +#define ZEND_ACC_CTOR (1 << 28) /* | X | | */
- /* | | | */
- -/* Function has a return type | | | */
- -#define ZEND_ACC_HAS_RETURN_TYPE (1 << 30) /* | X | | */
- +/* function is a destructor | | | */
- +#define ZEND_ACC_DTOR (1 << 29) /* | X | | */
- +/* | | | */
- +/* closure uses $this | | | */
- +#define ZEND_ACC_USES_THIS (1 << 30) /* | X | | */
- /* | | | */
- /* op_array uses strict mode types | | | */
- -#define ZEND_ACC_STRICT_TYPES (1 << 31) /* | X | | */
- +#define ZEND_ACC_STRICT_TYPES (1U << 31) /* | X | | */
- #define ZEND_ACC_PPP_MASK (ZEND_ACC_PUBLIC | ZEND_ACC_PROTECTED | ZEND_ACC_PRIVATE)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement