When calling clone(), _data_packet always point to the root of a packet...
When calling clone(), _data_packet always point to the root of a packet cloning chain/tree instead of the packet on which clone() is called. This allows to kill and effectively free intermediate cloned packets in the chain as described in http://librelist.com/browser//click/2014/11/24/clones-of-clones/ . I use a "while" instead of a "if" to go up to the root and not just the parent _data_packet, if a chain still exists. Normally, if people always use clone() that should not happen, but I'm not sure that all elements do not rely on the possibility of making "chains".
Showing with 5 additions and 2 deletions