Fix forwarding async operations in buffered streams.
diff --git a/asio/include/asio/buffered_read_stream.hpp b/asio/include/asio/buffered_read_stream.hpp
index 832ec17..ef346da 100644
--- a/asio/include/asio/buffered_read_stream.hpp
+++ b/asio/include/asio/buffered_read_stream.hpp
@@ -158,15 +158,8 @@
async_write_some(const ConstBufferSequence& buffers,
ASIO_MOVE_ARG(WriteHandler) handler)
{
- async_completion<WriteHandler,
- void (asio::error_code, std::size_t)> init(handler);
-
- next_layer_.async_write_some(buffers,
- ASIO_MOVE_CAST(ASIO_HANDLER_TYPE(WriteHandler,
- void (asio::error_code, std::size_t)))(
- init.completion_handler));
-
- return init.result.get();
+ return next_layer_.async_write_some(buffers,
+ ASIO_MOVE_CAST(WriteHandler)(handler));
}
/// Fill the buffer with some data. Returns the number of bytes placed in the
diff --git a/asio/include/asio/buffered_write_stream.hpp b/asio/include/asio/buffered_write_stream.hpp
index 9f2641f..4734cc6 100644
--- a/asio/include/asio/buffered_write_stream.hpp
+++ b/asio/include/asio/buffered_write_stream.hpp
@@ -193,15 +193,8 @@
async_read_some(const MutableBufferSequence& buffers,
ASIO_MOVE_ARG(ReadHandler) handler)
{
- async_completion<ReadHandler,
- void (asio::error_code, std::size_t)> init(handler);
-
- next_layer_.async_read_some(buffers,
- ASIO_MOVE_CAST(ASIO_HANDLER_TYPE(ReadHandler,
- void (asio::error_code, std::size_t)))(
- init.completion_handler));
-
- return init.result.get();
+ return next_layer_.async_read_some(buffers,
+ ASIO_MOVE_CAST(ReadHandler)(handler));
}
/// Peek at the incoming data on the stream. Returns the number of bytes read.