diff options
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) { | 
