common/SigUtil.cpp | 6 +++++- common/SigUtil.hpp | 6 +++--- wsd/LOOLWSD.cpp | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-)
New commits: commit 35646b7bf954c97186a34dfd9ed5ee1e7f3e2fe7 Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Fri Aug 9 09:23:17 2019 +0200 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Fri Aug 9 09:23:17 2019 +0200 common: wrap DumpGlobalState in a getter function to avoid ODR violation Otherwise both loolwsd and unit-copy-paste.so would have a DumpGlobalState: ==5783==ERROR: AddressSanitizer: odr-violation (0x00000208f7a0): [1] size=1 'DumpGlobalState' ../common/SigUtil.cpp:49:19 [2] size=1 'DumpGlobalState' common/SigUtil.cpp:49:19 These globals were registered at these points: [1]: #0 0x5f9a08 in __asan_register_globals.part.13 /home/vmiklos/git/libreoffice/lode/packages/llvm-472c6ef8b0f53061b049039f9775ab127beafbe4.src/compiler-rt/lib/asan/asan_globals.cc:365 #1 0x7f5c5edf1c9b in asan.module_ctor (/home/vmiklos/git/libreoffice/online-san/test/../test/.libs/unit-copy-paste.so+0x60ac9b) [2]: #0 0x5f9a08 in __asan_register_globals.part.13 /home/vmiklos/git/libreoffice/lode/packages/llvm-472c6ef8b0f53061b049039f9775ab127beafbe4.src/compiler-rt/lib/asan/asan_globals.cc:365 #1 0xe2b98e in asan.module_ctor (/home/vmiklos/git/libreoffice/online-san/loolwsd+0xe2b98e) Change-Id: I4b7b0238eb9b38a30875e8788c1dcb27f1d1643f diff --git a/common/SigUtil.cpp b/common/SigUtil.cpp index c5029a229..49387b38d 100644 --- a/common/SigUtil.cpp +++ b/common/SigUtil.cpp @@ -39,14 +39,18 @@ #include "Log.hpp" static std::atomic<bool> TerminationFlag(false); +static std::atomic<bool> DumpGlobalState(false); namespace SigUtil { std::atomic<bool>& getTerminationFlag() { return TerminationFlag; } + std::atomic<bool>& getDumpGlobalState() + { + return DumpGlobalState; + } } -std::atomic<bool> DumpGlobalState(false); #if MOBILEAPP std::atomic<bool> MobileTerminationFlag(false); diff --git a/common/SigUtil.hpp b/common/SigUtil.hpp index f3d620b92..ea7595ab6 100644 --- a/common/SigUtil.hpp +++ b/common/SigUtil.hpp @@ -24,10 +24,10 @@ namespace SigUtil { /// Flag to stop pump loops. std::atomic<bool>& getTerminationFlag(); -} -/// Flag to dump internal state -extern std::atomic<bool> DumpGlobalState; + /// Flag to dump internal state + std::atomic<bool>& getDumpGlobalState(); +} #if MOBILEAPP extern std::atomic<bool> MobileTerminationFlag; diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp index fcf25e9cd..1493399f5 100644 --- a/wsd/LOOLWSD.cpp +++ b/wsd/LOOLWSD.cpp @@ -3141,10 +3141,10 @@ private: void wakeupHook() override { - if (DumpGlobalState) + if (SigUtil::getDumpGlobalState()) { dump_state(); - DumpGlobalState = false; + SigUtil::getDumpGlobalState() = false; } } }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits