aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Database/QueryHolder.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-08-26 21:24:15 +0200
committerShauren <shauren.trinity@gmail.com>2012-08-26 21:24:15 +0200
commit43cbb1e10589bed2dadea85caac88e8193bcb7a5 (patch)
tree4b949afbb4256ea5f1b649cf8a2601106ed37113 /src/server/shared/Database/QueryHolder.cpp
parentfcd48335e8efc194d8c731eaf7fe39d7166dce52 (diff)
Core/DBLayer: Fixed memory leaks when query returned empty result set
Diffstat (limited to 'src/server/shared/Database/QueryHolder.cpp')
-rwxr-xr-xsrc/server/shared/Database/QueryHolder.cpp12
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;