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