From 43cbb1e10589bed2dadea85caac88e8193bcb7a5 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 26 Aug 2012 21:24:15 +0200 Subject: Core/DBLayer: Fixed memory leaks when query returned empty result set --- src/server/shared/Database/QueryHolder.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/server/shared/Database/QueryHolder.cpp') 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; -- cgit v1.2.3