summaryrefslogtreecommitdiff
path: root/Zend/zend_inheritance.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2019-02-14 13:18:45 +0300
committerDmitry Stogov <dmitry@zend.com>2019-02-14 13:18:45 +0300
commit4474cf43e6ba4faa33e66146bfa2859e1094b32f (patch)
tree3307c1abdd2ddd71526fbe5e4ffe2616cfc66e81 /Zend/zend_inheritance.c
parentad559556b9f138a17f326cbeabcee76fdc732e2f (diff)
parent43a7d95016761787cace63fb52e93e27e123d0cc (diff)
downloadphp-git-4474cf43e6ba4faa33e66146bfa2859e1094b32f.tar.gz
Merge branch 'PHP-7.4'
* PHP-7.4: Fixed bug #77613 (method visibility change) (reverted ZEND_ACC_CTOR and ZEND_ACC_DTOR flags removal)
Diffstat (limited to 'Zend/zend_inheritance.c')
-rw-r--r--Zend/zend_inheritance.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c
index 1241b848f5..072e0b1801 100644
--- a/Zend/zend_inheritance.c
+++ b/Zend/zend_inheritance.c
@@ -272,7 +272,7 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c
/* Checks for constructors only if they are declared in an interface,
* or explicitly marked as abstract
*/
- if ((fe->common.scope->constructor == fe)
+ if ((fe->common.fn_flags & ZEND_ACC_CTOR)
&& ((proto->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0
&& (proto->common.fn_flags & ZEND_ACC_ABSTRACT) == 0)) {
return 1;
@@ -574,7 +574,7 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function *
zend_function *proto = parent->common.prototype ?
parent->common.prototype : parent;
- if (parent->common.scope->constructor != parent) {
+ if (!(parent_flags & ZEND_ACC_CTOR)) {
if (!proto) {
proto = parent;
}
@@ -1947,7 +1947,7 @@ static void zend_verify_abstract_class_function(zend_function *fn, zend_abstract
if (ai->cnt < MAX_ABSTRACT_INFO_CNT) {
ai->afn[ai->cnt] = fn;
}
- if (fn->common.scope->constructor == fn) {
+ if (fn->common.fn_flags & ZEND_ACC_CTOR) {
if (!ai->ctor) {
ai->cnt++;
ai->ctor = 1;