mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
Fixed a few memory leaks. Made Init and Shutdown functions for some core systems.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5064 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -139,6 +139,7 @@ char ** cdio_get_devices_win32() {
|
||||
const char *drive_str=is_cdrom_win32(drive_letter);
|
||||
if (drive_str != NULL) {
|
||||
cdio_add_device_list(&drives, drive_str, &num_drives);
|
||||
delete drive_str;
|
||||
}
|
||||
}
|
||||
cdio_add_device_list(&drives, NULL, &num_drives);
|
||||
|
@ -26,7 +26,8 @@ void GenericLog(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type,
|
||||
{
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
LogManager::GetInstance()->Log(level, type, file, line, fmt, args);
|
||||
if (LogManager::GetInstance())
|
||||
LogManager::GetInstance()->Log(level, type, file, line, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
@ -91,11 +92,14 @@ LogManager::LogManager() {
|
||||
}
|
||||
|
||||
LogManager::~LogManager() {
|
||||
delete [] &m_Log; // iffy :P
|
||||
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) {
|
||||
m_logManager->removeListener((LogTypes::LOG_TYPE)i, m_fileLog);
|
||||
m_logManager->removeListener((LogTypes::LOG_TYPE)i, m_consoleLog);
|
||||
}
|
||||
|
||||
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
|
||||
delete m_Log[i];
|
||||
|
||||
delete m_fileLog;
|
||||
delete m_consoleLog;
|
||||
delete logMutex;
|
||||
@ -131,6 +135,17 @@ void LogManager::removeListener(LogTypes::LOG_TYPE type, LogListener *listener)
|
||||
logMutex->Leave();
|
||||
}
|
||||
|
||||
void LogManager::Init()
|
||||
{
|
||||
m_logManager = new LogManager();
|
||||
}
|
||||
|
||||
void LogManager::Shutdown()
|
||||
{
|
||||
delete m_logManager;
|
||||
m_logManager = NULL;
|
||||
}
|
||||
|
||||
LogContainer::LogContainer(const char* shortName, const char* fullName, bool enable)
|
||||
: m_enable(enable) {
|
||||
strncpy(m_fullName, fullName, 128);
|
||||
@ -183,7 +198,8 @@ void FileLogListener::Reload() {
|
||||
|
||||
FileLogListener::~FileLogListener() {
|
||||
free(m_filename);
|
||||
fclose(m_logfile);
|
||||
if (m_logfile)
|
||||
fclose(m_logfile);
|
||||
}
|
||||
|
||||
void FileLogListener::Log(LogTypes::LOG_LEVELS, const char *msg) {
|
||||
|
@ -165,14 +165,15 @@ public:
|
||||
}
|
||||
|
||||
static LogManager* GetInstance() {
|
||||
if (! m_logManager)
|
||||
m_logManager = new LogManager();
|
||||
return m_logManager;
|
||||
}
|
||||
|
||||
static void SetInstance(LogManager *logManager) {
|
||||
m_logManager = logManager;
|
||||
}
|
||||
|
||||
static void Init();
|
||||
static void Shutdown();
|
||||
};
|
||||
|
||||
#endif // _LOGMANAGER_H_
|
||||
|
Reference in New Issue
Block a user