From 3a9cbd217aa14bd7543722d9f4849f736b7c3264 Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 27 Dec 2023 00:14:12 +0100 Subject: Core/Database: Replace union with std::variant in Transaction --- src/server/database/Database/Transaction.cpp | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) (limited to 'src/server/database/Database/Transaction.cpp') diff --git a/src/server/database/Database/Transaction.cpp b/src/server/database/Database/Transaction.cpp index 00ab5cbc7fa..f1ddb608c6c 100644 --- a/src/server/database/Database/Transaction.cpp +++ b/src/server/database/Database/Transaction.cpp @@ -16,6 +16,7 @@ */ #include "Transaction.h" +#include "Errors.h" #include "Log.h" #include "MySQLConnection.h" #include "PreparedStatement.h" @@ -32,19 +33,15 @@ std::mutex TransactionTask::_deadlockLock; //- Append a raw ad-hoc query to the transaction void TransactionBase::Append(char const* sql) { - SQLElementData data; - data.type = SQL_ELEMENT_RAW; - data.element.query = strdup(sql); - m_queries.push_back(data); + ASSERT(sql); + m_queries.emplace_back(std::in_place_type, sql); } //- Append a prepared statement to the transaction void TransactionBase::AppendPreparedStatement(PreparedStatementBase* stmt) { - SQLElementData data; - data.type = SQL_ELEMENT_PREPARED; - data.element.stmt = stmt; - m_queries.push_back(data); + ASSERT(stmt); + m_queries.emplace_back(std::in_place_type>, stmt); } void TransactionBase::Cleanup() @@ -53,19 +50,6 @@ void TransactionBase::Cleanup() if (_cleanedUp) return; - for (SQLElementData const& data : m_queries) - { - switch (data.type) - { - case SQL_ELEMENT_PREPARED: - delete data.element.stmt; - break; - case SQL_ELEMENT_RAW: - free((void*)(data.element.query)); - break; - } - } - m_queries.clear(); _cleanedUp = true; } -- cgit v1.2.3