Simplify the BalsaVisitorInterface::OnInterimHeaders() signature. This CL simplifies BalsaVisitorInterface::OnInterimHeaders() to accept BalsaHeaders rather than std::unique<BalsaHeaders>, as BalsaHeaders is movable (but not copyable/assignable, so there will be no fear of unintended copying). Thanks ++birenroy@ for the suggestion in cl/523726651! PiperOrigin-RevId: 524360383
diff --git a/quiche/balsa/balsa_frame.cc b/quiche/balsa/balsa_frame.cc index f54ec16..ac5e018 100644 --- a/quiche/balsa/balsa_frame.cc +++ b/quiche/balsa/balsa_frame.cc
@@ -853,10 +853,8 @@ IsInterimResponse(headers_->parsed_response_code())) { // Deliver headers from this interim response but reset everything else to // prepare for the next set of headers. - auto interim_headers = - std::make_unique<BalsaHeaders>(std::move(*headers_)); + visitor_->OnInterimHeaders(std::move(*headers_)); Reset(); - visitor_->OnInterimHeaders(std::move(interim_headers)); checkpoint = message_start = message_current; continue; }
diff --git a/quiche/balsa/balsa_frame_test.cc b/quiche/balsa/balsa_frame_test.cc index 4edc5e1..13a704a 100644 --- a/quiche/balsa/balsa_frame_test.cc +++ b/quiche/balsa/balsa_frame_test.cc
@@ -9,7 +9,6 @@ #include <cstdint> #include <limits> #include <map> -#include <memory> #include <random> #include <sstream> #include <string> @@ -41,7 +40,6 @@ using ::testing::IsEmpty; using ::testing::Mock; using ::testing::NiceMock; -using ::testing::Pointee; using ::testing::Property; using ::testing::Range; using ::testing::StrEq; @@ -558,8 +556,7 @@ MOCK_METHOD(void, OnChunkLength, (size_t length), (override)); MOCK_METHOD(void, OnChunkExtensionInput, (absl::string_view input), (override)); - MOCK_METHOD(void, OnInterimHeaders, (std::unique_ptr<BalsaHeaders> headers), - (override)); + MOCK_METHOD(void, OnInterimHeaders, (BalsaHeaders headers), (override)); MOCK_METHOD(void, ContinueHeaderDone, (), (override)); MOCK_METHOD(void, HeaderDone, (), (override)); MOCK_METHOD(void, MessageDone, (), (override)); @@ -3700,8 +3697,8 @@ balsa_frame_.set_use_interim_headers_callback(true); InSequence s; - EXPECT_CALL(visitor_mock_, OnInterimHeaders(Pointee(Property( - &BalsaHeaders::parsed_response_code, 100)))); + EXPECT_CALL(visitor_mock_, OnInterimHeaders(Property( + &BalsaHeaders::parsed_response_code, 100))); EXPECT_CALL(visitor_mock_, HeaderDone()).Times(0); EXPECT_CALL(visitor_mock_, MessageDone()).Times(0); @@ -3759,8 +3756,8 @@ balsa_frame_.set_use_interim_headers_callback(true); InSequence s; - EXPECT_CALL(visitor_mock_, OnInterimHeaders(Pointee(Property( - &BalsaHeaders::parsed_response_code, 100)))); + EXPECT_CALL(visitor_mock_, OnInterimHeaders(Property( + &BalsaHeaders::parsed_response_code, 100))); ASSERT_EQ( balsa_frame_.ProcessInput(initial_headers.data(), initial_headers.size()), initial_headers.size()); @@ -3798,8 +3795,8 @@ balsa_frame_.set_use_interim_headers_callback(true); InSequence s; - EXPECT_CALL(visitor_mock_, OnInterimHeaders(Pointee(Property( - &BalsaHeaders::parsed_response_code, 100)))); + EXPECT_CALL(visitor_mock_, OnInterimHeaders(Property( + &BalsaHeaders::parsed_response_code, 100))); EXPECT_CALL(visitor_mock_, ContinueHeaderDone).Times(0); ASSERT_EQ( balsa_frame_.ProcessInput(initial_headers.data(), initial_headers.size()), @@ -3866,8 +3863,8 @@ balsa_frame_.set_use_interim_headers_callback(true); InSequence s; - EXPECT_CALL(visitor_mock_, OnInterimHeaders(Pointee(Property( - &BalsaHeaders::parsed_response_code, 100)))); + EXPECT_CALL(visitor_mock_, OnInterimHeaders(Property( + &BalsaHeaders::parsed_response_code, 100))); ASSERT_EQ( balsa_frame_.ProcessInput(initial_headers.data(), initial_headers.size()), initial_headers.size()); @@ -3930,8 +3927,8 @@ balsa_frame_.set_use_interim_headers_callback(true); InSequence s; - EXPECT_CALL(visitor_mock_, OnInterimHeaders(Pointee(Property( - &BalsaHeaders::parsed_response_code, 100)))); + EXPECT_CALL(visitor_mock_, OnInterimHeaders(Property( + &BalsaHeaders::parsed_response_code, 100))); EXPECT_CALL(visitor_mock_, HeaderDone()); ASSERT_EQ(balsa_frame_.ProcessInput(both_headers.data(), both_headers.size()), @@ -3962,10 +3959,10 @@ balsa_frame_.set_use_interim_headers_callback(true); InSequence s; - EXPECT_CALL(visitor_mock_, OnInterimHeaders(Pointee(Property( - &BalsaHeaders::parsed_response_code, 100)))); - EXPECT_CALL(visitor_mock_, OnInterimHeaders(Pointee(Property( - &BalsaHeaders::parsed_response_code, 103)))); + EXPECT_CALL(visitor_mock_, OnInterimHeaders(Property( + &BalsaHeaders::parsed_response_code, 100))); + EXPECT_CALL(visitor_mock_, OnInterimHeaders(Property( + &BalsaHeaders::parsed_response_code, 103))); EXPECT_CALL(visitor_mock_, HeaderDone()); ASSERT_EQ(balsa_frame_.ProcessInput(all_headers.data(), all_headers.size()),
diff --git a/quiche/balsa/balsa_visitor_interface.h b/quiche/balsa/balsa_visitor_interface.h index 89355f3..e2c4327 100644 --- a/quiche/balsa/balsa_visitor_interface.h +++ b/quiche/balsa/balsa_visitor_interface.h
@@ -6,7 +6,6 @@ #define QUICHE_BALSA_BALSA_VISITOR_INTERFACE_H_ #include <cstddef> -#include <memory> #include "absl/strings/string_view.h" #include "quiche/balsa/balsa_enums.h" @@ -132,7 +131,7 @@ // Arguments: // headers - contains the parsed headers in the order in which they occurred // in the interim response. - virtual void OnInterimHeaders(std::unique_ptr<BalsaHeaders> headers) = 0; + virtual void OnInterimHeaders(BalsaHeaders headers) = 0; // Summary: // Called when the 100 Continue headers are framed and processed. This
diff --git a/quiche/balsa/noop_balsa_visitor.h b/quiche/balsa/noop_balsa_visitor.h index 5645070..ce82d58 100644 --- a/quiche/balsa/noop_balsa_visitor.h +++ b/quiche/balsa/noop_balsa_visitor.h
@@ -6,7 +6,6 @@ #define QUICHE_BALSA_NOOP_BALSA_VISITOR_H_ #include <cstddef> -#include <memory> #include "absl/strings/string_view.h" #include "quiche/balsa/balsa_visitor_interface.h" @@ -47,7 +46,7 @@ absl::string_view /*reason_input*/) override {} void OnChunkLength(size_t /*chunk_length*/) override {} void OnChunkExtensionInput(absl::string_view /*input*/) override {} - void OnInterimHeaders(std::unique_ptr<BalsaHeaders> /*headers*/) override {} + void OnInterimHeaders(BalsaHeaders /*headers*/) override {} void ContinueHeaderDone() override {} void HeaderDone() override {} void MessageDone() override {}