mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 10:42:36 +01:00
Fixup for #10779
This commit is contained in:
parent
b40ed5bdb7
commit
ad6a72e369
@ -701,7 +701,7 @@ static usz apply_modification(std::basic_string<u32>& applied, const patch_engin
|
|||||||
|
|
||||||
// Write address of the allocated memory to the code entry
|
// Write address of the allocated memory to the code entry
|
||||||
*vm::get_super_ptr<u32>(resval) = addr;
|
*vm::get_super_ptr<u32>(resval) = addr;
|
||||||
|
|
||||||
// Write branch to return to code
|
// Write branch to return to code
|
||||||
ppu_form_branch_to_code(addr + static_cast<u32>(p.value.long_value) * 4, resval + 4);
|
ppu_form_branch_to_code(addr + static_cast<u32>(p.value.long_value) * 4, resval + 4);
|
||||||
relocate_instructions_at = addr;
|
relocate_instructions_at = addr;
|
||||||
@ -968,18 +968,15 @@ void patch_engine::unload(const std::string& name)
|
|||||||
|
|
||||||
for (const auto& [description, patch] : container.patch_info_map)
|
for (const auto& [description, patch] : container.patch_info_map)
|
||||||
{
|
{
|
||||||
for (const auto& [title, serials] : patch.titles)
|
for (auto& entry : patch.data_list)
|
||||||
{
|
{
|
||||||
for (auto& entry : patch.data_list)
|
// Deallocate used memory
|
||||||
|
if (u32 addr = std::exchange(entry.alloc_addr, 0))
|
||||||
{
|
{
|
||||||
// Deallocate used memory
|
vm::dealloc(addr);
|
||||||
if (u32 addr = std::exchange(entry.alloc_addr, 0))
|
|
||||||
{
|
|
||||||
vm::dealloc(addr);
|
|
||||||
|
|
||||||
auto alloc_map = vm::get(vm::any, addr);
|
auto alloc_map = vm::get(vm::any, addr);
|
||||||
unmap_vm_area(alloc_map);
|
unmap_vm_area(alloc_map);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -608,7 +608,6 @@ static auto ppu_load_exports(ppu_linkage_info* link, u32 exports_start, u32 expo
|
|||||||
if (_sf && (_sf->flags & MFF_FORCED_HLE))
|
if (_sf && (_sf->flags & MFF_FORCED_HLE))
|
||||||
{
|
{
|
||||||
// Inject a branch to the HLE implementation
|
// Inject a branch to the HLE implementation
|
||||||
const u32 _entry = vm::read32(faddr);
|
|
||||||
const u32 target = g_fxo->get<ppu_function_manager>().func_addr(_sf->index) + 4;
|
const u32 target = g_fxo->get<ppu_function_manager>().func_addr(_sf->index) + 4;
|
||||||
|
|
||||||
// Set exported function
|
// Set exported function
|
||||||
|
@ -506,9 +506,10 @@ struct ppu_far_jumps_t
|
|||||||
|
|
||||||
u32 ppu_get_far_jump(u32 pc)
|
u32 ppu_get_far_jump(u32 pc)
|
||||||
{
|
{
|
||||||
|
g_fxo->init<ppu_far_jumps_t>();
|
||||||
return g_fxo->get<const ppu_far_jumps_t>().get_target(pc);
|
return g_fxo->get<const ppu_far_jumps_t>().get_target(pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool ppu_far_jump(ppu_thread& ppu)
|
static bool ppu_far_jump(ppu_thread& ppu)
|
||||||
{
|
{
|
||||||
ppu.cia = g_fxo->get<const ppu_far_jumps_t>().get_target(ppu.cia);
|
ppu.cia = g_fxo->get<const ppu_far_jumps_t>().get_target(ppu.cia);
|
||||||
|
Loading…
Reference in New Issue
Block a user