]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/extra/m_sqlite3.cpp
Merge branch 'master+listmode'
[user/henk/code/inspircd.git] / src / modules / extra / m_sqlite3.cpp
index 1c213e8e074550ca2b8d1b2d8287eb1fb1845109..05203da39c6ae7fb464a33ffe33f7ed3781cb047 100644 (file)
 
 
 #include "inspircd.h"
-#include <sqlite3.h>
 #include "modules/sql.h"
 
+// Fix warnings about the use of `long long` on C++03.
+#if defined __clang__
+# pragma clang diagnostic ignored "-Wc++11-long-long"
+#elif defined __GNUC__
+# pragma GCC diagnostic ignored "-Wlong-long"
+#endif
+
+#include <sqlite3.h>
+
 #ifdef _WIN32
 # pragma comment(lib, "sqlite3.lib")
 #endif
 
-/* $CompileFlags: pkgconfversion("sqlite3","3.3") pkgconfincludes("sqlite3","/sqlite3.h","") -Wno-pedantic */
+/* $CompileFlags: pkgconfversion("sqlite3","3.3") pkgconfincludes("sqlite3","/sqlite3.h","") */
 /* $LinkerFlags: pkgconflibs("sqlite3","/libsqlite3.so","-lsqlite3") */
 
 class SQLConn;
-typedef std::map<std::string, SQLConn*> ConnMap;
+typedef insp::flat_map<std::string, SQLConn*> ConnMap;
 
 class SQLite3Result : public SQLResult
 {
@@ -90,8 +98,11 @@ class SQLConn : public SQLProvider
 
        ~SQLConn()
        {
-               sqlite3_interrupt(conn);
-               sqlite3_close(conn);
+               if (conn)
+               {
+                       sqlite3_interrupt(conn);
+                       sqlite3_close(conn);
+               }
        }
 
        void Query(SQLQuery* query, const std::string& q)