diff options
author | Marcus Boerger <helly@php.net> | 2004-03-09 16:38:37 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2004-03-09 16:38:37 +0000 |
commit | 50ee116f08e28ec83e23594b9fd5a95fff51d533 (patch) | |
tree | f9896b73e53e3cd439e956cd19841aec6a0c72a9 /Zend/zend_compile.h | |
parent | 494d8207fe1e85fcf6f33a833c3209df529468a6 (diff) | |
download | php-git-50ee116f08e28ec83e23594b9fd5a95fff51d533.tar.gz |
Clearify the different method/class flags (as discussed with Andi).
Diffstat (limited to 'Zend/zend_compile.h')
-rw-r--r-- | Zend/zend_compile.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index f277d64b78..9f09c79b1b 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -99,18 +99,21 @@ typedef struct _zend_try_catch_element { } zend_try_catch_element; +/* method flags (types) */ #define ZEND_ACC_STATIC 0x01 #define ZEND_ACC_ABSTRACT 0x02 #define ZEND_ACC_FINAL 0x04 -#define ZEND_ACC_INTERFACE 0x08 -/* ZEND_ACC_ABSTRACT is used for abstract classes and methods. Abstract checks work only on this flag. */ -/* ZEND_ACC_ABSTRACT_CLASS denotes that a class was explicitly defined as abstract by using the keyword. */ -#define ZEND_ACC_ABSTRACT_CLASS 0x10 -#define ZEND_ACC_FINAL_CLASS 0x20 -#define ZEND_ACC_IMPLEMENTED_ABSTRACT 0x40 +#define ZEND_ACC_IMPLEMENTED_ABSTRACT 0x08 -#define ZEND_ACC_ALLOW_STATIC 0x80 +/* class flags (types) */ +/* ZEND_ACC_IMPLICIT_ABSTRACT_CLASS is used for abstract classes (since it is set by any abstract method even interfaces MAY have it set, too). */ +/* ZEND_ACC_EXPLICIT_ABSTRACT_CLASS denotes that a class was explicitly defined as abstract by using the keyword. */ +#define ZEND_ACC_IMPLICIT_ABSTRACT_CLASS 0x10 +#define ZEND_ACC_EXPLICIT_ABSTRACT_CLASS 0x20 +#define ZEND_ACC_FINAL_CLASS 0x40 +#define ZEND_ACC_INTERFACE 0x80 +/* method flags (visibility) */ /* The order of those must be kept - public < protected < private */ #define ZEND_ACC_PUBLIC 0x100 #define ZEND_ACC_PROTECTED 0x200 @@ -120,10 +123,14 @@ typedef struct _zend_try_catch_element { #define ZEND_ACC_CHANGED 0x800 #define ZEND_ACC_IMPLICIT_PUBLIC 0x1000 +/* method flags (special method detection) */ #define ZEND_ACC_CTOR 0x2000 #define ZEND_ACC_DTOR 0x4000 #define ZEND_ACC_CLONE 0x8000 +/* method flag (bc only), any method that has this flag can be used statically and non statically. */ +#define ZEND_ACC_ALLOW_STATIC 0x10000 + char *zend_visibility_string(zend_uint fn_flags); |