mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-22 10:05:32 +01:00
Core/DBLayer: Fixed an incredibly rare memory leak happening when player started loading from database and never finished
This commit is contained in:
@@ -166,8 +166,16 @@ void SQLQueryHolder::SetSize(size_t size)
|
||||
m_queries.resize(size);
|
||||
}
|
||||
|
||||
SQLQueryHolderTask::~SQLQueryHolderTask()
|
||||
{
|
||||
if (!m_executed)
|
||||
delete m_holder;
|
||||
}
|
||||
|
||||
bool SQLQueryHolderTask::Execute()
|
||||
{
|
||||
m_executed = true;
|
||||
|
||||
if (!m_holder)
|
||||
return false;
|
||||
|
||||
|
||||
@@ -47,14 +47,16 @@ class SQLQueryHolderTask : public SQLOperation
|
||||
private:
|
||||
SQLQueryHolder* m_holder;
|
||||
QueryResultHolderPromise m_result;
|
||||
bool m_executed;
|
||||
|
||||
public:
|
||||
SQLQueryHolderTask(SQLQueryHolder* holder)
|
||||
: m_holder(holder) { };
|
||||
: m_holder(holder), m_executed(false) { }
|
||||
|
||||
~SQLQueryHolderTask();
|
||||
|
||||
bool Execute() override;
|
||||
QueryResultHolderFuture GetFuture() { return m_result.get_future(); }
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user