mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-05 06:26:49 +00:00
Fix vm::range_lock, imporve vm::check_addr
This commit is contained in:
parent
6e27ab60ca
commit
fefab50e06
17 changed files with 95 additions and 68 deletions
|
|
@ -325,7 +325,7 @@ std::vector<u32> cheat_engine::search(const T value, const std::vector<u32>& to_
|
|||
{
|
||||
for (const auto& off : to_filter)
|
||||
{
|
||||
if (vm::check_addr(off, sizeof(T)))
|
||||
if (vm::check_addr<sizeof(T)>(off))
|
||||
{
|
||||
if (*vm::get_super_ptr<T>(off) == value_swapped)
|
||||
results.push_back(off);
|
||||
|
|
@ -364,7 +364,7 @@ T cheat_engine::get_value(const u32 offset, bool& success)
|
|||
|
||||
return cpu_thread::suspend_all(nullptr, {}, [&]() -> T
|
||||
{
|
||||
if (!vm::check_addr(offset, sizeof(T)))
|
||||
if (!vm::check_addr<sizeof(T)>(offset))
|
||||
{
|
||||
success = false;
|
||||
return 0;
|
||||
|
|
@ -381,21 +381,21 @@ bool cheat_engine::set_value(const u32 offset, const T value)
|
|||
if (Emu.IsStopped())
|
||||
return false;
|
||||
|
||||
if (!vm::check_addr(offset, sizeof(T)))
|
||||
if (!vm::check_addr<sizeof(T)>(offset))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return cpu_thread::suspend_all(nullptr, {}, [&]
|
||||
{
|
||||
if (!vm::check_addr(offset, sizeof(T)))
|
||||
if (!vm::check_addr<sizeof(T)>(offset))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
*vm::get_super_ptr<T>(offset) = value;
|
||||
|
||||
const bool exec_code_at_start = vm::check_addr(offset, 1, vm::page_executable);
|
||||
const bool exec_code_at_start = vm::check_addr(offset, vm::page_executable);
|
||||
const bool exec_code_at_end = [&]()
|
||||
{
|
||||
if constexpr (sizeof(T) == 1)
|
||||
|
|
@ -404,7 +404,7 @@ bool cheat_engine::set_value(const u32 offset, const T value)
|
|||
}
|
||||
else
|
||||
{
|
||||
return vm::check_addr(offset + sizeof(T) - 1, 1, vm::page_executable);
|
||||
return vm::check_addr(offset + sizeof(T) - 1, vm::page_executable);
|
||||
}
|
||||
}();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue