]> granicus.if.org Git - php/commitdiff
Fixed usage of invalid frame for exit point
authorDmitry Stogov <dmitry@zend.com>
Mon, 28 Sep 2020 13:18:06 +0000 (16:18 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 28 Sep 2020 13:18:06 +0000 (16:18 +0300)
ext/opcache/jit/zend_jit_trace.c

index 9cfbcb0cf35be5fbb991a1716da3d66451435fb4..9b01a0fcca228f849a32d6482a891bb666802e5c 100644 (file)
@@ -5322,6 +5322,7 @@ done:
                                        while (prev_opline->opcode == ZEND_EXT_FCALL_BEGIN || prev_opline->opcode == ZEND_TICKS) {
                                                prev_opline--;
                                        }
+                                       JIT_G(current_frame) = call;
                                        if ((prev_opline->opcode == ZEND_SEND_ARRAY
                                          || prev_opline->opcode == ZEND_SEND_UNPACK
                                          || prev_opline->opcode == ZEND_CHECK_UNDEF_ARGS)
@@ -5334,6 +5335,7 @@ done:
                                         && !zend_jit_trace_opline_guard(&dasm_state, (p+1)->opline)) {
                                                goto jit_failure;
                                        }
+                                       JIT_G(current_frame) = frame;
                                }
                        }