Add DCHECK to VersionUsesQpack(). QPACK streams can only be instantiated if the transport version supports unidirectional stream types. Document this using a DCHECK. gfe-relnote: Add DCHECK that obviously will never fail. PiperOrigin-RevId: 253273733 Change-Id: Iefb3f56f97ef54322f850ad58ecbfe1ec9c522a1
diff --git a/quic/core/quic_versions.h b/quic/core/quic_versions.h index b33e084..8a64a12 100644 --- a/quic/core/quic_versions.h +++ b/quic/core/quic_versions.h
@@ -355,6 +355,12 @@ return transport_version == QUIC_VERSION_99; } +// Returns whether |transport_version| has HTTP/3 unidirectional stream type. +QUIC_EXPORT_PRIVATE inline bool VersionHasStreamType( + QuicTransportVersion transport_version) { + return transport_version == QUIC_VERSION_99; +} + // If true: // * QuicSpdySession instantiates a QPACK encoder and decoder; // * HEADERS frames (containing headers or trailers) are sent on @@ -377,6 +383,7 @@ const bool uses_qpack = (transport_version == QUIC_VERSION_99); if (uses_qpack) { DCHECK(VersionHasDataFrameHeader(transport_version)); + DCHECK(VersionHasStreamType(transport_version)); } return uses_qpack; } @@ -397,12 +404,6 @@ return transport_version == QUIC_VERSION_99; } -// Returns whether |transport_version| has HTTP/3 stream type. -QUIC_EXPORT_PRIVATE inline bool VersionHasStreamType( - QuicTransportVersion transport_version) { - return transport_version == QUIC_VERSION_99; -} - // Returns the ALPN string to use in TLS for this version of QUIC. QUIC_EXPORT_PRIVATE std::string AlpnForVersion( ParsedQuicVersion parsed_version);