]> granicus.if.org Git - php/commitdiff
Objects with constructors escape
authorDmitry Stogov <dmitry@zend.com>
Fri, 1 Sep 2017 07:31:43 +0000 (10:31 +0300)
committerDmitry Stogov <dmitry@zend.com>
Fri, 1 Sep 2017 07:31:43 +0000 (10:31 +0300)
ext/opcache/Optimizer/escape_analysis.c

index d0fe52b841df2fc3fb26cb6c8da577aaaa276eef..db2923b086e8c15835fa3e835c1a4bebfc8a1e9d 100644 (file)
@@ -177,7 +177,7 @@ static int is_allocation_def(zend_op_array *op_array, zend_ssa *ssa, int def, in
                            /* objects with destructors should escape */
                                if (opline->op1_type == IS_CONST) {
                                        zend_class_entry *ce = get_class_entry(script, Z_STR_P(CRT_CONSTANT_EX(op_array, opline->op1, ssa->rt_constants)+1));
-                                       if (ce && !ce->create_object &&
+                                       if (ce && !ce->create_object && !ce->constructor &&
                                            !ce->destructor && !ce->__get && !ce->__set &&
                                            !(ce->ce_flags & ZEND_ACC_INHERITED)) {
                                                return 1;