Core/DBLayer: Fixed an incredibly rare memory leak happening when player started loading from database and never finished

This commit is contained in:
Shauren
2014-08-16 01:43:42 +02:00
parent 5c60976046
commit 7cb72c2aac
2 changed files with 13 additions and 3 deletions

View File

@@ -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;

View File

@@ -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