From f231598aa006c7e49c1275903205b27f4688c59b Mon Sep 17 00:00:00 2001 From: Julian Hinxlage Date: Wed, 18 Dec 2019 12:42:01 +0100 Subject: [PATCH] ~ only set default values if using localSharedMemory --- src/SharedMemoryAccess.cpp | 8 +++----- src/internal.cpp | 5 +++++ src/internal.hpp | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/SharedMemoryAccess.cpp b/src/SharedMemoryAccess.cpp index 6674f98..d129346 100644 --- a/src/SharedMemoryAccess.cpp +++ b/src/SharedMemoryAccess.cpp @@ -19,8 +19,6 @@ namespace vkvm { int semId; struct sembuf semaphore; - std::vector localSharedMemory; - auto initSemaphore() -> int { /* Testen, ob das Semaphor bereits existiert */ semId = semget(SEM_KEY, 0, IPC_PRIVATE); @@ -64,11 +62,11 @@ namespace vkvm { givenWarning = true; log(LogLevel::WARNING, "no shared memory found, using local memory instead!"); } - if (localSharedMemory.empty()) { + if (impl.localSharedMemory.empty()) { constexpr int kilo = 1024; - localSharedMemory.resize(impl.sharedMemorySize * kilo); + impl.localSharedMemory.resize(impl.sharedMemorySize * kilo); } - return &localSharedMemory[0]; + return &impl.localSharedMemory[0]; } auto getSharedMemory() -> char * { diff --git a/src/internal.cpp b/src/internal.cpp index 36d381c..8e906cb 100644 --- a/src/internal.cpp +++ b/src/internal.cpp @@ -11,6 +11,11 @@ namespace vkvm { auto setDefaultValues() -> void { impl.localMemoryWarn = false; if (getSharedMemory() != nullptr) { + if (!impl.localSharedMemory.empty()) { + if(getSharedMemory() == &impl.localSharedMemory[0]){ + return; + } + } setMode(GraphicMode::RGB); setCharactersPerRow(60); setCharactersPerColumn(20); diff --git a/src/internal.hpp b/src/internal.hpp index b4b65c3..8eb6826 100644 --- a/src/internal.hpp +++ b/src/internal.hpp @@ -61,6 +61,7 @@ constexpr int keyboardBufferSize = 16; std::vector> eventTable; bool localMemoryWarn = true; char *sharedMemory = nullptr; + std::vector localSharedMemory; }; extern Impl impl;