All pastes #618433 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-07-13 23:33 UTC
rendered paste body
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 <queue>
-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<const char *> m_queue;
+        std::queue<std::string> 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