@@ -32,9 +32,9 @@ auto create_packet(BufferStore& bufstore) {
3232 // get buffer (as packet + data)
3333 auto * ptr = (Packet*) bufstore.get_buffer ();
3434 // place packet at front of buffer
35- new (ptr) Packet (MTU, 0 , { &bufstore, &BufferStore::release} );
35+ new (ptr) Packet (MTU, 0 , &bufstore);
3636 // regular shared_ptr that calls delete on Packet
37- return std::shared_ptr <Packet>(ptr);
37+ return std::unique_ptr <Packet>(ptr);
3838}
3939
4040void Service::start (const std::string&)
@@ -52,7 +52,7 @@ void Service::start(const std::string&)
5252 // Chain packets
5353 for (int i = 0 ; i < chain_size - 1 ; i++){
5454 auto chained_packet = create_packet (bufstore_);
55- packet->chain (chained_packet);
55+ packet->chain (std::move ( chained_packet) );
5656 CHECKSERT (bufstore_.available () == BUFFER_CNT - i - 2 , " Bufcount is now %i" , BUFFER_CNT - i - 2 );
5757 }
5858
@@ -70,20 +70,20 @@ void Service::start(const std::string&)
7070 // Chain
7171 for (int i = 0 ; i < chain_size - 1 ; i++){
7272 auto chained_packet = create_packet (bufstore_);
73- packet->chain (chained_packet);
73+ packet->chain (std::move ( chained_packet) );
7474 CHECKSERT (bufstore_.available () == BUFFER_CNT - i - 2 , " Bufcount is now %i" , BUFFER_CNT - i - 2 );
7575 }
7676
7777 INFO (" Test 2" ," Releasing packet-chain one-by-one" );
7878
7979 // Release one-by-one
80- auto tail = packet;
80+ auto tail = std::move ( packet) ;
8181 size_t i = 0 ;
8282 while (tail && i < BUFFER_CNT - 1 ) {
83- tail = tail->detach_tail ();
8483 CHECKSERT (bufstore_.available () == i,
8584 " Bufcount is now %i == %i" , i,
8685 bufstore_.available ());
86+ tail = tail->detach_tail ();
8787 i++;
8888 }
8989
0 commit comments