diff options
author | Reeze Xia <reeze@php.net> | 2015-03-03 21:28:09 +0800 |
---|---|---|
committer | Reeze Xia <reeze@php.net> | 2015-03-03 21:28:09 +0800 |
commit | badc19d8840ae367ab5efea28c55783c0b0862e5 (patch) | |
tree | d38cdab09798488f3ec00a05f597a70a0b8d114a | |
parent | bc28ed6788459829593c5ddff310a505651cb797 (diff) | |
download | php-git-badc19d8840ae367ab5efea28c55783c0b0862e5.tar.gz |
Optimize class constant declare compilation
-rw-r--r-- | Zend/zend_compile.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index ae23d83f2a..b0269ca17e 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -4535,6 +4535,11 @@ void zend_compile_class_const_decl(zend_ast *ast) /* {{{ */ zend_class_entry *ce = CG(active_class_entry); uint32_t i; + if ((ce->ce_flags & ZEND_ACC_TRAIT) != 0) { + zend_error_noreturn(E_COMPILE_ERROR, "Traits cannot have constants"); + return; + } + for (i = 0; i < list->children; ++i) { zend_ast *const_ast = list->child[i]; zend_ast *name_ast = const_ast->child[0]; @@ -4542,11 +4547,6 @@ void zend_compile_class_const_decl(zend_ast *ast) /* {{{ */ zend_string *name = zend_ast_get_str(name_ast); zval value_zv; - if ((ce->ce_flags & ZEND_ACC_TRAIT) != 0) { - zend_error_noreturn(E_COMPILE_ERROR, "Traits cannot have constants"); - return; - } - zend_const_expr_to_zval(&value_zv, value_ast); name = zend_new_interned_string_safe(name); |