void IOBuf::prependChain(unique_ptr<IOBuf>&& iobuf) {
  // Take ownership of the specified IOBuf
  IOBuf* other = iobuf.release();

  // Remember the pointer to the tail of the other chain
  IOBuf* otherTail = other->prev_;

  // Hook up prev_->next_ to point at the start of the other chain,
  // and other->prev_ to point at prev_
  prev_->next_ = other;
  other->prev_ = prev_;

  // Hook up otherTail->next_ to point at us,
  // and prev_ to point back at otherTail,
  otherTail->next_ = this;
  prev_ = otherTail;
}
void IOBuf::prependChain(unique_ptr<IOBuf>&& iobuf) {
   
  IOBuf* other = iobuf.release();

   
  IOBuf* otherTail = other->prev_;

   
   
  prev_->next_ = other;
  other->prev_ = prev_;

   
   
  otherTail->next_ = this;
  prev_ = otherTail;
}