diff options
| author | Guilherme Blanco <guilhermeblanco@hotmail.com> | 2015-02-12 23:19:14 +0100 |
|---|---|---|
| committer | Nikita Popov <nikic@php.net> | 2015-02-12 23:20:19 +0100 |
| commit | 8c81d80e10e0f189307fc8ff4a8fb34bd0cb1fcb (patch) | |
| tree | 962ecf3dbea41b0d4d539a60498b6942304bd844 /Zend/zend_builtin_functions.c | |
| parent | a0d472e1dad4a1cb719ba56a1ca4da19fadfdfb3 (diff) | |
| download | php-git-8c81d80e10e0f189307fc8ff4a8fb34bd0cb1fcb.tar.gz | |
Made ZEND_ACC_TRAIT a saner value
CC_TRAIT valued as 0x120 is too magical to be comprehensible by others.
Diffstat (limited to 'Zend/zend_builtin_functions.c')
| -rw-r--r-- | Zend/zend_builtin_functions.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index fe7c8f7556..dca0890b14 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -1378,14 +1378,16 @@ ZEND_FUNCTION(class_exists) } else { lc_name = zend_string_tolower(class_name); } + ce = zend_hash_find_ptr(EG(class_table), lc_name); zend_string_release(lc_name); RETURN_BOOL(ce && !((ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT)) > ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)); } ce = zend_lookup_class(class_name); + if (ce) { - RETURN_BOOL((ce->ce_flags & (ZEND_ACC_INTERFACE | (ZEND_ACC_TRAIT - ZEND_ACC_EXPLICIT_ABSTRACT_CLASS))) == 0); + RETURN_BOOL((ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT)) == 0); } else { RETURN_FALSE; } @@ -1462,6 +1464,7 @@ ZEND_FUNCTION(trait_exists) } else { lc_name = zend_string_tolower(trait_name); } + ce = zend_hash_find_ptr(EG(class_table), lc_name); zend_string_release(lc_name); RETURN_BOOL(ce && ((ce->ce_flags & ZEND_ACC_TRAIT) > ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)); @@ -1806,7 +1809,7 @@ ZEND_FUNCTION(get_declared_traits) Returns an array of all declared classes. */ ZEND_FUNCTION(get_declared_classes) { - uint32_t mask = ZEND_ACC_INTERFACE | (ZEND_ACC_TRAIT & ~ZEND_ACC_EXPLICIT_ABSTRACT_CLASS); + uint32_t mask = ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT; uint32_t comply = 0; if (zend_parse_parameters_none() == FAILURE) { |
