|
|
|
@ -3414,6 +3414,7 @@ void zend_do_begin_class_declaration(const znode *class_token, znode *class_name |
|
|
|
/* Prefix class name with name of current namespace */ |
|
|
|
znode tmp; |
|
|
|
|
|
|
|
tmp.op_type = IS_CONST; |
|
|
|
tmp.u.constant = *CG(current_namespace); |
|
|
|
zval_copy_ctor(&tmp.u.constant); |
|
|
|
zend_do_build_namespace_name(&tmp, &tmp, class_name TSRMLS_CC); |
|
|
|
@ -3529,7 +3530,7 @@ void zend_do_end_class_declaration(const znode *class_token, const znode *parent |
|
|
|
ce->line_end = zend_get_compiled_lineno(TSRMLS_C); |
|
|
|
|
|
|
|
if (!(ce->ce_flags & (ZEND_ACC_INTERFACE|ZEND_ACC_EXPLICIT_ABSTRACT_CLASS)) |
|
|
|
&& ((parent_token->op_type != IS_UNUSED) || (ce->num_interfaces > 0))) { |
|
|
|
&& (parent_token || (ce->num_interfaces > 0))) { |
|
|
|
zend_verify_abstract_class(ce TSRMLS_CC); |
|
|
|
if (ce->num_interfaces) { |
|
|
|
do_verify_abstract_class(TSRMLS_C); |
|
|
|
|