diff --git a/Core/HLE/sceKernel.h b/Core/HLE/sceKernel.h index ec684b99f6..722f89d37d 100644 --- a/Core/HLE/sceKernel.h +++ b/Core/HLE/sceKernel.h @@ -444,10 +444,10 @@ public: u32 Destroy(SceUID handle) { u32 error; if (Get(handle, error)) { - occupied[handle-handleOffset] = false; - delete pool[handle-handleOffset]; - // Why weren't we zeroing before? - pool[handle-handleOffset] = nullptr; + int index = handle - handleOffset; + occupied[index] = false; + delete pool[index]; + pool[index] = nullptr; } return error; }; diff --git a/Core/MIPS/JitCommon/JitCommon.cpp b/Core/MIPS/JitCommon/JitCommon.cpp index 99566bf631..20a8fb6e74 100644 --- a/Core/MIPS/JitCommon/JitCommon.cpp +++ b/Core/MIPS/JitCommon/JitCommon.cpp @@ -54,6 +54,8 @@ namespace MIPSComp { std::recursive_mutex jitLock; void JitAt() { + // TODO: We could probably check for a bad pc here, and fire an exception. Could spare us from some crashes. + // Although, we just tried to load from this address to check for a JIT block, and if we're here, that succeeded.. jit->Compile(currentMIPS->pc); }