diff options
author | Nay <dnpd.dd@gmail.com> | 2012-08-27 00:13:23 +0100 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2012-08-27 00:13:23 +0100 |
commit | 3fd52c4736a61d1bd32b444429db24b2781f2704 (patch) | |
tree | b933d8da569d91317918751c7028d8da0f5d9667 /src/server/shared/Database | |
parent | 974310ffe6a4ea75fa474cb146be6b5cf66c7f9c (diff) | |
parent | 30e41724e43c9669d10771836eebd79743c56518 (diff) |
Merge remote-tracking branch 'origin/master' into 4.3.4
Conflicts:
src/server/game/Handlers/GroupHandler.cpp
Diffstat (limited to 'src/server/shared/Database')
-rwxr-xr-x | src/server/shared/Database/AdhocStatement.cpp | 1 | ||||
-rwxr-xr-x | src/server/shared/Database/DatabaseWorkerPool.h | 6 | ||||
-rwxr-xr-x | src/server/shared/Database/PreparedStatement.cpp | 1 | ||||
-rwxr-xr-x | src/server/shared/Database/QueryHolder.cpp | 12 |
4 files changed, 20 insertions, 0 deletions
diff --git a/src/server/shared/Database/AdhocStatement.cpp b/src/server/shared/Database/AdhocStatement.cpp index 9e795ae853a..95dce77e53c 100755 --- a/src/server/shared/Database/AdhocStatement.cpp +++ b/src/server/shared/Database/AdhocStatement.cpp @@ -44,6 +44,7 @@ bool BasicStatementTask::Execute() ResultSet* result = m_conn->Query(m_sql); if (!result || !result->GetRowCount()) { + delete result; m_result.set(QueryResult(NULL)); return false; } diff --git a/src/server/shared/Database/DatabaseWorkerPool.h b/src/server/shared/Database/DatabaseWorkerPool.h index 9d6fabb9dfa..001e74fc6c6 100755 --- a/src/server/shared/Database/DatabaseWorkerPool.h +++ b/src/server/shared/Database/DatabaseWorkerPool.h @@ -224,7 +224,10 @@ class DatabaseWorkerPool ResultSet* result = conn->Query(sql); conn->Unlock(); if (!result || !result->GetRowCount()) + { + delete result; return QueryResult(NULL); + } result->NextRow(); return QueryResult(result); @@ -275,7 +278,10 @@ class DatabaseWorkerPool delete stmt; if (!ret || !ret->GetRowCount()) + { + delete ret; return PreparedQueryResult(NULL); + } return PreparedQueryResult(ret); } diff --git a/src/server/shared/Database/PreparedStatement.cpp b/src/server/shared/Database/PreparedStatement.cpp index 08b554ff696..76dc7206bd7 100755 --- a/src/server/shared/Database/PreparedStatement.cpp +++ b/src/server/shared/Database/PreparedStatement.cpp @@ -445,6 +445,7 @@ bool PreparedStatementTask::Execute() PreparedResultSet* result = m_conn->Query(m_stmt); if (!result || !result->GetRowCount()) { + delete result; m_result.set(PreparedQueryResult(NULL)); return false; } diff --git a/src/server/shared/Database/QueryHolder.cpp b/src/server/shared/Database/QueryHolder.cpp index 99772c7e323..0908ad410cd 100755 --- a/src/server/shared/Database/QueryHolder.cpp +++ b/src/server/shared/Database/QueryHolder.cpp @@ -116,6 +116,12 @@ PreparedQueryResult SQLQueryHolder::GetPreparedResult(size_t index) void SQLQueryHolder::SetResult(size_t index, ResultSet* result) { + if (result && !result->GetRowCount()) + { + delete result; + result = NULL; + } + /// store the result in the holder if (index < m_queries.size()) m_queries[index].second.qresult = result; @@ -123,6 +129,12 @@ void SQLQueryHolder::SetResult(size_t index, ResultSet* result) void SQLQueryHolder::SetPreparedResult(size_t index, PreparedResultSet* result) { + if (result && !result->GetRowCount()) + { + delete result; + result = NULL; + } + /// store the result in the holder if (index < m_queries.size()) m_queries[index].second.presult = result; |