From ebd14b4f01cc64a2a488bdbb1046897cc4da8e9a Mon Sep 17 00:00:00 2001 From: Spp Date: Wed, 2 Jan 2013 12:22:50 +0100 Subject: Core/Mysql: Multiple changes - added support for setting NULL column values to MySQL wrapper in core - replaced nonstandard strdup function and manual memory management with std::string - fixed bug in MySQLPreparedStatement::getQueryString method, it failed when string parameter contained embedded '?' symbols - fixed memory leak in MySQLPreparedStatement::setString method --- src/server/shared/Database/MySQLConnection.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'src/server/shared/Database/MySQLConnection.cpp') diff --git a/src/server/shared/Database/MySQLConnection.cpp b/src/server/shared/Database/MySQLConnection.cpp index acf0d96684c..10ff16b5ddd 100644 --- a/src/server/shared/Database/MySQLConnection.cpp +++ b/src/server/shared/Database/MySQLConnection.cpp @@ -63,9 +63,6 @@ MySQLConnection::~MySQLConnection() for (size_t i = 0; i < m_stmts.size(); ++i) delete m_stmts[i]; - for (PreparedStatementMap::const_iterator itr = m_queries.begin(); itr != m_queries.end(); ++itr) - free((void *)m_queries[itr->first].first); - mysql_close(m_Mysql); } @@ -150,8 +147,6 @@ bool MySQLConnection::Open() bool MySQLConnection::PrepareStatements() { DoPrepareStatements(); - for (PreparedStatementMap::const_iterator itr = m_queries.begin(); itr != m_queries.end(); ++itr) - PrepareStatement(itr->first, itr->second.first, itr->second.second); return !m_prepareError; } @@ -424,6 +419,8 @@ MySQLPreparedStatement* MySQLConnection::GetPreparedStatement(uint32 index) void MySQLConnection::PrepareStatement(uint32 index, const char* sql, ConnectionFlags flags) { + m_queries.insert(PreparedStatementMap::value_type(index, std::make_pair(sql, flags))); + // For reconnection case if (m_reconnecting) delete m_stmts[index]; -- cgit v1.2.3