mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00
Add CopyOnWriteBuffer::empty accessor
CopyOnWriteBuffer is a container-like type, lack of empty accessor is often surprising. Bug: None Change-Id: I9db1e3837aa596810729e9bf92e366fbce3908d3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328382 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Auto-Submit: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41234}
This commit is contained in:
parent
01859d41bf
commit
e0ec125dae
2 changed files with 14 additions and 0 deletions
|
@ -132,6 +132,8 @@ class RTC_EXPORT CopyOnWriteBuffer {
|
|||
return buffer_->data<T>() + offset_;
|
||||
}
|
||||
|
||||
bool empty() const { return size_ == 0; }
|
||||
|
||||
size_t size() const {
|
||||
RTC_DCHECK(IsConsistent());
|
||||
return size_;
|
||||
|
|
|
@ -46,11 +46,20 @@ void EnsureBuffersDontShareData(const CopyOnWriteBuffer& buf1,
|
|||
|
||||
TEST(CopyOnWriteBufferTest, TestCreateEmptyData) {
|
||||
CopyOnWriteBuffer buf(static_cast<const uint8_t*>(nullptr), 0);
|
||||
EXPECT_TRUE(buf.empty());
|
||||
EXPECT_EQ(buf.size(), 0u);
|
||||
EXPECT_EQ(buf.capacity(), 0u);
|
||||
EXPECT_EQ(buf.data(), nullptr);
|
||||
}
|
||||
|
||||
TEST(CopyOnWriteBufferTest, CreateEmptyDataWithCapacity) {
|
||||
CopyOnWriteBuffer buf(0, 16);
|
||||
EXPECT_TRUE(buf.empty());
|
||||
EXPECT_EQ(buf.size(), 0u);
|
||||
EXPECT_EQ(buf.capacity(), 16u);
|
||||
EXPECT_NE(buf.MutableData(), nullptr);
|
||||
}
|
||||
|
||||
TEST(CopyOnWriteBufferTest, TestMoveConstruct) {
|
||||
EXPECT_TRUE(std::is_nothrow_move_constructible_v<CopyOnWriteBuffer>);
|
||||
|
||||
|
@ -60,9 +69,11 @@ TEST(CopyOnWriteBufferTest, TestMoveConstruct) {
|
|||
const uint8_t* buf1_data = buf1.cdata();
|
||||
|
||||
CopyOnWriteBuffer buf2(std::move(buf1));
|
||||
EXPECT_TRUE(buf1.empty());
|
||||
EXPECT_EQ(buf1.size(), 0u);
|
||||
EXPECT_EQ(buf1.capacity(), 0u);
|
||||
EXPECT_EQ(buf1.data(), nullptr);
|
||||
EXPECT_FALSE(buf2.empty());
|
||||
EXPECT_EQ(buf2.size(), buf1_size);
|
||||
EXPECT_EQ(buf2.capacity(), buf1_capacity);
|
||||
EXPECT_EQ(buf2.data(), buf1_data);
|
||||
|
@ -127,6 +138,7 @@ TEST(CopyOnWriteBufferTest, SetEmptyData) {
|
|||
buf.SetData<uint8_t>(nullptr, 0);
|
||||
|
||||
EXPECT_EQ(0u, buf.size());
|
||||
EXPECT_TRUE(buf.empty());
|
||||
}
|
||||
|
||||
TEST(CopyOnWriteBufferTest, SetDataNoMoreThanCapacityDoesntCauseReallocation) {
|
||||
|
|
Loading…
Reference in a new issue