diff --git a/Core/HLE/ReplaceTables.cpp b/Core/HLE/ReplaceTables.cpp index 30afa6e26b..f71b8b945c 100644 --- a/Core/HLE/ReplaceTables.cpp +++ b/Core/HLE/ReplaceTables.cpp @@ -1590,7 +1590,10 @@ std::vector GetReplacementFuncIndexes(u64 hash, int funcSize) { return emptyResult; } -const ReplacementTableEntry *GetReplacementFunc(int i) { +const ReplacementTableEntry *GetReplacementFunc(size_t i) { + if (i >= ARRAY_SIZE(entries)) { + return nullptr; + } return &entries[i]; } diff --git a/Core/HLE/ReplaceTables.h b/Core/HLE/ReplaceTables.h index 94ee26d69e..980f506b6a 100644 --- a/Core/HLE/ReplaceTables.h +++ b/Core/HLE/ReplaceTables.h @@ -64,7 +64,7 @@ void Replacement_Shutdown(); int GetNumReplacementFuncs(); std::vector GetReplacementFuncIndexes(u64 hash, int funcSize); -const ReplacementTableEntry *GetReplacementFunc(int index); +const ReplacementTableEntry *GetReplacementFunc(size_t index); void WriteReplaceInstructions(u32 address, u64 hash, int size); void RestoreReplacedInstruction(u32 address); diff --git a/Core/MIPS/ARM64/Arm64Jit.cpp b/Core/MIPS/ARM64/Arm64Jit.cpp index d1f1062f1e..c412a2a34b 100644 --- a/Core/MIPS/ARM64/Arm64Jit.cpp +++ b/Core/MIPS/ARM64/Arm64Jit.cpp @@ -563,6 +563,7 @@ void Arm64Jit::Comp_ReplacementFunc(MIPSOpcode op) const ReplacementTableEntry *entry = GetReplacementFunc(index); if (!entry) { ERROR_LOG(HLE, "Invalid replacement op %08x", op.encoding); + // TODO: What should we do here? We're way off in the weeds probably. return; }