diff --git a/api/transport/stun.cc b/api/transport/stun.cc index 97da5082e7..c359fd359d 100644 --- a/api/transport/stun.cc +++ b/api/transport/stun.cc @@ -587,7 +587,7 @@ bool StunMessage::AddFingerprint() { bool StunMessage::Read(ByteBufferReader* buf) { // Keep a copy of the buffer data around for later verification. - buffer_.assign(buf->Data(), buf->Length()); + buffer_.assign(reinterpret_cast(buf->Data()), buf->Length()); if (!buf->ReadUInt16(&type_)) { return false; diff --git a/p2p/base/pseudo_tcp.cc b/p2p/base/pseudo_tcp.cc index 9dec580b77..3aaa2ad065 100644 --- a/p2p/base/pseudo_tcp.cc +++ b/p2p/base/pseudo_tcp.cc @@ -1213,7 +1213,7 @@ void PseudoTcp::parseOptions(const char* data, uint32_t len) { // Content of this option. if (opt_len <= buf.Length()) { - applyOption(kind, buf.Data(), opt_len); + applyOption(kind, reinterpret_cast(buf.Data()), opt_len); buf.Consume(opt_len); } else { RTC_LOG(LS_ERROR) << "Invalid option length received."; diff --git a/rtc_base/byte_buffer.cc b/rtc_base/byte_buffer.cc index 8c3595617c..121097bae9 100644 --- a/rtc_base/byte_buffer.cc +++ b/rtc_base/byte_buffer.cc @@ -139,10 +139,6 @@ bool ByteBufferReader::ReadBytes(rtc::ArrayView val) { return ReadBytes(val.data(), val.size()); } -bool ByteBufferReader::ReadBytes(char* val, size_t len) { - return ReadBytes(reinterpret_cast(val), len); -} - // Private function supporting the other Read* functions. bool ByteBufferReader::ReadBytes(uint8_t* val, size_t len) { if (len > Length()) { diff --git a/rtc_base/byte_buffer.h b/rtc_base/byte_buffer.h index 9e169f221b..6df285ae6d 100644 --- a/rtc_base/byte_buffer.h +++ b/rtc_base/byte_buffer.h @@ -100,12 +100,6 @@ class ByteBufferWriterT { void WriteBytes(const uint8_t* val, size_t len) { WriteBytesInternal(reinterpret_cast(val), len); } - // For backwards compatibility: Write an array of char - // TODO(bugs.webrtc.org/15665): Remove when users converted - [[deprecated("Use WriteString")]] void WriteBytes(const char* val, - size_t len) { - WriteBytesInternal(reinterpret_cast(val), len); - } // Reserves the given number of bytes and returns a value_type* that can be // written into. Useful for functions that require a value_type* buffer and @@ -163,14 +157,10 @@ class ByteBufferReader { ByteBufferReader(const ByteBufferReader&) = delete; ByteBufferReader& operator=(const ByteBufferReader&) = delete; - // Returns start of unprocessed data. - // TODO(bugs.webrtc.org/15661): Deprecate and remove. - const char* Data() const { - return reinterpret_cast(bytes_ + start_); - } + const uint8_t* Data() const { return bytes_ + start_; } // Returns number of unprocessed bytes. size_t Length() const { return end_ - start_; } - // Returns a view of the unprocessed data. + // Returns a view of the unprocessed data. Does not move current position. rtc::ArrayView DataView() const { return rtc::ArrayView(bytes_ + start_, end_ - start_); } @@ -183,11 +173,8 @@ class ByteBufferReader { bool ReadUInt32(uint32_t* val); bool ReadUInt64(uint64_t* val); bool ReadUVarint(uint64_t* val); + // Copies the val.size() next bytes into val.data(). bool ReadBytes(rtc::ArrayView val); - // For backwards compatibility. - // TODO(bugs.webrtc.org/15661): Deprecate and remove. - [[deprecated("Read using ArrayView")]] bool ReadBytes(char* val, size_t len); - // Appends next `len` bytes from the buffer to `val`. Returns false // if there is less than `len` bytes left. bool ReadString(std::string* val, size_t len); diff --git a/rtc_base/server_socket_adapters.cc b/rtc_base/server_socket_adapters.cc index 47c19cbed9..0bef752f1e 100644 --- a/rtc_base/server_socket_adapters.cc +++ b/rtc_base/server_socket_adapters.cc @@ -75,7 +75,9 @@ void AsyncSocksProxyServerSocket::ProcessInput(char* data, size_t* len) { // Consume parsed data *len = response.Length(); - memmove(data, response.Data(), *len); + if (response.Length() > 0) { + memmove(data, response.DataView().data(), *len); + } } void AsyncSocksProxyServerSocket::DirectSend(const ByteBufferWriter& buf) {