diff options
author | Jason Wray <jason@mapbox.com> | 2016-09-08 17:57:50 -0400 |
---|---|---|
committer | Jason Wray <jason@mapbox.com> | 2016-09-09 05:42:20 -0400 |
commit | e26fa4dd4c8e414faf41f5ee1d5a442bcf1bab90 (patch) | |
tree | 20bb8b59c8152a7803fed0f8f2b386d9636540de /platform/default | |
parent | 29f4204d1c807109cdbe555f760744f0c928b548 (diff) | |
download | qtlocation-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.cpp | 16 | ||||
-rw-r--r-- | platform/default/sqlite3.hpp | 2 |
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 { |