CopyOnWriteBuffer::SetSize to smaller size memcpy less.

R=kwiberg@webrtc.org

Review URL: https://codereview.webrtc.org/2317283004 .

Cr-Commit-Position: refs/heads/master@{#14166}
This commit is contained in:
Danil Chapovalov 2016-09-09 17:32:33 +02:00
parent 96f2c4df31
commit 291cd8fac3

View File

@ -222,7 +222,13 @@ class CopyOnWriteBuffer {
return;
}
CloneDataIfReferenced(std::max(buffer_->capacity(), size));
// Clone data if referenced.
if (!buffer_->HasOneRef()) {
buffer_ = new RefCountedObject<Buffer>(
buffer_->data(),
std::min(buffer_->size(), size),
std::max(buffer_->capacity(), size));
}
buffer_->SetSize(size);
RTC_DCHECK(IsConsistent());
}