mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Smash some memory leaks
This commit is contained in:
parent
338a73472b
commit
8277d901e2
3 changed files with 33 additions and 20 deletions
|
@ -71,6 +71,8 @@ LogManager::LogManager()
|
|||
m_debuggerLog = new DebuggerLogListener();
|
||||
#else
|
||||
m_fileLog = NULL;
|
||||
m_consoleLog = NULL;
|
||||
m_debuggerLog = NULL;
|
||||
#endif
|
||||
|
||||
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
|
||||
|
@ -105,6 +107,7 @@ LogManager::~LogManager()
|
|||
delete m_fileLog;
|
||||
#if !defined(ANDROID) && !defined(IOS) && !defined(BLACKBERRY)
|
||||
delete m_consoleLog;
|
||||
delete m_debuggerLog;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -32,20 +32,13 @@ typedef int SectionID;
|
|||
|
||||
class ElfReader
|
||||
{
|
||||
char *base;
|
||||
u32 *base32;
|
||||
Elf32_Ehdr *header;
|
||||
Elf32_Phdr *segments;
|
||||
Elf32_Shdr *sections;
|
||||
u32 *sectionOffsets;
|
||||
u32 *sectionAddrs;
|
||||
bool bRelocate;
|
||||
u32 entryPoint;
|
||||
u32 vaddr;
|
||||
u32 segmentVAddr[32];
|
||||
public:
|
||||
ElfReader(void *ptr)
|
||||
{
|
||||
ElfReader(void *ptr) :
|
||||
sectionOffsets(0),
|
||||
sectionAddrs(0),
|
||||
bRelocate(false),
|
||||
entryPoint(0),
|
||||
vaddr(0) {
|
||||
INFO_LOG(LOADER, "ElfReader: %p", ptr);
|
||||
base = (char*)ptr;
|
||||
base32 = (u32 *)ptr;
|
||||
|
@ -54,13 +47,12 @@ public:
|
|||
sections = (Elf32_Shdr *)(base + header->e_shoff);
|
||||
}
|
||||
|
||||
~ElfReader()
|
||||
{
|
||||
|
||||
~ElfReader() {
|
||||
delete [] sectionOffsets;
|
||||
delete [] sectionAddrs;
|
||||
}
|
||||
|
||||
u32 Read32(int off)
|
||||
{
|
||||
u32 Read32(int off) {
|
||||
return base32[off>>2];
|
||||
}
|
||||
|
||||
|
@ -123,4 +115,18 @@ public:
|
|||
bool LoadInto(u32 vaddr);
|
||||
bool LoadSymbols();
|
||||
void LoadRelocations(Elf32_Rel *rels, int numRelocs);
|
||||
|
||||
|
||||
private:
|
||||
char *base;
|
||||
u32 *base32;
|
||||
Elf32_Ehdr *header;
|
||||
Elf32_Phdr *segments;
|
||||
Elf32_Shdr *sections;
|
||||
u32 *sectionOffsets;
|
||||
u32 *sectionAddrs;
|
||||
bool bRelocate;
|
||||
u32 entryPoint;
|
||||
u32 vaddr;
|
||||
u32 segmentVAddr[32];
|
||||
};
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
MetaFileSystem pspFileSystem;
|
||||
ParamSFOData g_paramSFO;
|
||||
static CoreParameter coreParameter;
|
||||
static PSPMixer *mixer;
|
||||
|
||||
bool PSP_Init(const CoreParameter &coreParam, std::string *error_string)
|
||||
{
|
||||
|
@ -54,7 +55,8 @@ bool PSP_Init(const CoreParameter &coreParam, std::string *error_string)
|
|||
|
||||
if (coreParameter.enableSound)
|
||||
{
|
||||
host->InitSound(new PSPMixer());
|
||||
mixer = new PSPMixer();
|
||||
host->InitSound(mixer);
|
||||
}
|
||||
|
||||
// Init all the HLE modules
|
||||
|
@ -100,10 +102,12 @@ void PSP_Shutdown()
|
|||
if (coreParameter.enableSound)
|
||||
{
|
||||
host->ShutdownSound();
|
||||
delete mixer;
|
||||
mixer = 0;
|
||||
}
|
||||
__KernelShutdown();
|
||||
HLEShutdown();
|
||||
Memory::Shutdown() ;
|
||||
Memory::Shutdown();
|
||||
currentCPU = 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue