Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(309)

Unified Diff: webrtc/p2p/base/stun.cc

Issue 2735523002: Make StunMessage::attrs_ a vector of unique_ptrs instead of a pointer to a vector of pointers. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/p2p/base/stun.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/p2p/base/stun.cc
diff --git a/webrtc/p2p/base/stun.cc b/webrtc/p2p/base/stun.cc
index b66ac0308a326418b580a5c0e92a3fddf7d2cec6..af870d12d5975c9d7330daf92e5b1cb39541c048 100644
--- a/webrtc/p2p/base/stun.cc
+++ b/webrtc/p2p/base/stun.cc
@@ -49,13 +49,6 @@ StunMessage::StunMessage()
length_(0),
transaction_id_(EMPTY_TRANSACTION_ID) {
RTC_DCHECK(IsValidTransactionId(transaction_id_));
- attrs_ = new std::vector<StunAttribute*>();
-}
-
-StunMessage::~StunMessage() {
- for (size_t i = 0; i < attrs_->size(); i++)
- delete (*attrs_)[i];
- delete attrs_;
}
bool StunMessage::IsLegacy() const {
@@ -77,7 +70,7 @@ void StunMessage::AddAttribute(StunAttribute* attr) {
// Fail any attributes that aren't valid for this type of message.
RTC_DCHECK_EQ(attr->value_type(), GetAttributeValueType(attr->type()));
- attrs_->push_back(attr);
+ attrs_.emplace_back(attr);
attr->SetOwner(this);
size_t attr_length = attr->length();
if (attr_length % 4 != 0) {
@@ -328,7 +321,7 @@ bool StunMessage::Read(ByteBufferReader* buf) {
if (length_ != buf->Length())
return false;
- attrs_->resize(0);
+ attrs_.resize(0);
size_t rest = buf->Length() - length_;
while (buf->Length() > rest) {
@@ -350,8 +343,7 @@ bool StunMessage::Read(ByteBufferReader* buf) {
} else {
if (!attr->Read(buf))
return false;
- // TODO(honghaiz): Change |attrs_| to be a vector of unique_ptrs.
- attrs_->push_back(attr.release());
+ attrs_.push_back(std::move(attr));
}
}
@@ -366,11 +358,12 @@ bool StunMessage::Write(ByteBufferWriter* buf) const {
buf->WriteUInt32(kStunMagicCookie);
buf->WriteString(transaction_id_);
- for (size_t i = 0; i < attrs_->size(); ++i) {
- buf->WriteUInt16((*attrs_)[i]->type());
- buf->WriteUInt16(static_cast<uint16_t>((*attrs_)[i]->length()));
- if (!(*attrs_)[i]->Write(buf))
+ for (const auto& attr : attrs_) {
+ buf->WriteUInt16(attr->type());
+ buf->WriteUInt16(static_cast<uint16_t>(attr->length()));
+ if (!attr->Write(buf)) {
return false;
+ }
}
return true;
@@ -402,9 +395,10 @@ StunAttribute* StunMessage::CreateAttribute(int type, size_t length) /*const*/ {
}
const StunAttribute* StunMessage::GetAttribute(int type) const {
- for (size_t i = 0; i < attrs_->size(); ++i) {
- if ((*attrs_)[i]->type() == type)
- return (*attrs_)[i];
+ for (const auto& attr : attrs_) {
+ if (attr->type() == type) {
+ return attr.get();
+ }
}
return NULL;
}
« no previous file with comments | « webrtc/p2p/base/stun.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698