]> granicus.if.org Git - php/commitdiff
Fixed incorrect FETCH_THIS optimization
authorDmitry Stogov <dmitry@zend.com>
Mon, 16 Nov 2020 11:51:39 +0000 (14:51 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 16 Nov 2020 11:51:39 +0000 (14:51 +0300)
ext/opcache/jit/zend_jit_trace.c

index 31ab4fab068c89acbb3b37fe9725854fe55dda3c..9acb47b3fe6a2084690f89a2599c322100eca16d 100644 (file)
@@ -5332,7 +5332,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
                                                goto done;
                                        case ZEND_FETCH_THIS:
                                                delayed_fetch_this = 0;
-                                               if (ssa_op->result_def >= 0) {
+                                               if (ssa_op->result_def >= 0 && opline->result_type != IS_CV) {
                                                        if (zend_jit_may_delay_fetch_this(ssa, ssa_opcodes, ssa_op->result_def)) {
                                                                ssa->var_info[ssa_op->result_def].delayed_fetch_this = 1;
                                                                delayed_fetch_this = 1;