Adopt absl::string_view in CopyOnWriteBuffer
Bug: webrtc:13579
Change-Id: Ia2b99a28ed0c103215e8616da67a5c961b957199
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260465
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36832}
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index 67566ce..d8b4b84 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -449,6 +449,7 @@
"../modules/audio_coding:audio_network_adaptor",
"../modules/rtp_rtcp:rtp_rtcp_format",
"../rtc_base:checks",
+ "../rtc_base:copy_on_write_buffer",
"../rtc_base:ignore_wundef",
"../rtc_base:logging",
"../rtc_base:protobuf_utils",
diff --git a/logging/rtc_event_log/rtc_event_log_parser.cc b/logging/rtc_event_log/rtc_event_log_parser.cc
index b4392e8..4033a59 100644
--- a/logging/rtc_event_log/rtc_event_log_parser.cc
+++ b/logging/rtc_event_log/rtc_event_log_parser.cc
@@ -38,6 +38,7 @@
#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
#include "modules/rtp_rtcp/source/rtp_packet_received.h"
#include "rtc_base/checks.h"
+#include "rtc_base/copy_on_write_buffer.h"
#include "rtc_base/logging.h"
#include "rtc_base/numerics/safe_conversions.h"
#include "rtc_base/numerics/sequence_number_util.h"
@@ -1637,7 +1638,8 @@
// Use RtpPacketReceived instead of more generic RtpPacket because former
// has a buildin convertion to RTPHeader.
RtpPacketReceived rtp_header;
- RTC_PARSE_CHECK_OR_RETURN(rtp_header.Parse(rtp_packet.header()));
+ RTC_PARSE_CHECK_OR_RETURN(
+ rtp_header.Parse(rtc::CopyOnWriteBuffer(rtp_packet.header())));
if (const RtpHeaderExtensionMap* extension_map = GetRtpHeaderExtensionMap(
rtp_packet.incoming(), rtp_header.Ssrc())) {
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index b4cf481..33cd57f 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -183,6 +183,7 @@
"../api:scoped_refptr",
"system:rtc_export",
]
+ absl_deps = [ "//third_party/abseil-cpp/absl/strings" ]
}
rtc_library("event_tracer") {
diff --git a/rtc_base/copy_on_write_buffer.cc b/rtc_base/copy_on_write_buffer.cc
index f3cc710..850327b 100644
--- a/rtc_base/copy_on_write_buffer.cc
+++ b/rtc_base/copy_on_write_buffer.cc
@@ -12,6 +12,8 @@
#include <stddef.h>
+#include "absl/strings/string_view.h"
+
namespace rtc {
CopyOnWriteBuffer::CopyOnWriteBuffer() : offset_(0), size_(0) {
@@ -28,7 +30,7 @@
RTC_DCHECK(IsConsistent());
}
-CopyOnWriteBuffer::CopyOnWriteBuffer(const std::string& s)
+CopyOnWriteBuffer::CopyOnWriteBuffer(absl::string_view s)
: CopyOnWriteBuffer(s.data(), s.length()) {}
CopyOnWriteBuffer::CopyOnWriteBuffer(size_t size)
diff --git a/rtc_base/copy_on_write_buffer.h b/rtc_base/copy_on_write_buffer.h
index 6837f06..849f5f5 100644
--- a/rtc_base/copy_on_write_buffer.h
+++ b/rtc_base/copy_on_write_buffer.h
@@ -19,6 +19,7 @@
#include <type_traits>
#include <utility>
+#include "absl/strings/string_view.h"
#include "api/scoped_refptr.h"
#include "rtc_base/buffer.h"
#include "rtc_base/checks.h"
@@ -38,7 +39,7 @@
CopyOnWriteBuffer(CopyOnWriteBuffer&& buf);
// Construct a buffer from a string, convenient for unittests.
- CopyOnWriteBuffer(const std::string& s);
+ explicit CopyOnWriteBuffer(absl::string_view s);
// Construct a buffer with the specified number of uninitialized bytes.
explicit CopyOnWriteBuffer(size_t size);