Implement move constructor for RTPFragmentationHeader.

This allows returning RTPFragmentationHeader from a method and assigning
the results to a variable.

BUG=webrtc:7760

Review-Url: https://codereview.webrtc.org/3002283002
Cr-Commit-Position: refs/heads/master@{#19556}
This commit is contained in:
sakal 2017-08-28 03:22:39 -07:00 committed by Commit Bot
parent cfc29f4c9a
commit 34960de3fb

View File

@ -91,6 +91,11 @@ class RTPFragmentationHeader {
fragmentationTimeDiff(NULL),
fragmentationPlType(NULL) {}
RTPFragmentationHeader(RTPFragmentationHeader&& other)
: RTPFragmentationHeader() {
std::swap(*this, other);
}
~RTPFragmentationHeader() {
delete[] fragmentationOffset;
delete[] fragmentationLength;
@ -98,6 +103,17 @@ class RTPFragmentationHeader {
delete[] fragmentationPlType;
}
void operator=(RTPFragmentationHeader&& other) { std::swap(*this, other); }
friend void swap(RTPFragmentationHeader& a, RTPFragmentationHeader& b) {
using std::swap;
swap(a.fragmentationVectorSize, b.fragmentationVectorSize);
swap(a.fragmentationOffset, b.fragmentationOffset);
swap(a.fragmentationLength, b.fragmentationLength);
swap(a.fragmentationTimeDiff, b.fragmentationTimeDiff);
swap(a.fragmentationPlType, b.fragmentationPlType);
}
void CopyFrom(const RTPFragmentationHeader& src) {
if (this == &src) {
return;