From 7d44ea1ac8aa4df7a6c23b081cd13d8ea51939b5 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Sun, 30 Jun 2013 09:43:19 -0700 Subject: [PATCH] Always add symbols, so we don't leave any behind. --- Core/HLE/sceKernelModule.cpp | 34 +++++++++------------------------- 1 file changed, 9 insertions(+), 25 deletions(-) diff --git a/Core/HLE/sceKernelModule.cpp b/Core/HLE/sceKernelModule.cpp index fff0b8f16d..6f500e9aad 100644 --- a/Core/HLE/sceKernelModule.cpp +++ b/Core/HLE/sceKernelModule.cpp @@ -541,33 +541,19 @@ Module *__KernelLoadELFFromPtr(const u8 *ptr, u32 loadAddress, std::string *erro } } - bool hasSymbols = false; - bool dontadd = false; - SectionID textSection = reader.GetSectionByName(".text"); if (textSection != -1) { u32 textStart = reader.GetSectionAddr(textSection); u32 textSize = reader.GetSectionSize(textSection); - if (!host->AttemptLoadSymbolMap()) - { - hasSymbols = reader.LoadSymbols(); - if (!hasSymbols) - { - symbolMap.ResetSymbolMap(); - MIPSAnalyst::ScanForFunctions(textStart, textStart+textSize); - } - } - else - { - dontadd = true; - } - } - else if (host->AttemptLoadSymbolMap()) - { - dontadd = true; + host->AttemptLoadSymbolMap(); + + if (!reader.LoadSymbols()) + MIPSAnalyst::ScanForFunctions(textStart, textStart+textSize); } + else + host->AttemptLoadSymbolMap(); INFO_LOG(LOADER,"Module %s: %08x %08x %08x", modinfo->name, modinfo->gp, modinfo->libent,modinfo->libstub); @@ -643,11 +629,9 @@ Module *__KernelLoadELFFromPtr(const u8 *ptr, u32 loadAddress, std::string *erro WARN_LOG_REPORT(LOADER, "Invalid address for syscall stub %s %08x", modulename, nidDataPtr[i]); } - if (!dontadd) { - char temp[256]; - sprintf(temp,"zz_%s", GetFuncName(modulename, nidDataPtr[i])); - symbolMap.AddSymbol(temp, addrToWriteSyscall, 8, ST_FUNCTION); - } + char temp[256]; + sprintf(temp,"zz_%s", GetFuncName(modulename, nidDataPtr[i])); + symbolMap.AddSymbol(temp, addrToWriteSyscall, 8, ST_FUNCTION); } } else if (entry->numFuncs > 0) { WARN_LOG_REPORT(LOADER, "Module entry with %d imports but no valid address", entry->numFuncs);