From 8953916314338b40c1304972b799c80c79f59683 Mon Sep 17 00:00:00 2001 From: Felipe Pena Date: Wed, 6 Jul 2011 00:33:38 +0000 Subject: [PATCH] - Fixed bug #55137 (Changing trait static method visibility) --- Zend/tests/bug55137.phpt | 26 ++++++++++++++++++++++++++ Zend/zend_compile.c | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 Zend/tests/bug55137.phpt diff --git a/Zend/tests/bug55137.phpt b/Zend/tests/bug55137.phpt new file mode 100644 index 00000000000..4a4e6e61a24 --- /dev/null +++ b/Zend/tests/bug55137.phpt @@ -0,0 +1,26 @@ +--TEST-- +Bug #55137 (Changing trait static method visibility) +--FILE-- + +--EXPECT-- +abc +def diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 5f9cef311bf..f3b6b77718c 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -3661,6 +3661,7 @@ static int zend_traits_copy_functions(zend_function *fn TSRMLS_DC, int num_args, if (!(aliases[i]->modifiers & ZEND_ACC_PPP_MASK)) { fn_copy.common.fn_flags |= ZEND_ACC_PUBLIC; } + fn_copy.common.fn_flags |= fn->common.fn_flags ^ (fn->common.fn_flags & ZEND_ACC_PPP_MASK); } lcname_len = aliases[i]->alias_len; @@ -3700,6 +3701,7 @@ static int zend_traits_copy_functions(zend_function *fn TSRMLS_DC, int num_args, if (!(aliases[i]->modifiers & ZEND_ACC_PPP_MASK)) { fn_copy.common.fn_flags |= ZEND_ACC_PUBLIC; } + fn_copy.common.fn_flags |= fn->common.fn_flags ^ (fn->common.fn_flags & ZEND_ACC_PPP_MASK); } } i++;