Currently we cannot support static ctor/dtor

This commit is contained in:
Marcus Boerger 2003-09-02 13:26:25 +00:00
parent 0f1b506f20
commit 0f3374615b
2 changed files with 12 additions and 0 deletions

View File

@ -1283,9 +1283,15 @@ int zend_register_functions(zend_class_entry *scope, zend_function_entry *functi
scope->clone = clone;
if (ctor) {
ctor->common.fn_flags |= ZEND_ACC_CTOR;
if (ctor->common.fn_flags & ZEND_ACC_STATIC) {
zend_error(error_type, "Constructor %s::%s cannot be static", ctor->common.scope->name, ctor->common.function_name);
}
}
if (dtor) {
dtor->common.fn_flags |= ZEND_ACC_DTOR;
if (dtor->common.fn_flags & ZEND_ACC_STATIC) {
zend_error(error_type, "Destructor %s::%s cannot be static", dtor->common.scope->name, dtor->common.function_name);
}
}
}
return SUCCESS;

View File

@ -2277,9 +2277,15 @@ void zend_do_end_class_declaration(znode *class_token, znode *parent_token TSRML
if (ce->constructor) {
ce->constructor->common.fn_flags |= ZEND_ACC_CTOR;
if (ce->constructor->common.fn_flags & ZEND_ACC_STATIC) {
zend_error(E_COMPILE_ERROR, "Constructor %s::%s cannot be static", ce->name, ce->constructor->common.function_name);
}
}
if (ce->destructor) {
ce->destructor->common.fn_flags |= ZEND_ACC_DTOR;
if (ce->destructor->common.fn_flags & ZEND_ACC_STATIC) {
zend_error(E_COMPILE_ERROR, "Destructor %s::%s cannot be static", ce->name, ce->destructor->common.function_name);
}
}
ce->line_end = zend_get_compiled_lineno(TSRMLS_C);