summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-03-04 18:07:07 +0300
committerDmitry Stogov <dmitry@zend.com>2015-03-04 18:07:07 +0300
commit13eed2676dc060c0545dad5f4d75362f188548bb (patch)
tree7e6f75063988d8f2698bed7e5bcf3ba60ce48464
parent68d45751321201b62a0f07a951354a303968d1ed (diff)
parentbadc19d8840ae367ab5efea28c55783c0b0862e5 (diff)
downloadphp-git-13eed2676dc060c0545dad5f4d75362f188548bb.tar.gz
Merge commit 'refs/pull/1137/head' of git://github.com/php/php-src
* git://github.com/php/php-src: Optimize class constant declare compilation
-rw-r--r--Zend/zend_compile.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 1c4ecf7119..6321983a20 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -4524,6 +4524,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];
@@ -4531,11 +4536,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);