- For internal classes we must auto generate the abstract class flags.

# Actually providing the flags while registering the class is not possible
# since that would require a major API change.
This commit is contained in:
Marcus Boerger 2005-08-11 20:32:01 +00:00
parent d5bf30a281
commit a4e1032836

View File

@ -2144,8 +2144,12 @@ ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent
zend_hash_merge(&ce->constants_table, &parent_ce->constants_table, (void (*)(void *)) zval_add_ref, NULL, sizeof(zval *), 0);
zend_hash_merge_ex(&ce->function_table, &parent_ce->function_table, (copy_ctor_func_t) do_inherit_method, sizeof(zend_function), (merge_checker_func_t) do_inherit_method_check, ce);
do_inherit_parent_constructor(ce);
zend_verify_abstract_class(ce TSRMLS_CC);
if (ce->ce_flags & ZEND_ACC_IMPLICIT_ABSTRACT_CLASS && ce->type == ZEND_INTERNAL_CLASS) {
ce->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
} else {
zend_verify_abstract_class(ce TSRMLS_CC);
}
}