diff --git a/quic/core/quic_stream_sequencer.cc b/quic/core/quic_stream_sequencer.cc
index f5849f6..49f0917 100644
--- a/quic/core/quic_stream_sequencer.cc
+++ b/quic/core/quic_stream_sequencer.cc
@@ -5,6 +5,7 @@
 #include "net/third_party/quiche/src/quic/core/quic_stream_sequencer.h"
 
 #include <algorithm>
+#include <cstddef>
 #include <limits>
 #include <string>
 #include <utility>
@@ -13,6 +14,7 @@
 #include "net/third_party/quiche/src/quic/core/quic_packets.h"
 #include "net/third_party/quiche/src/quic/core/quic_stream.h"
 #include "net/third_party/quiche/src/quic/core/quic_stream_sequencer_buffer.h"
+#include "net/third_party/quiche/src/quic/core/quic_types.h"
 #include "net/third_party/quiche/src/quic/core/quic_utils.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_bug_tracker.h"
 #include "net/third_party/quiche/src/quic/platform/api/quic_clock.h"
@@ -43,14 +45,9 @@
   const QuicStreamOffset byte_offset = frame.offset;
   const size_t data_len = frame.data_length;
 
-  if (frame.fin) {
-    bool should_process_data = CloseStreamAtOffset(frame.offset + data_len);
-    if (data_len == 0) {
-      return;
-    }
-    if (!should_process_data) {
-      return;
-    }
+  if (frame.fin &&
+      (!CloseStreamAtOffset(frame.offset + data_len) || data_len == 0)) {
+    return;
   }
   OnFrameData(byte_offset, data_len, frame.data_buffer);
 }
@@ -191,7 +188,7 @@
   Readv(&iov, 1);
 }
 
-int QuicStreamSequencer::Readv(const struct iovec* iov, size_t iov_len) {
+size_t QuicStreamSequencer::Readv(const struct iovec* iov, size_t iov_len) {
   DCHECK(!blocked_);
   std::string error_details;
   size_t bytes_read;
@@ -201,11 +198,11 @@
     std::string details =
         quiche::QuicheStrCat("Stream ", stream_->id(), ": ", error_details);
     stream_->CloseConnectionWithDetails(read_error, details);
-    return static_cast<int>(bytes_read);
+    return bytes_read;
   }
 
   stream_->AddBytesConsumed(bytes_read);
-  return static_cast<int>(bytes_read);
+  return bytes_read;
 }
 
 bool QuicStreamSequencer::HasBytesToRead() const {
diff --git a/quic/core/quic_stream_sequencer.h b/quic/core/quic_stream_sequencer.h
index c3d34c0..68845b8 100644
--- a/quic/core/quic_stream_sequencer.h
+++ b/quic/core/quic_stream_sequencer.h
@@ -91,7 +91,7 @@
   // bytes read.  Any buffered data no longer in use will be released.
   // TODO(rch): remove this method and instead implement it as a helper method
   // based on GetReadableRegions and MarkConsumed.
-  int Readv(const struct iovec* iov, size_t iov_len);
+  size_t Readv(const struct iovec* iov, size_t iov_len);
 
   // Consumes |num_bytes| data.  Used in conjunction with |GetReadableRegions|
   // to do zero-copy reads.
diff --git a/quic/core/quic_stream_sequencer_test.cc b/quic/core/quic_stream_sequencer_test.cc
index 67051c2..7cd498e 100644
--- a/quic/core/quic_stream_sequencer_test.cc
+++ b/quic/core/quic_stream_sequencer_test.cc
@@ -63,7 +63,7 @@
     struct iovec iov;
     iov.iov_base = buffer;
     iov.iov_len = num_bytes;
-    ASSERT_EQ(static_cast<int>(num_bytes), sequencer_->Readv(&iov, 1));
+    ASSERT_EQ(num_bytes, sequencer_->Readv(&iov, 1));
   }
 
  protected:
