Convert CryptoFramer::ConstructHandshakeMessage to return unique_ptr
gfe-relnote: Use unique_ptr for memory management rather than bare pointer. No functional change intended, not flag-protected.
PiperOrigin-RevId: 238454581
Change-Id: I2f0875854d8bc1983c2e5197abab7741d1985028
diff --git a/quic/core/crypto/crypto_framer.cc b/quic/core/crypto/crypto_framer.cc
index 35c53a1..ddfd466 100644
--- a/quic/core/crypto/crypto_framer.cc
+++ b/quic/core/crypto/crypto_framer.cc
@@ -129,7 +129,7 @@
}
// static
-QuicData* CryptoFramer::ConstructHandshakeMessage(
+std::unique_ptr<QuicData> CryptoFramer::ConstructHandshakeMessage(
const CryptoHandshakeMessage& message) {
size_t num_entries = message.tag_value_map().size();
size_t pad_length = 0;
@@ -229,7 +229,7 @@
}
}
- return new QuicData(buffer.release(), len, true);
+ return QuicMakeUnique<QuicData>(buffer.release(), len, true);
}
void CryptoFramer::Clear() {
diff --git a/quic/core/crypto/crypto_framer.h b/quic/core/crypto/crypto_framer.h
index 7959c60..f20f040 100644
--- a/quic/core/crypto/crypto_framer.h
+++ b/quic/core/crypto/crypto_framer.h
@@ -82,7 +82,7 @@
// Returns a new QuicData owned by the caller that contains a serialized
// |message|, or nullptr if there was an error.
- static QuicData* ConstructHandshakeMessage(
+ static std::unique_ptr<QuicData> ConstructHandshakeMessage(
const CryptoHandshakeMessage& message);
// Debug only method which permits processing truncated messages.
diff --git a/quic/core/crypto/crypto_framer_test.cc b/quic/core/crypto/crypto_framer_test.cc
index d72355c..4ca98a5 100644
--- a/quic/core/crypto/crypto_framer_test.cc
+++ b/quic/core/crypto/crypto_framer_test.cc
@@ -79,7 +79,7 @@
};
CryptoFramer framer;
- std::unique_ptr<QuicData> data(framer.ConstructHandshakeMessage(message));
+ std::unique_ptr<QuicData> data = framer.ConstructHandshakeMessage(message);
ASSERT_TRUE(data != nullptr);
test::CompareCharArraysWithHexError("constructed packet", data->data(),
data->length(), AsChars(packet),
@@ -114,7 +114,7 @@
};
CryptoFramer framer;
- std::unique_ptr<QuicData> data(framer.ConstructHandshakeMessage(message));
+ std::unique_ptr<QuicData> data = framer.ConstructHandshakeMessage(message);
ASSERT_TRUE(data != nullptr);
test::CompareCharArraysWithHexError("constructed packet", data->data(),
@@ -141,7 +141,7 @@
};
CryptoFramer framer;
- std::unique_ptr<QuicData> data(framer.ConstructHandshakeMessage(message));
+ std::unique_ptr<QuicData> data = framer.ConstructHandshakeMessage(message);
ASSERT_TRUE(data != nullptr);
test::CompareCharArraysWithHexError("constructed packet", data->data(),
@@ -157,7 +157,7 @@
}
CryptoFramer framer;
- std::unique_ptr<QuicData> data(framer.ConstructHandshakeMessage(message));
+ std::unique_ptr<QuicData> data = framer.ConstructHandshakeMessage(message);
EXPECT_TRUE(data == nullptr);
}
@@ -191,7 +191,7 @@
};
CryptoFramer framer;
- std::unique_ptr<QuicData> data(framer.ConstructHandshakeMessage(message));
+ std::unique_ptr<QuicData> data = framer.ConstructHandshakeMessage(message);
ASSERT_TRUE(data != nullptr);
test::CompareCharArraysWithHexError("constructed packet", data->data(),
@@ -227,7 +227,7 @@
};
CryptoFramer framer;
- std::unique_ptr<QuicData> data(framer.ConstructHandshakeMessage(message));
+ std::unique_ptr<QuicData> data = framer.ConstructHandshakeMessage(message);
ASSERT_TRUE(data != nullptr);
test::CompareCharArraysWithHexError("constructed packet", data->data(),
diff --git a/quic/core/crypto/crypto_handshake_message.cc b/quic/core/crypto/crypto_handshake_message.cc
index d31a568..1bbed74 100644
--- a/quic/core/crypto/crypto_handshake_message.cc
+++ b/quic/core/crypto/crypto_handshake_message.cc
@@ -58,7 +58,7 @@
const QuicData& CryptoHandshakeMessage::GetSerialized() const {
if (!serialized_.get()) {
- serialized_.reset(CryptoFramer::ConstructHandshakeMessage(*this));
+ serialized_ = CryptoFramer::ConstructHandshakeMessage(*this);
}
return *serialized_;
}
diff --git a/quic/core/crypto/quic_crypto_server_config.cc b/quic/core/crypto/quic_crypto_server_config.cc
index d308619..54af8cf 100644
--- a/quic/core/crypto/quic_crypto_server_config.cc
+++ b/quic/core/crypto/quic_crypto_server_config.cc
@@ -323,8 +323,8 @@
if (options.id.empty()) {
// We need to ensure that the SCID changes whenever the server config does
// thus we make it a hash of the rest of the server config.
- std::unique_ptr<QuicData> serialized(
- CryptoFramer::ConstructHandshakeMessage(msg));
+ std::unique_ptr<QuicData> serialized =
+ CryptoFramer::ConstructHandshakeMessage(msg);
uint8_t scid_bytes[SHA256_DIGEST_LENGTH];
SHA256(reinterpret_cast<const uint8_t*>(serialized->data()),
@@ -340,8 +340,8 @@
// everything but itself and so extra tags should be added prior to the
// preceding if block.
- std::unique_ptr<QuicData> serialized(
- CryptoFramer::ConstructHandshakeMessage(msg));
+ std::unique_ptr<QuicData> serialized =
+ CryptoFramer::ConstructHandshakeMessage(msg);
auto config = QuicMakeUnique<QuicServerConfigProtobuf>();
config->set_config(std::string(serialized->AsStringPiece()));
diff --git a/quic/core/quic_connection_test.cc b/quic/core/quic_connection_test.cc
index eb9c0d9..0790ee9 100644
--- a/quic/core/quic_connection_test.cc
+++ b/quic/core/quic_connection_test.cc
@@ -7192,7 +7192,7 @@
CryptoHandshakeMessage message;
CryptoFramer framer;
message.set_tag(kCHLO);
- std::unique_ptr<QuicData> data(framer.ConstructHandshakeMessage(message));
+ std::unique_ptr<QuicData> data = framer.ConstructHandshakeMessage(message);
frame1_.stream_id = 10;
frame1_.data_buffer = data->data();
frame1_.data_length = data->length();
@@ -7208,7 +7208,7 @@
CryptoHandshakeMessage message;
CryptoFramer framer;
message.set_tag(kREJ);
- std::unique_ptr<QuicData> data(framer.ConstructHandshakeMessage(message));
+ std::unique_ptr<QuicData> data = framer.ConstructHandshakeMessage(message);
frame1_.stream_id = 10;
frame1_.data_buffer = data->data();
frame1_.data_length = data->length();
diff --git a/quic/core/quic_crypto_stream_test.cc b/quic/core/quic_crypto_stream_test.cc
index 2280434..ffadea6 100644
--- a/quic/core/quic_crypto_stream_test.cc
+++ b/quic/core/quic_crypto_stream_test.cc
@@ -80,7 +80,7 @@
void ConstructHandshakeMessage() {
CryptoFramer framer;
- message_data_.reset(framer.ConstructHandshakeMessage(message_));
+ message_data_ = framer.ConstructHandshakeMessage(message_);
}
protected:
diff --git a/quic/core/quic_packet_creator_test.cc b/quic/core/quic_packet_creator_test.cc
index 6727fca..255c530 100644
--- a/quic/core/quic_packet_creator_test.cc
+++ b/quic/core/quic_packet_creator_test.cc
@@ -1278,7 +1278,7 @@
message.set_minimum_size(kMaxPacketSize);
CryptoFramer framer;
std::unique_ptr<QuicData> message_data;
- message_data.reset(framer.ConstructHandshakeMessage(message));
+ message_data = framer.ConstructHandshakeMessage(message);
struct iovec iov;
MakeIOVector(QuicStringPiece(message_data->data(), message_data->length()),
diff --git a/quic/test_tools/crypto_test_utils.cc b/quic/test_tools/crypto_test_utils.cc
index 1339437..f20878f 100644
--- a/quic/test_tools/crypto_test_utils.cc
+++ b/quic/test_tools/crypto_test_utils.cc
@@ -910,7 +910,8 @@
// The CryptoHandshakeMessage needs to be serialized and parsed to ensure
// that any padding is included.
- std::unique_ptr<QuicData> bytes(CryptoFramer::ConstructHandshakeMessage(msg));
+ std::unique_ptr<QuicData> bytes =
+ CryptoFramer::ConstructHandshakeMessage(msg);
std::unique_ptr<CryptoHandshakeMessage> parsed(
CryptoFramer::ParseMessage(bytes->AsStringPiece()));
CHECK(parsed);