Change GetServerConfig() to return const ref. Change QuicTestClient::GetServerConfig() and SimpleQuicClient::GetServerConfig() to return const ref instead of value in order to eliminate a copy. This is only used in one test file, where operator[] cannot be used any longer as it is not constant. Change QuicTestClient::GetServerConfig() to require that QuicCryptoClientConfig::server_config_ to be set otherwise it crashes. This is safe since this method is only called by tests internally, and there are no callers in Chrome. Also remove unused QuicCryptoServerConfig::tag_value_map. PiperOrigin-RevId: 378863306
diff --git a/quic/core/crypto/quic_crypto_server_config.h b/quic/core/crypto/quic_crypto_server_config.h index 4f3ad08..15ce0f2 100644 --- a/quic/core/crypto/quic_crypto_server_config.h +++ b/quic/core/crypto/quic_crypto_server_config.h
@@ -507,9 +507,6 @@ // one-to-one, with the tags in |kexs| from the parent class. std::vector<std::unique_ptr<AsynchronousKeyExchange>> key_exchanges; - // tag_value_map contains the raw key/value pairs for the config. - QuicTagValueMap tag_value_map; - // channel_id_enabled is true if the config in |serialized| specifies that // ChannelIDs are supported. bool channel_id_enabled;
diff --git a/quic/test_tools/quic_test_client.cc b/quic/test_tools/quic_test_client.cc index bc1142d..598e14c 100644 --- a/quic/test_tools/quic_test_client.cc +++ b/quic/test_tools/quic_test_client.cc
@@ -618,16 +618,12 @@ ->cert_sct(); } -QuicTagValueMap QuicTestClient::GetServerConfig() const { +const QuicTagValueMap& QuicTestClient::GetServerConfig() const { QuicCryptoClientConfig* config = client_->crypto_config(); - QuicCryptoClientConfig::CachedState* state = + const QuicCryptoClientConfig::CachedState* state = config->LookupOrCreate(client_->server_id()); const CryptoHandshakeMessage* handshake_msg = state->GetServerConfig(); - if (handshake_msg != nullptr) { - return handshake_msg->tag_value_map(); - } else { - return QuicTagValueMap(); - } + return handshake_msg->tag_value_map(); } bool QuicTestClient::connected() const {
diff --git a/quic/test_tools/quic_test_client.h b/quic/test_tools/quic_test_client.h index e498e8e..fd42046 100644 --- a/quic/test_tools/quic_test_client.h +++ b/quic/test_tools/quic_test_client.h
@@ -281,8 +281,8 @@ // or the empty std::string if no signed timestamp was presented. const std::string& cert_sct() const; - // Get the server config map. - QuicTagValueMap GetServerConfig() const; + // Get the server config map. Server config must exist. + const QuicTagValueMap& GetServerConfig() const; void set_auto_reconnect(bool reconnect) { auto_reconnect_ = reconnect; }