summaryrefslogtreecommitdiff
path: root/platform/default
diff options
context:
space:
mode:
authorJason Wray <jason@mapbox.com>2016-09-08 17:57:50 -0400
committerJason Wray <jason@mapbox.com>2016-09-09 05:42:20 -0400
commite26fa4dd4c8e414faf41f5ee1d5a442bcf1bab90 (patch)
tree20bb8b59c8152a7803fed0f8f2b386d9636540de /platform/default
parent29f4204d1c807109cdbe555f760744f0c928b548 (diff)
downloadqtlocation-mapboxgl-e26fa4dd4c8e414faf41f5ee1d5a442bcf1bab90.tar.gz
[core] Move SQLite logging setup to before database initialization
- Ensure that sqlite3_config() is always called before db init. - Should only be called once, now. - Move sqliteVersionCheck into mapbox::sqlite namespace.
Diffstat (limited to 'platform/default')
-rw-r--r--platform/default/sqlite3.cpp16
-rw-r--r--platform/default/sqlite3.hpp2
2 files changed, 10 insertions, 8 deletions
diff --git a/platform/default/sqlite3.cpp b/platform/default/sqlite3.cpp
index da50a1db87..578e407739 100644
--- a/platform/default/sqlite3.cpp
+++ b/platform/default/sqlite3.cpp
@@ -9,6 +9,12 @@
#include <mbgl/platform/log.hpp>
+namespace mapbox {
+namespace sqlite {
+
+template <typename T>
+using optional = std::experimental::optional<T>;
+
const static bool sqliteVersionCheck __attribute__((unused)) = []() {
if (sqlite3_libversion_number() / 1000000 != SQLITE_VERSION_NUMBER / 1000000) {
char message[96];
@@ -18,17 +24,13 @@ const static bool sqliteVersionCheck __attribute__((unused)) = []() {
throw std::runtime_error(message);
}
+ // Enable SQLite logging before initializing the database.
+ sqlite3_config(SQLITE_CONFIG_LOG, Database::errorLogCallback, nullptr);
+
return true;
}();
-namespace mapbox {
-namespace sqlite {
-
-template <typename T>
-using optional = std::experimental::optional<T>;
-
Database::Database(const std::string &filename, int flags) {
- sqlite3_config(SQLITE_CONFIG_LOG, errorLogCallback, nullptr);
const int err = sqlite3_open_v2(filename.c_str(), &db, flags, nullptr);
if (err != SQLITE_OK) {
const auto message = sqlite3_errmsg(db);
diff --git a/platform/default/sqlite3.hpp b/platform/default/sqlite3.hpp
index cba432272b..8e4a4b971e 100644
--- a/platform/default/sqlite3.hpp
+++ b/platform/default/sqlite3.hpp
@@ -42,6 +42,7 @@ public:
explicit operator bool() const;
+ static void errorLogCallback(void *arg, const int err, const char *msg);
void setBusyTimeout(std::chrono::milliseconds);
void exec(const std::string &sql);
Statement prepare(const char *query);
@@ -51,7 +52,6 @@ public:
private:
sqlite3 *db = nullptr;
- static void errorLogCallback(void *arg, const int err, const char *msg);
};
class Statement {