diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2023-10-18 10:32:59 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-10-19 08:45:23 +0200 |
commit | c4e973ee5efa4a90ae65c5f139812e92cd30117f (patch) | |
tree | c7c7b6584f2559b408acc178ab7d3a1f4a2b79d8 /wsd/COOLWSD.cpp | |
parent | UI: Prefill rename dialog with the current document name (diff) | |
download | online-c4e973ee5efa4a90ae65c5f139812e92cd30117f.tar.gz online-c4e973ee5efa4a90ae65c5f139812e92cd30117f.zip |
cid#318817 avoid Uncaught exception
and
cid#318819 Uncaught exception
take a reference in the COOLWSD/DocumentBroker ctor, so indicating it
exists before the calls in the COOLWSD/DocumentBroker dtor, and so the
Admin ctor doesn't throw during the COOLWSD/DocumentBroker dtor.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I8190cc3594a5f81fedd355aeadcca45e532bda90
Diffstat (limited to 'wsd/COOLWSD.cpp')
-rw-r--r-- | wsd/COOLWSD.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/wsd/COOLWSD.cpp b/wsd/COOLWSD.cpp index 613ecea86c..043ec03d29 100644 --- a/wsd/COOLWSD.cpp +++ b/wsd/COOLWSD.cpp @@ -5497,8 +5497,11 @@ class COOLWSDServer // allocate port & hold temporarily. std::shared_ptr<ServerSocket> _serverSocket; public: - COOLWSDServer() : - _acceptPoll("accept_poll") + COOLWSDServer() + : _acceptPoll("accept_poll") +#if !MOBILEAPP + , _admin(Admin::instance()) +#endif { } @@ -5536,7 +5539,7 @@ public: WebServerPoll->startThread(); #if !MOBILEAPP - Admin::instance().start(); + _admin.start(); #endif } @@ -5546,7 +5549,7 @@ public: if (WebServerPoll) WebServerPoll->joinThread(); #if !MOBILEAPP - Admin::instance().stop(); + _admin.stop(); #endif } @@ -5611,7 +5614,7 @@ public: #if !MOBILEAPP os << "Admin poll:\n"; - Admin::instance().dumpState(os); + _admin.dumpState(os); // If we have any delaying work going on. Delay::dumpState(os); @@ -5644,6 +5647,10 @@ private: /// This thread & poll accepts incoming connections. AcceptPoll _acceptPoll; +#if !MOBILEAPP + Admin& _admin; +#endif + /// Create the internal only, local socket for forkit / kits prisoners to talk to. std::shared_ptr<ServerSocket> findPrisonerServerPort() { |