wsd/AdminModel.cpp | 24 +++++++++++++----------- wsd/AdminModel.hpp | 2 ++ 2 files changed, 15 insertions(+), 11 deletions(-)
New commits: commit afcca641e560d7beef7331af5d3204ec19f3da1c Author: Michael Meeks <michael.me...@collabora.com> AuthorDate: Mon May 4 09:11:00 2020 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Mon May 4 11:16:44 2020 +0200 AdminModel::removeDocument: fix the other key issue by code sharing. Change-Id: I0f841b0b54f44827f397e57e22c0d845cfb121ba Reviewed-on: https://gerrit.libreoffice.org/c/online/+/93401 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/wsd/AdminModel.cpp b/wsd/AdminModel.cpp index dca1c7bc0..9579a4e51 100644 --- a/wsd/AdminModel.cpp +++ b/wsd/AdminModel.cpp @@ -543,6 +543,17 @@ void AdminModel::addDocument(const std::string& docKey, pid_t pid, notify(oss.str()); } +void AdminModel::doRemove(std::map<std::string, std::unique_ptr<Document>>::iterator &docIt) +{ + std::unique_ptr<Document> doc; + std::swap(doc, docIt->second); + std::string docItKey = docIt->first; + _documents.erase(docIt); + _expiredDocuments.emplace(docItKey + std::to_string(std::chrono::duration_cast<std::chrono::nanoseconds>( + std::chrono::steady_clock::now().time_since_epoch()).count()), + std::move(doc)); +} + void AdminModel::removeDocument(const std::string& docKey, const std::string& sessionId) { assertCorrectThread(); @@ -561,13 +572,7 @@ void AdminModel::removeDocument(const std::string& docKey, const std::string& se // of documents open and close, to be able to give a detailed summary // to the admin console with views. if (docIt->second->expireView(sessionId) == 0) - { - std::unique_ptr<Document> doc; - std::swap(doc, docIt->second); - std::string docItKey = docIt->first; - _documents.erase(docIt); - _expiredDocuments.emplace(docItKey + std::to_string(std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::steady_clock::now().time_since_epoch()).count()), std::move(doc)); - } + doRemove(docIt); } } @@ -591,10 +596,7 @@ void AdminModel::removeDocument(const std::string& docKey) } LOG_DBG("Removed admin document [" << docKey << "]."); - std::unique_ptr<Document> doc; - std::swap(doc, docIt->second); - _documents.erase(docIt); - _expiredDocuments.emplace(docIt->first + std::to_string(std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::steady_clock::now().time_since_epoch()).count()), std::move(doc)); + doRemove(docIt); } } diff --git a/wsd/AdminModel.hpp b/wsd/AdminModel.hpp index 63f61d5c9..8faceb5f3 100644 --- a/wsd/AdminModel.hpp +++ b/wsd/AdminModel.hpp @@ -341,6 +341,8 @@ public: static int getPidsFromProcName(const std::regex& procNameRegEx, std::vector<int> *pids); private: + void doRemove(std::map<std::string, std::unique_ptr<Document>>::iterator &docIt); + std::string getMemStats(); std::string getSentActivity(); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits