Use absl::string_view in SDP-related utilities
A step towards reduced copying in SDP parsing.
Bug: None
Change-Id: I3a5d89f483c1809929b7160b563c67b040c9df41
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/233080
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35122}
diff --git a/api/candidate.cc b/api/candidate.cc
index ad65121..2da2468 100644
--- a/api/candidate.cc
+++ b/api/candidate.cc
@@ -27,14 +27,14 @@
network_cost_(0) {}
Candidate::Candidate(int component,
- const std::string& protocol,
+ absl::string_view protocol,
const rtc::SocketAddress& address,
uint32_t priority,
- const std::string& username,
- const std::string& password,
- const std::string& type,
+ absl::string_view username,
+ absl::string_view password,
+ absl::string_view type,
uint32_t generation,
- const std::string& foundation,
+ absl::string_view foundation,
uint16_t network_id,
uint16_t network_cost)
: id_(rtc::CreateRandomString(8)),
@@ -153,4 +153,11 @@
return copy;
}
+void Candidate::Assign(std::string& s, absl::string_view view) {
+ // Assigning via a temporary object, like s = std::string(view), results in
+ // binary size bloat. To avoid that, extract pointer and size from the
+ // string view, and use std::string::assign method.
+ s.assign(view.data(), view.size());
+}
+
} // namespace cricket