From d9cb0702158fd045285f2c0a904cb31a45a3864a Mon Sep 17 00:00:00 2001 From: Anubisss Date: Sat, 23 Jan 2010 14:45:58 +0100 Subject: Implement QueryResult_AutoPtr type which is ACE's reference counted auto_ptr(ACE_Refcounted_Auto_Ptr) for QueryResult pointers. Use this auto_ptr for every DB queries(except QueryNamedResult yet). This patch guarantees NO memory leaks from QueryResult pointers. Thanks to raczman for the idea and for the helping to make this patch. --HG-- branch : trunk --- src/shared/Database/SqlOperations.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/shared/Database/SqlOperations.h') diff --git a/src/shared/Database/SqlOperations.h b/src/shared/Database/SqlOperations.h index acaffb29c70..18641c743e1 100644 --- a/src/shared/Database/SqlOperations.h +++ b/src/shared/Database/SqlOperations.h @@ -27,6 +27,7 @@ #include "LockedQueue.h" #include #include "Utilities/Callback.h" +#include "QueryResult.h" /// ---- BASE --- @@ -95,7 +96,7 @@ class SqlQueryHolder { friend class SqlQueryHolderEx; private: - typedef std::pair SqlResultPair; + typedef std::pair SqlResultPair; std::vector m_queries; public: SqlQueryHolder() {} @@ -103,8 +104,8 @@ class SqlQueryHolder bool SetQuery(size_t index, const char *sql); bool SetPQuery(size_t index, const char *format, ...) ATTR_PRINTF(3,4); void SetSize(size_t size); - QueryResult* GetResult(size_t index); - void SetResult(size_t index, QueryResult *result); + QueryResult_AutoPtr GetResult(size_t index); + void SetResult(size_t index, QueryResult_AutoPtr result); bool Execute(Trinity::IQueryCallback * callback, SqlDelayThread *thread, SqlResultQueue *queue); }; -- cgit v1.2.3