Refactor GetOrCreateStream() and GetOrCreateDynamicStream() and remove
StreamHandler.

StreamHandler is no longer needed since pending stream handling is done
separately from normal streams.

GetOrCreateStreamImpl() is no longer needed since GetOrCreateStream() now only
deals with normal streams.

gfe-relnote: code refactor, no bahavior change. Not flag protected.
PiperOrigin-RevId: 249158527
Change-Id: I579d1ce1705743e5ebbe2dc6f699705620a46ac4
diff --git a/quic/core/quic_session.cc b/quic/core/quic_session.cc
index 6d526ab..f605e56 100644
--- a/quic/core/quic_session.cc
+++ b/quic/core/quic_session.cc
@@ -202,9 +202,9 @@
     return;
   }
 
-  StreamHandler handler = GetOrCreateStreamImpl(stream_id);
+  QuicStream* stream = GetOrCreateStream(stream_id);
 
-  if (!handler.stream) {
+  if (!stream) {
     // The stream no longer exists, but we may still be interested in the
     // final stream byte offset sent by the peer. A frame with a FIN can give
     // us this offset.
@@ -214,15 +214,14 @@
     }
     return;
   }
-  if (eliminate_static_stream_map_ && frame.fin &&
-      handler.stream->is_static()) {
+  if (eliminate_static_stream_map_ && frame.fin && stream->is_static()) {
     QUIC_RELOADABLE_FLAG_COUNT_N(quic_eliminate_static_stream_map_3, 1, 17);
     connection()->CloseConnection(
         QUIC_INVALID_STREAM_ID, "Attempt to close a static stream",
         ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
     return;
   }
-  handler.stream->OnStreamFrame(frame);
+  stream->OnStreamFrame(frame);
 }
 
 void QuicSession::OnCryptoFrame(const QuicCryptoFrame& frame) {
@@ -373,20 +372,20 @@
     return;
   }
 
-  StreamHandler handler = GetOrCreateStreamImpl(stream_id);
+  QuicStream* stream = GetOrCreateStream(stream_id);
 
-  if (!handler.stream) {
+  if (!stream) {
     HandleRstOnValidNonexistentStream(frame);
     return;  // Errors are handled by GetOrCreateStream.
   }
-  if (eliminate_static_stream_map_ && handler.stream->is_static()) {
+  if (eliminate_static_stream_map_ && stream->is_static()) {
     QUIC_RELOADABLE_FLAG_COUNT_N(quic_eliminate_static_stream_map_3, 3, 17);
     connection()->CloseConnection(
         QUIC_INVALID_STREAM_ID, "Attempt to reset a static stream",
         ConnectionCloseBehavior::SEND_CONNECTION_CLOSE_PACKET);
     return;
   }
-  handler.stream->OnStreamReset(frame);
+  stream->OnStreamReset(frame);
 }
 
 void QuicSession::OnGoAway(const QuicGoAwayFrame& frame) {
@@ -1266,24 +1265,17 @@
 }
 
 QuicStream* QuicSession::GetOrCreateStream(const QuicStreamId stream_id) {
-  StreamHandler handler = GetOrCreateStreamImpl(stream_id);
-  DCHECK(!handler.is_pending);
-  return handler.stream;
-}
-
-QuicSession::StreamHandler QuicSession::GetOrCreateStreamImpl(
-    QuicStreamId stream_id) {
   if (eliminate_static_stream_map_ &&
       QuicUtils::IsCryptoStreamId(connection_->transport_version(),
                                   stream_id)) {
     QUIC_RELOADABLE_FLAG_COUNT_N(quic_eliminate_static_stream_map_3, 13, 17);
-    return StreamHandler(GetMutableCryptoStream());
+    return GetMutableCryptoStream();
   }
   StaticStreamMap::iterator it = static_stream_map_.find(stream_id);
   if (it != static_stream_map_.end()) {
-    return StreamHandler(it->second);
+    return it->second;
   }
-  return GetOrCreateDynamicStreamImpl(stream_id);
+  return GetOrCreateDynamicStream(stream_id);
 }
 
 void QuicSession::StreamDraining(QuicStreamId stream_id) {
@@ -1337,28 +1329,21 @@
 
 QuicStream* QuicSession::GetOrCreateDynamicStream(
     const QuicStreamId stream_id) {
-  StreamHandler handler = GetOrCreateDynamicStreamImpl(stream_id);
-  DCHECK(!handler.is_pending);
-  return handler.stream;
-}
-
-QuicSession::StreamHandler QuicSession::GetOrCreateDynamicStreamImpl(
-    QuicStreamId stream_id) {
   DCHECK(!QuicContainsKey(static_stream_map_, stream_id))
       << "Attempt to call GetOrCreateDynamicStream for a static stream";
 
   DynamicStreamMap::iterator it = dynamic_stream_map_.find(stream_id);
   if (it != dynamic_stream_map_.end()) {
-    return StreamHandler(it->second.get());
+    return it->second.get();
   }
 
   if (IsClosedStream(stream_id)) {
-    return StreamHandler();
+    return nullptr;
   }
 
   if (!IsIncomingStream(stream_id)) {
     HandleFrameOnNonexistentOutgoingStream(stream_id);
-    return StreamHandler();
+    return nullptr;
   }
 
   // TODO(fkastenholz): If we are creating a new stream and we have
@@ -1367,7 +1352,7 @@
   // B) reject stream creation ("return nullptr")
 
   if (!MaybeIncreaseLargestPeerStreamId(stream_id)) {
-    return StreamHandler();
+    return nullptr;
   }
 
   if (connection_->transport_version() != QUIC_VERSION_99) {
@@ -1377,11 +1362,11 @@
             GetNumOpenIncomingStreams())) {
       // Refuse to open the stream.
       SendRstStream(stream_id, QUIC_REFUSED_STREAM, 0);
-      return StreamHandler();
+      return nullptr;
     }
   }
 
-  return StreamHandler(CreateIncomingStream(stream_id));
+  return CreateIncomingStream(stream_id);
 }
 
 void QuicSession::set_largest_peer_created_stream_id(