summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.c
diff options
context:
space:
mode:
authorLars Strojny <lstrojny@php.net>2012-08-28 14:06:18 +0200
committerLars Strojny <lstrojny@php.net>2012-08-28 14:10:25 +0200
commit6b1073a3a7030d70a684638f098dbf22affb5c63 (patch)
treebac6804f2646f92227d78904f722f839526452bc /Zend/zend_compile.c
parentdd9478e6c871418a7e130e5f6cacc7eaa8d92cf4 (diff)
downloadphp-git-6b1073a3a7030d70a684638f098dbf22affb5c63.tar.gz
Bug #62956: fixing private method signature validation
In inheritance, if both methods are private, don not enforce the same signature.
Diffstat (limited to 'Zend/zend_compile.c')
-rw-r--r--Zend/zend_compile.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 704db107ca..f7b638f90c 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -2969,6 +2969,11 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c
return 1;
}
+ /* If both methods are private do not enforce a signature */
+ if ((fe->common.fn_flags & ZEND_ACC_PRIVATE) && (proto->common.fn_flags & ZEND_ACC_PRIVATE)) {
+ return 1;
+ }
+
/* check number of arguments */
if (proto->common.required_num_args < fe->common.required_num_args
|| proto->common.num_args > fe->common.num_args) {