From 564c1f2de22bf420c057c7652f7630ee02473cbc Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sun, 15 Dec 2024 00:07:48 -0700 Subject: [PATCH] [wpinet] WebServer: Fix Windows (#7551) The order of evaluation of parameters is not defined; on Windows, the std::move was executed before the GetBuffer(). --- wpinet/src/main/native/cpp/WebServer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wpinet/src/main/native/cpp/WebServer.cpp b/wpinet/src/main/native/cpp/WebServer.cpp index 8df876ab30..3e00482b57 100644 --- a/wpinet/src/main/native/cpp/WebServer.cpp +++ b/wpinet/src/main/native/cpp/WebServer.cpp @@ -163,10 +163,10 @@ void MyHttpConnection::SendFileResponse(int code, std::string_view codeText, wpi::raw_uv_ostream os{toSend, 4096}; BuildHeader(os, code, codeText, contentType, (*membuf)->size(), extraHeader); SendData(os.bufs(), false); + auto buf = (*membuf)->GetBuffer(); m_stream.Write( - {{(*membuf)->GetBuffer()}}, - [closeAfter = !m_keepAlive, stream = &m_stream, - membuf = std::shared_ptr{std::move(*membuf)}](auto, uv::Error) { + {{buf}}, [closeAfter = !m_keepAlive, stream = &m_stream, + membuf = std::shared_ptr{std::move(*membuf)}](auto, uv::Error) { if (closeAfter) { stream->Close(); }