From a34fedb7237afed21b7e3084d22281cd6ac2e57b Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 9 Jul 2018 15:18:09 +0300 Subject: Eliminated check --- Zend/zend_inheritance.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'Zend/zend_inheritance.c') diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index b66464c375..1873d76007 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -588,13 +588,13 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function * } else if (parent_flags & ZEND_ACC_ABSTRACT) { child->common.fn_flags |= ZEND_ACC_IMPLEMENTED_ABSTRACT; child->common.prototype = parent; - } else if (!(parent->common.fn_flags & ZEND_ACC_CTOR) || (parent->common.prototype && (parent->common.prototype->common.scope->ce_flags & ZEND_ACC_INTERFACE))) { + } else if (!(parent->common.fn_flags & ZEND_ACC_CTOR)) { + child->common.prototype = parent->common.prototype ? parent->common.prototype : parent; + } else if (parent->common.prototype && (parent->common.prototype->common.scope->ce_flags & ZEND_ACC_INTERFACE)) { /* ctors only have a prototype if it comes from an interface */ child->common.prototype = parent->common.prototype ? parent->common.prototype : parent; /* and if that is the case, we want to check inheritance against it */ - if (parent->common.fn_flags & ZEND_ACC_CTOR) { - parent = child->common.prototype; - } + parent = child->common.prototype; } if (UNEXPECTED(!zend_do_perform_implementation_check(child, parent))) { -- cgit v1.2.1