diff options
author | Shauren <shauren.trinity@gmail.com> | 2012-08-26 21:24:15 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2012-08-26 21:24:15 +0200 |
commit | 43cbb1e10589bed2dadea85caac88e8193bcb7a5 (patch) | |
tree | 4b949afbb4256ea5f1b649cf8a2601106ed37113 /src/server/shared/Database/QueryHolder.cpp | |
parent | fcd48335e8efc194d8c731eaf7fe39d7166dce52 (diff) |
Core/DBLayer: Fixed memory leaks when query returned empty result set
Diffstat (limited to 'src/server/shared/Database/QueryHolder.cpp')
-rwxr-xr-x | src/server/shared/Database/QueryHolder.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
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; |