Subject: [Boost-bugs] [Boost C++ Libraries] #8624: Large objects passed by value
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-05-28 14:15:57
#8624: Large objects passed by value
---------------------------------------------+------------------------------
Reporter: Richard <legalize@â¦> | Owner: chris_kohlhoff
Type: Bugs | Status: new
Milestone: To Be Determined | Component: asio
Version: Boost 1.52.0 | Severity: Optimization
Keywords: |
---------------------------------------------+------------------------------
In asio/detail/reactive_socket_service_base.hpp:
{{{
198 template <typename ConstBufferSequence, typename Handler>
199 void async_send(base_implementation_type& impl,
200 const ConstBufferSequence& buffers,
CID 10918 (#1-5 of 5): Big parameter passed by value (PASS_BY_VALUE)
pass_by_value: Passing parameter handler of type
boost::asio::detail::write_op<
boost::asio::basic_stream_socket<
boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,
boost::asio::mutable_buffers_1,
boost::asio::detail::transfer_all_t,
boost::asio::ssl::detail::io_op<
boost::asio::basic_stream_socket<
boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,
boost::asio::ssl::detail::write_op<
boost::asio::detail::consuming_buffers<
boost::asio::const_buffer,
std::vector<boost::asio::const_buffer>
>
>,
boost::asio::detail::write_op<
boost::asio::ssl::stream<
boost::asio::basic_stream_socket<
boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp>
>
>,
std::vector<boost::asio::const_buffer>,
boost::asio::detail::transfer_all_t,
boost::function2<void, boost::system::error_code const &,
unsigned long>
>
>
> (size 256 bytes) by value.
201 socket_base::message_flags flags, Handler handler)
202 {
}}}
Same for async_receive.
In asio/handler_invoke_hook.hpp:
{{{
61 template <typename Function>
CID 10407 (#1-12 of 12): Big parameter passed by value (PASS_BY_VALUE)
pass_by_value: Passing parameter function of type
boost::asio::detail::binder2<
boost::asio::detail::write_op<
boost::asio::basic_stream_socket<
boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,
std::vector<boost::asio::const_buffer>,
boost::asio::detail::transfer_all_t,
boost::function2<void, boost::system::error_code const &,
unsigned long>
>,
boost::system::error_code, unsigned long
> (size 136 bytes) by value.
62 inline void asio_handler_invoke(Function function, ...)
}}}
In asio/impl/write.hpp:
{{{
548 template <typename AsyncWriteStream, typename ConstBufferSequence,
549 typename CompletionCondition, typename WriteHandler>
550 inline write_op<AsyncWriteStream, ConstBufferSequence,
551 CompletionCondition, WriteHandler>
552 make_write_op(AsyncWriteStream& s, const ConstBufferSequence&
buffers,
CID 10920 (#1-3 of 3): Big parameter passed by value (PASS_BY_VALUE)
pass_by_value: Passing parameter handler of type
boost::asio::ssl::detail::io_op<
boost::asio::basic_stream_socket<
boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp>
>,
boost::asio::ssl::detail::write_op<
boost::asio::detail::consuming_buffers<
boost::asio::const_buffer,
std::vector<boost::asio::const_buffer>
>
>,
boost::asio::detail::write_op<
boost::asio::ssl::stream<
boost::asio::basic_stream_socket<
boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp>
>
>,
std::vector<boost::asio::const_buffer>,
boost::asio::detail::transfer_all_t,
boost::function2<void, boost::system::error_code const &,
unsigned long>
>
> (size 224 bytes) by value.
553 CompletionCondition completion_condition, WriteHandler handler)
554 {
555 return write_op<AsyncWriteStream, ConstBufferSequence,
CompletionCondition,
556 WriteHandler>(s, buffers, completion_condition, handler);
557 }
}}}
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/8624> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:13 UTC