Smash some memory leaks

This commit is contained in:
Henrik Rydgard 2013-01-13 16:46:45 +01:00
parent 338a73472b
commit 8277d901e2
3 changed files with 33 additions and 20 deletions

View file

@ -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
}

View file

@ -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];
};

View file

@ -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;
}