From d86adce7ea37edf6498ee9289896694a27acbdcd Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Tue, 5 Sep 2017 23:58:03 +0200 Subject: [PATCH] data: Fixed db crash on closing application due to multiple initializations of statements --- src/lib/data/storage/sqlite/SqliteStorage.cpp | 7 ++++++- src/lib/data/storage/sqlite/SqliteStorage.h | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lib/data/storage/sqlite/SqliteStorage.cpp b/src/lib/data/storage/sqlite/SqliteStorage.cpp index 992b0371..f1565bdb 100644 --- a/src/lib/data/storage/sqlite/SqliteStorage.cpp +++ b/src/lib/data/storage/sqlite/SqliteStorage.cpp @@ -35,7 +35,12 @@ void SqliteStorage::setup() if (isEmpty() || !isIncompatible()) { setupTables(); - setupPrecompiledStatements(); + + if (!m_precompiledStatementsInitialized) + { + setupPrecompiledStatements(); + m_precompiledStatementsInitialized = true; + } } m_mode = STORAGE_MODE_UNKNOWN; diff --git a/src/lib/data/storage/sqlite/SqliteStorage.h b/src/lib/data/storage/sqlite/SqliteStorage.h index b3d921bd..65e4c04e 100644 --- a/src/lib/data/storage/sqlite/SqliteStorage.h +++ b/src/lib/data/storage/sqlite/SqliteStorage.h @@ -75,6 +75,8 @@ private: std::vector> m_indices; + bool m_precompiledStatementsInitialized = false; + friend SqliteStorageMigration; };