aboutsummaryrefslogtreecommitdiff
path: root/src/game/QueryHandler.cpp
diff options
context:
space:
mode:
authorAnubisss <none@none>2010-01-23 14:45:58 +0100
committerAnubisss <none@none>2010-01-23 14:45:58 +0100
commitd9cb0702158fd045285f2c0a904cb31a45a3864a (patch)
treecdc6a7c6a83c6eea603ae296a653fb9f04945aad /src/game/QueryHandler.cpp
parentc784110d87666579f18620a98e1e57118db4a9cf (diff)
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
Diffstat (limited to 'src/game/QueryHandler.cpp')
-rw-r--r--src/game/QueryHandler.cpp6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp
index c0a9cfd8f87..af2ffbb7272 100644
--- a/src/game/QueryHandler.cpp
+++ b/src/game/QueryHandler.cpp
@@ -77,17 +77,14 @@ void WorldSession::SendNameQueryOpcodeFromDB(uint64 guid)
GUID_LOPART(guid));
}
-void WorldSession::SendNameQueryOpcodeFromDBCallBack(QueryResult *result, uint32 accountId)
+void WorldSession::SendNameQueryOpcodeFromDBCallBack(QueryResult_AutoPtr result, uint32 accountId)
{
if(!result)
return;
WorldSession * session = sWorld.FindSession(accountId);
if(!session)
- {
- delete result;
return;
- }
Field *fields = result->Fetch();
uint32 guid = fields[0].GetUInt32();
@@ -122,7 +119,6 @@ void WorldSession::SendNameQueryOpcodeFromDBCallBack(QueryResult *result, uint32
data << uint8(0); // is not declined
session->SendPacket( &data );
- delete result;
}
void WorldSession::HandleNameQueryOpcode( WorldPacket & recv_data )