Delete mutable rtc::CopyOnWriteBuffer::data

Bug: webrtc:12334
Change-Id: I8798248dc591c5b69ff9434e7afc76ed2c7b02cc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201205
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33053}
diff --git a/rtc_base/copy_on_write_buffer.h b/rtc_base/copy_on_write_buffer.h
index 87bf625fe..9ec72ee 100644
--- a/rtc_base/copy_on_write_buffer.h
+++ b/rtc_base/copy_on_write_buffer.h
@@ -95,14 +95,6 @@
     return buffer_->data<T>() + offset_;
   }
 
-  // TODO(bugs.webrtc.org/12334): Delete when all usage updated to MutableData()
-  template <typename T = uint8_t,
-            typename std::enable_if<
-                internal::BufferCompat<uint8_t, T>::value>::type* = nullptr>
-  T* data() {
-    return MutableData<T>();
-  }
-
   // Get const pointer to the data. This will not create a copy of the
   // underlying data if it is shared with other buffers.
   template <typename T = uint8_t,
@@ -154,12 +146,6 @@
     return !(*this == buf);
   }
 
-  // TODO(bugs.webrtc.org/12334): Delete when all usage updated to MutableData()
-  uint8_t& operator[](size_t index) {
-    RTC_DCHECK_LT(index, size());
-    return MutableData()[index];
-  }
-
   uint8_t operator[](size_t index) const {
     RTC_DCHECK_LT(index, size());
     return cdata()[index];
diff --git a/rtc_base/copy_on_write_buffer_unittest.cc b/rtc_base/copy_on_write_buffer_unittest.cc
index 5c29c10..d397868 100644
--- a/rtc_base/copy_on_write_buffer_unittest.cc
+++ b/rtc_base/copy_on_write_buffer_unittest.cc
@@ -261,47 +261,34 @@
   EXPECT_EQ(10u, buf2.capacity());
 }
 
-TEST(CopyOnWriteBufferTest, TestConstDataAccessor) {
+TEST(CopyOnWriteBufferTest, DataAccessorDoesntCloneData) {
   CopyOnWriteBuffer buf1(kTestData, 3, 10);
   CopyOnWriteBuffer buf2(buf1);
 
-  // .cdata() doesn't clone data.
-  const uint8_t* cdata1 = buf1.cdata();
-  const uint8_t* cdata2 = buf2.cdata();
-  EXPECT_EQ(cdata1, cdata2);
-
-  // Non-const .data() clones data if shared.
-  const uint8_t* data1 = buf1.data();
-  const uint8_t* data2 = buf2.data();
-  EXPECT_NE(data1, data2);
-  // buf1 was cloned above.
-  EXPECT_NE(data1, cdata1);
-  // Therefore buf2 was no longer sharing data and was not cloned.
-  EXPECT_EQ(data2, cdata1);
+  EXPECT_EQ(buf1.data(), buf2.data());
 }
 
-// TODO(bugs.webrtc.org/12334): Delete when all reads become const
+TEST(CopyOnWriteBufferTest, MutableDataClonesDataWhenShared) {
+  CopyOnWriteBuffer buf1(kTestData, 3, 10);
+  CopyOnWriteBuffer buf2(buf1);
+  const uint8_t* cdata = buf1.data();
+
+  uint8_t* data1 = buf1.MutableData();
+  uint8_t* data2 = buf2.MutableData();
+  // buf1 was cloned above.
+  EXPECT_NE(data1, cdata);
+  // Therefore buf2 was no longer sharing data and was not cloned.
+  EXPECT_EQ(data2, cdata);
+}
+
 TEST(CopyOnWriteBufferTest, SeveralReads) {
   CopyOnWriteBuffer buf1(kTestData, 3, 10);
   CopyOnWriteBuffer buf2(buf1);
 
   EnsureBuffersShareData(buf1, buf2);
-  // Non-const reads clone the data if shared.
   for (size_t i = 0; i != 3u; ++i) {
     EXPECT_EQ(buf1[i], kTestData[i]);
   }
-  EnsureBuffersDontShareData(buf1, buf2);
-}
-
-TEST(CopyOnWriteBufferTest, SeveralConstReads) {
-  CopyOnWriteBuffer buf1(kTestData, 3, 10);
-  CopyOnWriteBuffer buf2(buf1);
-
-  EnsureBuffersShareData(buf1, buf2);
-  const CopyOnWriteBuffer& cbuf1 = buf1;
-  for (size_t i = 0; i != 3u; ++i) {
-    EXPECT_EQ(cbuf1[i], kTestData[i]);
-  }
   EnsureBuffersShareData(buf1, buf2);
 }