mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-09-09 19:28:52 +00:00
hle: cheats: Prevent NullRef and throw a TamperCompilationException instead
for null base instruction byte arrays on the current block in EndConditionalBlock
This commit is contained in:
@@ -50,7 +50,7 @@ namespace Ryujinx.HLE.HOS.Tamper
|
||||
Logger.Error?.Print(LogClass.TamperMachine, ex.ToString());
|
||||
}
|
||||
|
||||
Logger.Error?.Print(LogClass.TamperMachine, "There was a problem while compiling the Atmosphere cheat");
|
||||
Logger.Error?.Print(LogClass.TamperMachine, $"There was a problem while compiling the Atmosphere cheat '{name}'");
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -126,7 +126,7 @@ namespace Ryujinx.HLE.HOS.Tamper
|
||||
DebugLog.Emit(instruction, context);
|
||||
break;
|
||||
default:
|
||||
throw new TamperCompilationException($"Code type {codeType} not implemented in Atmosphere cheat");
|
||||
throw new TamperCompilationException($"Code type {codeType} not implemented in Atmosphere cheat compiler");
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -40,7 +40,8 @@ namespace Ryujinx.HLE.HOS.Tamper.CodeEmitters
|
||||
}
|
||||
|
||||
// Use the conditional begin instruction stored in the stack.
|
||||
byte[] upperInstruction = context.CurrentBlock.BaseInstruction;
|
||||
byte[] upperInstruction = context.CurrentBlock.BaseInstruction
|
||||
?? throw new TamperCompilationException($"Base instruction in current block was null; termination type '{terminationType}'");
|
||||
CodeType codeType = InstructionHelper.GetCodeType(upperInstruction);
|
||||
|
||||
// Pop the current block of operations from the stack so control instructions
|
||||
|
Reference in New Issue
Block a user