From 40ad0795465155be3c06a6d76e53bf9a3c01d4a4 Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Wed, 1 Sep 2021 23:45:33 +0200 Subject: [PATCH] FIX: Fix segfault -> create the stores on application startup --- src/Lib/Document/VivyDocumentStore.cc | 3 ++- src/Lib/Log.cc | 2 +- src/VivyApplication.cc | 4 ++++ src/VivyApplication.hh | 4 ++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/Lib/Document/VivyDocumentStore.cc b/src/Lib/Document/VivyDocumentStore.cc index 3d9618c8..ebd9a000 100644 --- a/src/Lib/Document/VivyDocumentStore.cc +++ b/src/Lib/Document/VivyDocumentStore.cc @@ -9,8 +9,9 @@ VivyDocumentStore::newDocument(VivyDocument::Options opt) // Add the memory flag opt = static_cast<VivyDocument::Options>(opt | VivyDocument::MemoryDocumentCreation); - const QString newDocName = newDocumentBaseName + QString::number(newDocumentNumber++); + const QString newDocName = newDocumentBaseName + QString::number(newDocumentNumber); auto ret = std::make_shared<VivyDocument>(newDocName, opt); + newDocumentNumber++; if (ret) { const Uuid uuid = ret->getUuid(); diff --git a/src/Lib/Log.cc b/src/Lib/Log.cc index 8cbebd75..b18598ae 100644 --- a/src/Lib/Log.cc +++ b/src/Lib/Log.cc @@ -40,7 +40,7 @@ StderrLogSinkDispatcher::handleLogMessage(const std::string_view category, { std::cerr << "#(" << trunkFileName(msg.getHeader().fileName) << " +" << msg.getHeader().lineNumberInFile << " | " - << LogLevel::toStdStringView(msg.getHeader().severity) << " -> " << category << ")\t" + << LogLevel::toStdStringView(msg.getHeader().severity) << " -> " << category << ") " << msg.getTextBuffer() << '\n'; } } diff --git a/src/VivyApplication.cc b/src/VivyApplication.cc index 959fb498..8f7e46d9 100644 --- a/src/VivyApplication.cc +++ b/src/VivyApplication.cc @@ -1,11 +1,15 @@ #include "VivyApplication.hh" #include "UI/MainWindow.hh" +#include "Lib/Document/VivyDocumentStore.hh" +#include "Lib/Script/ScriptStore.hh" using namespace Vivy; VivyApplication::VivyApplication(int &argc, char **argv) : QApplication(argc, argv) { + documentStore = std::make_shared<VivyDocumentStore>(); + scriptStore = std::make_shared<ScriptStore>(); VIVY_LOG_CTOR() << "Construction is OK"; } diff --git a/src/VivyApplication.hh b/src/VivyApplication.hh index 4a9985a3..9ac75fed 100644 --- a/src/VivyApplication.hh +++ b/src/VivyApplication.hh @@ -46,8 +46,8 @@ class VivyApplication : public QApplication { VIVY_LOGGABLE_OBJECT(logSink, APPLICATION, logger) public: - std::shared_ptr<VivyDocumentStore> documentStore{}; - std::shared_ptr<ScriptStore> scriptStore{}; + std::shared_ptr<VivyDocumentStore> documentStore; + std::shared_ptr<ScriptStore> scriptStore; enum class Font { Monospace, -- GitLab