summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2015-03-05 21:06:07 +0800
committerXinchen Hui <laruence@php.net>2015-03-05 21:06:07 +0800
commite8e5913e5e3500d2efee4a60fdfd77ab46fe2021 (patch)
tree7fd977e472ead1e81e7246cb5306b8e155a1ba25
parent7bcdbcf98e245467fcc9d481fd31cdfc353a114b (diff)
parent869f8bd24bbabdf91198f99b1ee124c91d2696ce (diff)
downloadphp-git-e8e5913e5e3500d2efee4a60fdfd77ab46fe2021.tar.gz
Merge branch 'PHP-5.5' into PHP-5.6
-rw-r--r--Zend/zend_compile.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 5a87ee21c3..180bcd1d8e 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -4211,6 +4211,7 @@ static void zend_check_trait_usage(zend_class_entry *ce, zend_class_entry *trait
static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /* {{{ */
{
size_t i, j = 0;
+ zend_trait_precedence **precedences;
zend_trait_precedence *cur_precedence;
zend_trait_method_reference *cur_method_ref;
char *lcname;
@@ -4219,7 +4220,9 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
/* resolve class references */
if (ce->trait_precedences) {
i = 0;
- while ((cur_precedence = ce->trait_precedences[i])) {
+ precedences = ce->trait_precedences;
+ ce->trait_precedences = NULL;
+ while ((cur_precedence = precedences[i])) {
/** Resolve classes for all precedence operations. */
if (cur_precedence->exclude_from_classes) {
cur_method_ref = cur_precedence->trait_method;
@@ -4276,6 +4279,7 @@ static void zend_traits_init_trait_structures(zend_class_entry *ce TSRMLS_DC) /*
}
i++;
}
+ ce->trait_precedences = precedences;
}
if (ce->trait_aliases) {