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; |