Clean up quic_stream_priority.cc - Move serialized dictionary instead of copying it - Consolidate redundant is_integer/GetInteger and is_boolean/GetBoolean with GetIfInteger and GetIfBoolean - Remove likely unintentional copy of item due to lack of `&` on declaration PiperOrigin-RevId: 958406997
diff --git a/quiche/quic/core/quic_stream_priority.cc b/quiche/quic/core/quic_stream_priority.cc index 726cc17..ed5df86 100644 --- a/quiche/quic/core/quic_stream_priority.cc +++ b/quiche/quic/core/quic_stream_priority.cc
@@ -39,7 +39,7 @@ return ""; } - return *priority_field_value; + return *std::move(priority_field_value); } std::optional<HttpStreamPriority> ParsePriorityFieldValue( @@ -67,17 +67,19 @@ continue; } - const quiche::structured_headers::Item item = member[0].item; - if (name == HttpStreamPriority::kUrgencyKey && item.is_integer()) { - int parsed_urgency = item.GetInteger(); + const quiche::structured_headers::Item& item = member[0].item; + if (name == HttpStreamPriority::kUrgencyKey) { + const int64_t* parsed_urgency = item.GetIfInteger(); // Ignore out-of-range values. - if (parsed_urgency >= HttpStreamPriority::kMinimumUrgency && - parsed_urgency <= HttpStreamPriority::kMaximumUrgency) { - urgency = parsed_urgency; + if (parsed_urgency && + *parsed_urgency >= HttpStreamPriority::kMinimumUrgency && + *parsed_urgency <= HttpStreamPriority::kMaximumUrgency) { + urgency = *parsed_urgency; } - } else if (name == HttpStreamPriority::kIncrementalKey && - item.is_boolean()) { - incremental = item.GetBoolean(); + } else if (name == HttpStreamPriority::kIncrementalKey) { + if (const bool* parsed_incremental = item.GetIfBoolean()) { + incremental = *parsed_incremental; + } } }