From a4299c2a4b88d1cbdcea1301a190da6081abf876 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 13 May 2023 15:46:27 +0200 Subject: Core/Misc: Replace string to int conversion functions from Common.h with c++17 std::from_chars based ones Trinity::StringTo (cherry picked from commit 3260b94dd627b7b0c7114f94bb97d108b005af3e) --- src/server/database/Database/Field.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'src/server/database/Database/Field.cpp') diff --git a/src/server/database/Database/Field.cpp b/src/server/database/Database/Field.cpp index 3713d2855d4..cdcb32c6508 100644 --- a/src/server/database/Database/Field.cpp +++ b/src/server/database/Database/Field.cpp @@ -18,7 +18,8 @@ #include "Field.h" #include "Errors.h" #include "Log.h" -#include "MySQLHacks.h" +#include "StringConvert.h" +#include Field::Field() { @@ -45,7 +46,7 @@ uint8 Field::GetUInt8() const if (data.raw) return *reinterpret_cast(data.value); - return static_cast(strtoul(data.value, nullptr, 10)); + return Trinity::StringTo(data.value, 10).value_or(0); } int8 Field::GetInt8() const @@ -63,7 +64,7 @@ int8 Field::GetInt8() const if (data.raw) return *reinterpret_cast(data.value); - return static_cast(strtol(data.value, nullptr, 10)); + return Trinity::StringTo(data.value, 10).value_or(0); } uint16 Field::GetUInt16() const @@ -81,7 +82,7 @@ uint16 Field::GetUInt16() const if (data.raw) return *reinterpret_cast(data.value); - return static_cast(strtoul(data.value, nullptr, 10)); + return Trinity::StringTo(data.value, 10).value_or(0); } int16 Field::GetInt16() const @@ -99,7 +100,7 @@ int16 Field::GetInt16() const if (data.raw) return *reinterpret_cast(data.value); - return static_cast(strtol(data.value, nullptr, 10)); + return Trinity::StringTo(data.value, 10).value_or(0); } uint32 Field::GetUInt32() const @@ -117,7 +118,7 @@ uint32 Field::GetUInt32() const if (data.raw) return *reinterpret_cast(data.value); - return static_cast(strtoul(data.value, nullptr, 10)); + return Trinity::StringTo(data.value, 10).value_or(0); } int32 Field::GetInt32() const @@ -135,7 +136,7 @@ int32 Field::GetInt32() const if (data.raw) return *reinterpret_cast(data.value); - return static_cast(strtol(data.value, nullptr, 10)); + return Trinity::StringTo(data.value, 10).value_or(0); } uint64 Field::GetUInt64() const @@ -153,7 +154,7 @@ uint64 Field::GetUInt64() const if (data.raw) return *reinterpret_cast(data.value); - return static_cast(strtoull(data.value, nullptr, 10)); + return Trinity::StringTo(data.value, 10).value_or(0); } int64 Field::GetInt64() const @@ -171,7 +172,7 @@ int64 Field::GetInt64() const if (data.raw) return *reinterpret_cast(data.value); - return static_cast(strtoll(data.value, nullptr, 10)); + return Trinity::StringTo(data.value, 10).value_or(0); } float Field::GetFloat() const @@ -189,25 +190,25 @@ float Field::GetFloat() const if (data.raw) return *reinterpret_cast(data.value); - return static_cast(atof(data.value)); + return Trinity::StringTo(data.value, 10).value_or(0); } double Field::GetDouble() const { if (!data.value) - return 0.0f; + return 0.0; #ifdef TRINITY_STRICT_DATABASE_TYPE_CHECKS if (!IsType(DatabaseFieldTypes::Double) && !IsType(DatabaseFieldTypes::Decimal)) { LogWrongType(__FUNCTION__); - return 0.0f; + return 0.0; } #endif if (data.raw && !IsType(DatabaseFieldTypes::Decimal)) return *reinterpret_cast(data.value); - return static_cast(atof(data.value)); + return Trinity::StringTo(data.value, 10).value_or(0); } char const* Field::GetCString() const -- cgit v1.2.3