Index: src/shared/Database/SqlOperations.cpp =================================================================== --- src/shared/Database/SqlOperations.cpp (revision 4093) +++ src/shared/Database/SqlOperations.cpp (working copy) @@ -21,7 +21,7 @@ void SqlStatement::Execute(Database *db) { - db->DirectExecute(m_sql); + db->DirectExecute(m_sql.c_str()); } void SqlTransaction::Execute(Database *db) @@ -30,10 +30,9 @@ db->DirectExecute("START TRANSACTION"); while(!m_queue.empty()) { - char *sql = (char*)m_queue.front(); + std::string sql = m_queue.front(); m_queue.pop(); - db->DirectExecute(sql); - free(sql); + db->DirectExecute(sql.c_str()); } db->DirectExecute("COMMIT"); } Index: src/shared/Database/SqlOperations.h =================================================================== --- src/shared/Database/SqlOperations.h (revision 4093) +++ src/shared/Database/SqlOperations.h (working copy) @@ -22,7 +22,6 @@ #include "zthread/LockedQueue.h" #include "zthread/FastMutex.h" #include -using namespace std; /// ---- BASE --- @@ -31,6 +30,7 @@ class SqlOperation { public: + virtual ~SqlOperation() {} virtual void Execute(Database *db) = 0; }; @@ -39,20 +39,20 @@ class SqlStatement : public SqlOperation { private: - const char *m_sql; + std::string m_sql; public: - SqlStatement(const char *sql) : m_sql(strdup(sql)){} - ~SqlStatement() { free((void*)m_sql); } + SqlStatement(const char *sql) : m_sql(sql) {} + ~SqlStatement() {} void Execute(Database *db); }; class SqlTransaction : public SqlOperation { private: - queue m_queue; + std::queue m_queue; public: SqlTransaction() {} - void DelayExecute(const char *sql) { m_queue.push(strdup(sql)); } + void DelayExecute(const char *sql) { m_queue.push(std::string(sql)); } void Execute(Database *db); }; #endif //__SQLOPERATIONS_H