diff options
| -rw-r--r-- | src/lj_err.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_err.c b/src/lj_err.c index 283c3d18..a497ab11 100644 --- a/src/lj_err.c +++ b/src/lj_err.c | |||
| @@ -329,12 +329,12 @@ static void err_unwind_win_jit(global_State *g, int errcode) | |||
| 329 | memset(&hist, 0, sizeof(hist)); | 329 | memset(&hist, 0, sizeof(hist)); |
| 330 | RtlCaptureContext(&ctx); | 330 | RtlCaptureContext(&ctx); |
| 331 | while (1) { | 331 | while (1) { |
| 332 | uintptr_t frame, base, addr = ctx.CONTEXT_REG_PC; | 332 | DWORD64 frame, base, addr = ctx.CONTEXT_REG_PC; |
| 333 | void *hdata; | 333 | void *hdata; |
| 334 | PRUNTIME_FUNCTION func = RtlLookupFunctionEntry(addr, &base, &hist); | 334 | PRUNTIME_FUNCTION func = RtlLookupFunctionEntry(addr, &base, &hist); |
| 335 | if (!func) { /* Found frame without .pdata: must be JIT-compiled code. */ | 335 | if (!func) { /* Found frame without .pdata: must be JIT-compiled code. */ |
| 336 | ExitNo exitno; | 336 | ExitNo exitno; |
| 337 | uintptr_t stub = lj_trace_unwind(G2J(g), addr - sizeof(MCode), &exitno); | 337 | uintptr_t stub = lj_trace_unwind(G2J(g), (uintptr_t)(addr - sizeof(MCode)), &exitno); |
| 338 | if (stub) { /* Jump to side exit to unwind the trace. */ | 338 | if (stub) { /* Jump to side exit to unwind the trace. */ |
| 339 | ctx.CONTEXT_REG_PC = stub; | 339 | ctx.CONTEXT_REG_PC = stub; |
| 340 | G2J(g)->exitcode = errcode; | 340 | G2J(g)->exitcode = errcode; |
