diff options
Diffstat (limited to '3rdparty/asio/include/asio/detail/win_iocp_socket_recv_op.hpp')
-rw-r--r-- | 3rdparty/asio/include/asio/detail/win_iocp_socket_recv_op.hpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/3rdparty/asio/include/asio/detail/win_iocp_socket_recv_op.hpp b/3rdparty/asio/include/asio/detail/win_iocp_socket_recv_op.hpp index 0da29825dd2..874a12aa7d0 100644 --- a/3rdparty/asio/include/asio/detail/win_iocp_socket_recv_op.hpp +++ b/3rdparty/asio/include/asio/detail/win_iocp_socket_recv_op.hpp @@ -2,7 +2,7 @@ // detail/win_iocp_socket_recv_op.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2021 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2024 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -23,7 +23,6 @@ #include "asio/detail/buffer_sequence_adapter.hpp" #include "asio/detail/fenced_block.hpp" #include "asio/detail/handler_alloc_helpers.hpp" -#include "asio/detail/handler_invoke_helpers.hpp" #include "asio/detail/handler_work.hpp" #include "asio/detail/memory.hpp" #include "asio/detail/operation.hpp" @@ -49,7 +48,7 @@ public: state_(state), cancel_token_(cancel_token), buffers_(buffers), - handler_(ASIO_MOVE_CAST(Handler)(handler)), + handler_(static_cast<Handler&&>(handler)), work_(handler_, io_ex) { } @@ -61,6 +60,7 @@ public: asio::error_code ec(result_ec); // Take ownership of the operation object. + ASIO_ASSUME(base != 0); win_iocp_socket_recv_op* o(static_cast<win_iocp_socket_recv_op*>(base)); ptr p = { asio::detail::addressof(o->handler_), o, o }; @@ -68,7 +68,7 @@ public: // Take ownership of the operation's outstanding work. handler_work<Handler, IoExecutor> w( - ASIO_MOVE_CAST2(handler_work<Handler, IoExecutor>)( + static_cast<handler_work<Handler, IoExecutor>&&>( o->work_)); #if defined(ASIO_ENABLE_BUFFER_DEBUGGING) @@ -85,6 +85,8 @@ public: MutableBufferSequence>::all_empty(o->buffers_), ec, bytes_transferred); + ASIO_ERROR_LOCATION(ec); + // Make a copy of the handler so that the memory can be deallocated before // the upcall is made. Even if we're not about to make an upcall, a // sub-object of the handler may be the true owner of the memory associated |