equal
deleted
inserted
replaced
432 NS_ASSERT (CheckInternalState ()); |
432 NS_ASSERT (CheckInternalState ()); |
433 |
433 |
434 return delta; |
434 return delta; |
435 } |
435 } |
436 |
436 |
437 void |
437 int32_t |
438 Buffer::AddAtEnd (const Buffer &o) |
438 Buffer::AddAtEnd (const Buffer &o) |
439 { |
439 { |
|
440 int32_t orgStart = m_start; |
440 if (m_end == m_zeroAreaEnd && |
441 if (m_end == m_zeroAreaEnd && |
441 o.m_start == o.m_zeroAreaStart && |
442 o.m_start == o.m_zeroAreaStart && |
442 o.m_zeroAreaEnd - o.m_zeroAreaStart > 0) |
443 o.m_zeroAreaEnd - o.m_zeroAreaStart > 0) |
443 { |
444 { |
444 /** |
445 /** |
454 Buffer::Iterator dst = End (); |
455 Buffer::Iterator dst = End (); |
455 dst.Prev (endData); |
456 dst.Prev (endData); |
456 Buffer::Iterator src = o.End (); |
457 Buffer::Iterator src = o.End (); |
457 src.Prev (endData); |
458 src.Prev (endData); |
458 dst.Write (src, o.End ()); |
459 dst.Write (src, o.End ()); |
459 return; |
460 return m_start - orgStart; |
460 } |
461 } |
461 Buffer dst = CreateFullCopy (); |
462 Buffer dst = CreateFullCopy (); |
462 Buffer src = o.CreateFullCopy (); |
463 Buffer src = o.CreateFullCopy (); |
463 |
464 |
464 dst.AddAtEnd (src.GetSize ()); |
465 dst.AddAtEnd (src.GetSize ()); |
465 Buffer::Iterator destStart = dst.End (); |
466 Buffer::Iterator destStart = dst.End (); |
466 destStart.Prev (src.GetSize ()); |
467 destStart.Prev (src.GetSize ()); |
467 destStart.Write (src.Begin (), src.End ()); |
468 destStart.Write (src.Begin (), src.End ()); |
468 *this = dst; |
469 *this = dst; |
|
470 return m_start - orgStart; |
469 } |
471 } |
470 |
472 |
471 void |
473 void |
472 Buffer::RemoveAtStart (uint32_t start) |
474 Buffer::RemoveAtStart (uint32_t start) |
473 { |
475 { |