diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2025-05-02 15:24:34 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-02 15:24:34 -0500 |
| commit | 63572f15fc92363307914614ec5ad409570f8f50 (patch) | |
| tree | 3f9635ba30b0802304672ff54ebf2cd9caaa363a /Source/Core/Common/Logging/LogManager.cpp | |
| parent | 6515807685c608ac97ace6e0747b0a2529e9c917 (diff) | |
| parent | c8be8197118899c065d195c168956b8fa0e76d56 (diff) | |
Merge pull request #13620 from JosJuice/logmanager-cleanup
LogManager: Stop using manual memory management
Diffstat (limited to 'Source/Core/Common/Logging/LogManager.cpp')
| -rw-r--r-- | Source/Core/Common/Logging/LogManager.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/Source/Core/Common/Logging/LogManager.cpp b/Source/Core/Common/Logging/LogManager.cpp index 283bd436e0..d0117ad07f 100644 --- a/Source/Core/Common/Logging/LogManager.cpp +++ b/Source/Core/Common/Logging/LogManager.cpp @@ -8,6 +8,7 @@ #include <cstdarg> #include <cstring> #include <locale> +#include <memory> #include <mutex> #include <ostream> #include <string> @@ -151,8 +152,8 @@ LogManager::LogManager() m_log[LogType::WII_IPC] = {"WII_IPC", "WII IPC"}; RegisterListener(LogListener::FILE_LISTENER, - new FileLogListener(File::GetUserPath(F_MAINLOG_IDX))); - RegisterListener(LogListener::CONSOLE_LISTENER, new ConsoleListener()); + std::make_unique<FileLogListener>(File::GetUserPath(F_MAINLOG_IDX))); + RegisterListener(LogListener::CONSOLE_LISTENER, std::make_unique<ConsoleListener>()); // Set up log listeners LogLevel verbosity = Config::Get(LOGGER_VERBOSITY); @@ -171,12 +172,7 @@ LogManager::LogManager() m_path_cutoff_point = DeterminePathCutOffPoint(); } -LogManager::~LogManager() -{ - // The log window listener pointer is owned by the GUI code. - delete m_listeners[LogListener::CONSOLE_LISTENER]; - delete m_listeners[LogListener::FILE_LISTENER]; -} +LogManager::~LogManager() = default; void LogManager::SaveSettings() { @@ -273,9 +269,9 @@ const char* LogManager::GetFullName(LogType type) const return m_log[type].m_full_name; } -void LogManager::RegisterListener(LogListener::LISTENER id, LogListener* listener) +void LogManager::RegisterListener(LogListener::LISTENER id, std::unique_ptr<LogListener> listener) { - m_listeners[id] = listener; + m_listeners[id] = std::move(listener); } void LogManager::EnableListener(LogListener::LISTENER id, bool enable) @@ -289,23 +285,22 @@ bool LogManager::IsListenerEnabled(LogListener::LISTENER id) const } // Singleton. Ugh. -static LogManager* s_log_manager; +static std::unique_ptr<LogManager> s_log_manager; LogManager* LogManager::GetInstance() { - return s_log_manager; + return s_log_manager.get(); } void LogManager::Init() { - s_log_manager = new LogManager(); + s_log_manager = std::unique_ptr<LogManager>(new LogManager()); } void LogManager::Shutdown() { if (s_log_manager) s_log_manager->SaveSettings(); - delete s_log_manager; - s_log_manager = nullptr; + s_log_manager.reset(); } } // namespace Common::Log |
