diff --git a/rpcs3/Emu/Cell/PPUAnalyser.h b/rpcs3/Emu/Cell/PPUAnalyser.h index f9fd58be5f..229f89455e 100644 --- a/rpcs3/Emu/Cell/PPUAnalyser.h +++ b/rpcs3/Emu/Cell/PPUAnalyser.h @@ -63,6 +63,16 @@ struct ppu_module std::vector secs; std::vector funcs; + // Copy info without functions + void copy_part(const ppu_module& info) + { + name = info.name; + path = info.path; + relocs = info.relocs; + segs = info.segs; + secs = info.secs; + } + void analyse(u32 lib_toc, u32 entry); void validate(u32 reloc); }; diff --git a/rpcs3/Emu/Cell/PPUThread.cpp b/rpcs3/Emu/Cell/PPUThread.cpp index 7cb5159d0f..9a74ab65f3 100644 --- a/rpcs3/Emu/Cell/PPUThread.cpp +++ b/rpcs3/Emu/Cell/PPUThread.cpp @@ -1115,8 +1115,8 @@ extern void ppu_initialize(const ppu_module& info) const auto fstart = fpos; // Copy module information (TODO: optimize) - ppu_module part = info; - part.funcs.clear(); + ppu_module part; + part.copy_part(info); part.funcs.reserve(16000); // Unique suffix for each module part