aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Database/PreparedStatement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/shared/Database/PreparedStatement.cpp')
-rw-r--r--src/server/shared/Database/PreparedStatement.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/server/shared/Database/PreparedStatement.cpp b/src/server/shared/Database/PreparedStatement.cpp
index 4b2b55f25e5..fb1bfa687d0 100644
--- a/src/server/shared/Database/PreparedStatement.cpp
+++ b/src/server/shared/Database/PreparedStatement.cpp
@@ -445,19 +445,19 @@ std::string MySQLPreparedStatement::getQueryString(std::string const& sqlPattern
}
//- Execution
-PreparedStatementTask::PreparedStatementTask(PreparedStatement* stmt) :
-m_stmt(stmt),
-m_has_result(false) { }
-
-PreparedStatementTask::PreparedStatementTask(PreparedStatement* stmt, PreparedQueryResultPromise& result) :
-m_stmt(stmt),
-m_has_result(true),
-m_result(std::move(result)) { }
-
+PreparedStatementTask::PreparedStatementTask(PreparedStatement* stmt, bool async) :
+m_stmt(stmt)
+{
+ m_has_result = async; // If it's async, then there's a result
+ if (async)
+ m_result = new PreparedQueryResultPromise();
+}
PreparedStatementTask::~PreparedStatementTask()
{
delete m_stmt;
+ if (m_has_result && m_result != nullptr)
+ delete m_result;
}
bool PreparedStatementTask::Execute()
@@ -468,10 +468,10 @@ bool PreparedStatementTask::Execute()
if (!result || !result->GetRowCount())
{
delete result;
- m_result.set_value(PreparedQueryResult(NULL));
+ m_result->set_value(PreparedQueryResult(NULL));
return false;
}
- m_result.set_value(PreparedQueryResult(result));
+ m_result->set_value(PreparedQueryResult(result));
return true;
}