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 /ext | |
| parent | 494d8207fe1e85fcf6f33a833c3209df529468a6 (diff) | |
| download | php-git-50ee116f08e28ec83e23594b9fd5a95fff51d533.tar.gz | |
Clearify the different method/class flags (as discussed with Andi).
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/reflection/php_reflection.c | 23 | ||||
| -rwxr-xr-x | ext/spl/spl_functions.c | 2 | ||||
| -rwxr-xr-x | ext/spl/spl_iterators.c | 2 |
3 files changed, 16 insertions, 11 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 89bd0a9282..97b71d5059 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -269,13 +269,17 @@ static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *in if (ce->get_iterator != NULL) { string_printf(str, "<iterateable> "); } - if (ce->ce_flags & ZEND_ACC_ABSTRACT_CLASS) { - string_printf(str, "abstract "); + if (ce->ce_flags & ZEND_ACC_INTERFACE) { + string_printf(str, "interface "); + } else { + if (ce->ce_flags & (ZEND_ACC_IMPLICIT_ABSTRACT_CLASS|ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)) { + string_printf(str, "abstract "); + } + if (ce->ce_flags & ZEND_ACC_FINAL_CLASS) { + string_printf(str, "final "); + } + string_printf(str, "class "); } - if (ce->ce_flags & ZEND_ACC_FINAL_CLASS) { - string_printf(str, "final "); - } - string_printf(str, (ce->ce_flags & ZEND_ACC_INTERFACE) ? "interface " : "class "); string_write(str, ce->name, ce->name_length); if (ce->parent) { string_printf(str, " extends %s", ce->parent->name); @@ -952,7 +956,7 @@ ZEND_METHOD(reflection, getModifierNames) array_init(return_value); - if (modifiers & (ZEND_ACC_ABSTRACT | ZEND_ACC_ABSTRACT_CLASS)) { + if (modifiers & (ZEND_ACC_ABSTRACT | ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)) { add_next_index_stringl(return_value, "abstract", sizeof("abstract"), 1); } if (modifiers & (ZEND_ACC_FINAL | ZEND_ACC_FINAL_CLASS)) { @@ -2252,7 +2256,7 @@ ZEND_METHOD(reflection_class, isFinal) Returns whether this class is abstract */ ZEND_METHOD(reflection_class, isAbstract) { - _class_check_flag(INTERNAL_FUNCTION_PARAM_PASSTHRU, ZEND_ACC_ABSTRACT_CLASS); + _class_check_flag(INTERNAL_FUNCTION_PARAM_PASSTHRU, ZEND_ACC_IMPLICIT_ABSTRACT_CLASS); } /* }}} */ @@ -3192,7 +3196,8 @@ ZEND_API void zend_register_reflection_api(TSRMLS_D) { REGISTER_MAIN_LONG_CONSTANT("M_FINAL", ZEND_ACC_FINAL, CONST_PERSISTENT|CONST_CS); /* Class modifiers */ - REGISTER_MAIN_LONG_CONSTANT("C_ABSTRACT", ZEND_ACC_ABSTRACT_CLASS, CONST_PERSISTENT|CONST_CS); + REGISTER_MAIN_LONG_CONSTANT("C_IMPLICIT_ABSTRACT", ZEND_ACC_IMPLICIT_ABSTRACT_CLASS, CONST_PERSISTENT|CONST_CS); + REGISTER_MAIN_LONG_CONSTANT("C_EXPLICIT_ABSTRACT", ZEND_ACC_EXPLICIT_ABSTRACT_CLASS, CONST_PERSISTENT|CONST_CS); REGISTER_MAIN_LONG_CONSTANT("C_FINAL", ZEND_ACC_FINAL_CLASS, CONST_PERSISTENT|CONST_CS); } /* }}} */ diff --git a/ext/spl/spl_functions.c b/ext/spl/spl_functions.c index b4fd7507cf..fc9c315ea6 100755 --- a/ext/spl/spl_functions.c +++ b/ext/spl/spl_functions.c @@ -45,7 +45,7 @@ void spl_register_interface(zend_class_entry ** ppce, char * class_name, zend_fu *ppce = zend_register_internal_class(&ce TSRMLS_CC); /* entries changed by initialize */ - (*ppce)->ce_flags = ZEND_ACC_ABSTRACT | ZEND_ACC_INTERFACE; + (*ppce)->ce_flags = ZEND_ACC_INTERFACE; } /* }}} */ diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index d3973ed4b9..2168787987 100755 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -1204,7 +1204,7 @@ PHP_MINIT_FUNCTION(spl_iterators) REGISTER_SPL_STD_CLASS_EX(FilterIterator, spl_dual_it_new, spl_funcs_FilterIterator); REGISTER_SPL_ITERATOR(FilterIterator); - spl_ce_FilterIterator->ce_flags |= ZEND_ACC_ABSTRACT_CLASS; + spl_ce_FilterIterator->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; REGISTER_SPL_SUB_CLASS_EX(ParentIterator, FilterIterator, spl_dual_it_new, spl_funcs_ParentIterator); REGISTER_SPL_IMPLEMENTS(ParentIterator, RecursiveIterator); |
