refactor(Core/Misc): string handling and use smart pointer for strand (#22351)

This commit is contained in:
Francesco Borzì
2025-07-19 11:36:40 +02:00
committed by GitHub
parent cbd8596184
commit c6a53849c7
3 changed files with 12 additions and 8 deletions
+3 -4
View File
@@ -29,6 +29,7 @@
#include "Timer.h" #include "Timer.h"
#include "Tokenize.h" #include "Tokenize.h"
#include <chrono> #include <chrono>
#include <memory>
Log::Log() : AppenderId(0), highestLogLevel(LOG_LEVEL_FATAL) Log::Log() : AppenderId(0), highestLogLevel(LOG_LEVEL_FATAL)
{ {
@@ -39,7 +40,6 @@ Log::Log() : AppenderId(0), highestLogLevel(LOG_LEVEL_FATAL)
Log::~Log() Log::~Log()
{ {
delete _strand;
Close(); Close();
} }
@@ -369,7 +369,7 @@ void Log::Initialize(Acore::Asio::IoContext* ioContext)
if (ioContext) if (ioContext)
{ {
_ioContext = ioContext; _ioContext = ioContext;
_strand = new Acore::Asio::Strand(*ioContext); _strand = std::make_unique<Acore::Asio::Strand>(*ioContext);
} }
LoadFromConfig(); LoadFromConfig();
@@ -377,8 +377,7 @@ void Log::Initialize(Acore::Asio::IoContext* ioContext)
void Log::SetSynchronous() void Log::SetSynchronous()
{ {
delete _strand; _strand.reset();
_strand = nullptr;
_ioContext = nullptr; _ioContext = nullptr;
} }
+2 -1
View File
@@ -24,6 +24,7 @@
#include "StringFormat.h" #include "StringFormat.h"
#include <unordered_map> #include <unordered_map>
#include <vector> #include <vector>
#include <memory>
class Appender; class Appender;
class Logger; class Logger;
@@ -120,7 +121,7 @@ private:
std::string m_logsTimestamp; std::string m_logsTimestamp;
Acore::Asio::IoContext* _ioContext; Acore::Asio::IoContext* _ioContext;
Acore::Asio::Strand* _strand; std::unique_ptr<Acore::Asio::Strand> _strand;
}; };
#define sLog Log::instance() #define sLog Log::instance()
+7 -3
View File
@@ -23,6 +23,7 @@
#include <filesystem> #include <filesystem>
#include <set> #include <set>
#include <unordered_map> #include <unordered_map>
#include <cstring>
#ifdef _WIN32 #ifdef _WIN32
#include "direct.h" #include "direct.h"
@@ -184,7 +185,8 @@ void HandleArgs(int argc, char* arg[])
case 'i': case 'i':
if (c + 1 < argc) // all ok if (c + 1 < argc) // all ok
{ {
strcpy(input_path, arg[(c++) + 1]); std::strncpy(input_path, arg[(c++) + 1], MAX_PATH_LENGTH - 1);
input_path[MAX_PATH_LENGTH - 1] = '\0';
} }
else else
{ {
@@ -194,7 +196,8 @@ void HandleArgs(int argc, char* arg[])
case 'o': case 'o':
if (c + 1 < argc) // all ok if (c + 1 < argc) // all ok
{ {
strcpy(output_path, arg[(c++) + 1]); std::strncpy(output_path, arg[(c++) + 1], MAX_PATH_LENGTH - 1);
output_path[MAX_PATH_LENGTH - 1] = '\0';
} }
else else
{ {
@@ -282,7 +285,8 @@ uint32 ReadMapDBC()
for (uint32 x = 0; x < map_count; ++x) for (uint32 x = 0; x < map_count; ++x)
{ {
map_ids[x].id = dbc.getRecord(x).getUInt(0); map_ids[x].id = dbc.getRecord(x).getUInt(0);
strcpy(map_ids[x].name, dbc.getRecord(x).getString(1)); std::strncpy(map_ids[x].name, dbc.getRecord(x).getString(1), sizeof(map_ids[x].name) - 1);
map_ids[x].name[sizeof(map_ids[x].name) - 1] = '\0';
} }
printf("Done! (%u maps loaded)\n", (uint32)map_count); printf("Done! (%u maps loaded)\n", (uint32)map_count);
return map_count; return map_count;