diff options
| author | Mike Pall <mike> | 2026-02-11 23:12:53 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2026-02-11 23:12:53 +0100 |
| commit | ab834de8b6a963a83046a72b5a7751dcd6cdcff0 (patch) | |
| tree | 8ef2909de58103cf6e657d1c8b99c81f06fcfbc7 /src/lj_trace.c | |
| parent | eff4006837792b6105e0a1743283ddde3548fc09 (diff) | |
| download | luajit-ab834de8b6a963a83046a72b5a7751dcd6cdcff0.tar.gz luajit-ab834de8b6a963a83046a72b5a7751dcd6cdcff0.tar.bz2 luajit-ab834de8b6a963a83046a72b5a7751dcd6cdcff0.zip | |
Avoid recording interference due to invocation of VM hooks.
Thanks to Sergey Kaplun. #1429 #1434
Diffstat (limited to 'src/lj_trace.c')
| -rw-r--r-- | src/lj_trace.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lj_trace.c b/src/lj_trace.c index 1f3686a3..e55045f4 100644 --- a/src/lj_trace.c +++ b/src/lj_trace.c | |||
| @@ -467,7 +467,11 @@ static void trace_start(jit_State *J) | |||
| 467 | J->ktrace = 0; | 467 | J->ktrace = 0; |
| 468 | setgcref(J->cur.startpt, obj2gco(J->pt)); | 468 | setgcref(J->cur.startpt, obj2gco(J->pt)); |
| 469 | 469 | ||
| 470 | lj_vmevent_send(J2G(J), TRACE, | 470 | lj_vmevent_send_(J2G(J), TRACE, |
| 471 | TValue savetv = J2G(J)->tmptv; | ||
| 472 | TValue savetv2 = J2G(J)->tmptv2; | ||
| 473 | TraceNo parent = J->parent; | ||
| 474 | ExitNo exitno = J->exitno; | ||
| 471 | setstrV(V, V->top++, lj_str_newlit(V, "start")); | 475 | setstrV(V, V->top++, lj_str_newlit(V, "start")); |
| 472 | setintV(V->top++, traceno); | 476 | setintV(V->top++, traceno); |
| 473 | setfuncV(V, V->top++, J->fn); | 477 | setfuncV(V, V->top++, J->fn); |
| @@ -482,6 +486,11 @@ static void trace_start(jit_State *J) | |||
| 482 | setintV(V->top++, -1); | 486 | setintV(V->top++, -1); |
| 483 | } | 487 | } |
| 484 | } | 488 | } |
| 489 | , | ||
| 490 | J2G(J)->tmptv = savetv; | ||
| 491 | J2G(J)->tmptv2 = savetv2; | ||
| 492 | J->parent = parent; | ||
| 493 | J->exitno = exitno; | ||
| 485 | ); | 494 | ); |
| 486 | lj_record_setup(J); | 495 | lj_record_setup(J); |
| 487 | } | 496 | } |
