From 3767a9aec17756638ece87c618e1ba97dc2429ce Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sat, 27 Apr 2019 17:05:36 +0300 Subject: [PATCH] - fixed missing null checks in JIT generated code https://forum.zdoom.org/viewtopic.php?t=64307 --- src/scripting/vm/jit_store.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/scripting/vm/jit_store.cpp b/src/scripting/vm/jit_store.cpp index c1d739f0f..6dc1a45a9 100644 --- a/src/scripting/vm/jit_store.cpp +++ b/src/scripting/vm/jit_store.cpp @@ -89,6 +89,7 @@ void JitCompiler::EmitSS_R() void JitCompiler::EmitSO() { + EmitNullPointerThrow(A, X_WRITE_NIL); cc.mov(asmjit::x86::ptr(regA[A], konstd[C]), regA[B]); typedef void(*FuncPtr)(DObject*); @@ -98,6 +99,7 @@ void JitCompiler::EmitSO() void JitCompiler::EmitSO_R() { + EmitNullPointerThrow(A, X_WRITE_NIL); cc.mov(asmjit::x86::ptr(regA[A], regD[C]), regA[B]); typedef void(*FuncPtr)(DObject*); @@ -107,11 +109,13 @@ void JitCompiler::EmitSO_R() void JitCompiler::EmitSP() { + EmitNullPointerThrow(A, X_WRITE_NIL); cc.mov(asmjit::x86::ptr(regA[A], konstd[C]), regA[B]); } void JitCompiler::EmitSP_R() { + EmitNullPointerThrow(A, X_WRITE_NIL); cc.mov(asmjit::x86::ptr(regA[A], regD[C]), regA[B]); }