kit/Kit.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-)
New commits: commit 7ecae1b66de938a3186f05698e3c5aac3bc03eab Author: Miklos Vajna <vmik...@collabora.com> AuthorDate: Tue Mar 10 17:21:04 2020 +0100 Commit: Miklos Vajna <vmik...@collabora.com> CommitDate: Wed Mar 11 09:08:25 2020 +0100 Document::sendFrame: vector -> unique_ptr Open Writer, insert a multi-MP JPEG, select it. Before: ChildSession::renderShapeSelection: finished in 74.67 ms After: ChildSession::renderShapeSelection: finished in 67.33 ms (90.17% of baseline) Change-Id: I495e9fcf0c42b0bcfc7987a402a13f5d8664b1e1 Reviewed-on: https://gerrit.libreoffice.org/c/online/+/90291 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Miklos Vajna <vmik...@collabora.com> diff --git a/kit/Kit.cpp b/kit/Kit.cpp index 0b417f5e4..a302f6e35 100644 --- a/kit/Kit.cpp +++ b/kit/Kit.cpp @@ -752,16 +752,16 @@ public: const std::string& getUrl() const { return _url; } /// Post the message - in the unipoll world we're in the right thread anyway - bool postMessage(const std::shared_ptr<std::vector<char>>& message, const WSOpCode code) const + bool postMessage(const char* data, int size, const WSOpCode code) const { - LOG_TRC("postMessage called with: " << getAbbreviatedMessage(message->data(), message->size())); + LOG_TRC("postMessage called with: " << getAbbreviatedMessage(data, size)); if (!_websocketHandler) { - LOG_ERR("Child Doc: Bad socket while sending [" << getAbbreviatedMessage(message->data(), message->size()) << "]."); + LOG_ERR("Child Doc: Bad socket while sending [" << getAbbreviatedMessage(data, size) << "]."); return false; } - _websocketHandler->sendMessage(message->data(), message->size(), code); + _websocketHandler->sendMessage(data, size, code); return true; } @@ -1150,11 +1150,12 @@ public: LOG_TRC("Sending back painted tiles for " << tileMsg << " of size " << output.size() << " bytes) for: " << tileMsg); - std::shared_ptr<std::vector<char>> response = std::make_shared<std::vector<char>>(tileMsg.size() + output.size()); - std::copy(tileMsg.begin(), tileMsg.end(), response->begin()); - std::copy(output.begin(), output.end(), response->begin() + tileMsg.size()); + size_t responseSize = tileMsg.size() + output.size(); + std::unique_ptr<char[]> response(new char[responseSize]); + std::copy(tileMsg.begin(), tileMsg.end(), response.get()); + std::copy(output.begin(), output.end(), response.get() + tileMsg.size()); - postMessage(response, WSOpCode::Binary); + postMessage(response.get(), responseSize, WSOpCode::Binary); } bool sendTextFrame(const std::string& message) @@ -1166,11 +1167,7 @@ public: { try { - std::shared_ptr<std::vector<char>> message = std::make_shared<std::vector<char>>(); - message->resize(length); - std::memcpy(message->data(), buffer, length); - - return postMessage(message, opCode); + return postMessage(buffer, length, opCode); } catch (const Exception& exc) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits