diff --git a/rtc_base/copy_on_write_buffer.cc b/rtc_base/copy_on_write_buffer.cc index 850327b088..d8ab53cb24 100644 --- a/rtc_base/copy_on_write_buffer.cc +++ b/rtc_base/copy_on_write_buffer.cc @@ -23,7 +23,7 @@ CopyOnWriteBuffer::CopyOnWriteBuffer() : offset_(0), size_(0) { CopyOnWriteBuffer::CopyOnWriteBuffer(const CopyOnWriteBuffer& buf) : buffer_(buf.buffer_), offset_(buf.offset_), size_(buf.size_) {} -CopyOnWriteBuffer::CopyOnWriteBuffer(CopyOnWriteBuffer&& buf) +CopyOnWriteBuffer::CopyOnWriteBuffer(CopyOnWriteBuffer&& buf) noexcept : buffer_(std::move(buf.buffer_)), offset_(buf.offset_), size_(buf.size_) { buf.offset_ = 0; buf.size_ = 0; diff --git a/rtc_base/copy_on_write_buffer.h b/rtc_base/copy_on_write_buffer.h index 849f5f5df2..af6e868d7d 100644 --- a/rtc_base/copy_on_write_buffer.h +++ b/rtc_base/copy_on_write_buffer.h @@ -36,7 +36,7 @@ class RTC_EXPORT CopyOnWriteBuffer { // Share the data with an existing buffer. CopyOnWriteBuffer(const CopyOnWriteBuffer& buf); // Move contents from an existing buffer. - CopyOnWriteBuffer(CopyOnWriteBuffer&& buf); + CopyOnWriteBuffer(CopyOnWriteBuffer&& buf) noexcept; // Construct a buffer from a string, convenient for unittests. explicit CopyOnWriteBuffer(absl::string_view s); diff --git a/rtc_base/copy_on_write_buffer_unittest.cc b/rtc_base/copy_on_write_buffer_unittest.cc index ad2c4e0fba..8a9fc4e2f4 100644 --- a/rtc_base/copy_on_write_buffer_unittest.cc +++ b/rtc_base/copy_on_write_buffer_unittest.cc @@ -52,6 +52,8 @@ TEST(CopyOnWriteBufferTest, TestCreateEmptyData) { } TEST(CopyOnWriteBufferTest, TestMoveConstruct) { + EXPECT_TRUE(std::is_nothrow_move_constructible_v); + CopyOnWriteBuffer buf1(kTestData, 3, 10); size_t buf1_size = buf1.size(); size_t buf1_capacity = buf1.capacity();