id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 8612,unused pointers in copying of handlers,Richard ,chris_kohlhoff,"boost/asio/detail/reactive_socket_recv_op.hpp: {{{ 84 static void do_complete(io_service_impl* owner, operation* base, 85 const boost::system::error_code& /*ec*/, 86 std::size_t /*bytes_transferred*/) 87 { 88 // Take ownership of the handler object. 89 reactive_socket_recv_op* o(static_cast(base)); CID 11125 (2): Unused pointer value (UNUSED_VALUE) CID 10926 (#1 of 1): Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer ""p.h"" returned by ""addressof(o->handler_)"" is never used. 90 ptr p = { boost::addressof(o->handler_), o, o }; 91 92 BOOST_ASIO_HANDLER_COMPLETION((o)); 93 94 // Make a copy of the handler so that the memory can be deallocated before 95 // the upcall is made. Even if we're not about to make an upcall, a 96 // sub-object of the handler may be the true owner of the memory associated 97 // with the handler. Consequently, a local copy of the handler is required 98 // to ensure that any owning sub-object remains valid until after we have 99 // deallocated the memory here. 100 detail::binder2 101 handler(o->handler_, o->ec_, o->bytes_transferred_); 102 p.h = boost::addressof(handler.handler_); 103 }}} boost/asio/detail/reactive_socket_send_op.hpp: {{{ 81 static void do_complete(io_service_impl* owner, operation* base, 82 const boost::system::error_code& /*ec*/, 83 std::size_t /*bytes_transferred*/) 84 { 85 // Take ownership of the handler object. 86 reactive_socket_send_op* o(static_cast(base)); CID 11126 (4): Unused pointer value (UNUSED_VALUE) CID 11126 (4): Unused pointer value (UNUSED_VALUE) CID 10927 (#2 of 2): Unused pointer value (UNUSED_VALUE) CID 10927 (#1 of 2): Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer ""p.h"" returned by ""addressof(o->handler_)"" is never used. 87 ptr p = { boost::addressof(o->handler_), o, o }; 88 89 BOOST_ASIO_HANDLER_COMPLETION((o)); 90 91 // Make a copy of the handler so that the memory can be deallocated before 92 // the upcall is made. Even if we're not about to make an upcall, a 93 // sub-object of the handler may be the true owner of the memory associated 94 // with the handler. Consequently, a local copy of the handler is required 95 // to ensure that any owning sub-object remains valid until after we have 96 // deallocated the memory here. 97 detail::binder2 98 handler(o->handler_, o->ec_, o->bytes_transferred_); 99 p.h = boost::addressof(handler.handler_); }}} boost/asio/detail/wait_handler.cpp: {{{ 43 static void do_complete(io_service_impl* owner, operation* base, 44 const boost::system::error_code& /*ec*/, 45 std::size_t /*bytes_transferred*/) 46 { 47 // Take ownership of the handler object. 48 wait_handler* h(static_cast(base)); CID 11127 (2): Unused pointer value (UNUSED_VALUE) CID 10929: Unused pointer value (UNUSED_VALUE) CID 10928 (#1 of 1): Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer ""p.h"" returned by ""addressof(h->handler_)"" is never used. 49 ptr p = { boost::addressof(h->handler_), h, h }; 50 51 BOOST_ASIO_HANDLER_COMPLETION((h)); 52 53 // Make a copy of the handler so that the memory can be deallocated before 54 // the upcall is made. Even if we're not about to make an upcall, a 55 // sub-object of the handler may be the true owner of the memory associated 56 // with the handler. Consequently, a local copy of the handler is required 57 // to ensure that any owning sub-object remains valid until after we have 58 // deallocated the memory here. 59 detail::binder1 60 handler(h->handler_, h->ec_); 61 p.h = boost::addressof(handler.handler_); }}} boost/asio/detail/wait_handler.cpp: {{{ 43 static void do_complete(io_service_impl* owner, operation* base, 44 const boost::system::error_code& /*ec*/, 45 std::size_t /*bytes_transferred*/) 46 { 47 // Take ownership of the handler object. 48 wait_handler* h(static_cast(base)); CID 11127 (2): Unused pointer value (UNUSED_VALUE) CID 10928: Unused pointer value (UNUSED_VALUE) CID 10929 (#1 of 1): Unused pointer value (UNUSED_VALUE) returned_pointer: Pointer ""p.h"" returned by ""addressof(h->handler_)"" is never used. 49 ptr p = { boost::addressof(h->handler_), h, h }; 50 51 BOOST_ASIO_HANDLER_COMPLETION((h)); 52 53 // Make a copy of the handler so that the memory can be deallocated before 54 // the upcall is made. Even if we're not about to make an upcall, a 55 // sub-object of the handler may be the true owner of the memory associated 56 // with the handler. Consequently, a local copy of the handler is required 57 // to ensure that any owning sub-object remains valid until after we have 58 // deallocated the memory here. 59 detail::binder1 60 handler(h->handler_, h->ec_); 61 p.h = boost::addressof(handler.handler_); }}} boost/asio/",Bugs,new,To Be Determined,asio,Boost 1.52.0,Cosmetic,,,