Browse Source

AK: Properly limit the internal seekback span for CircularBuffer

I was originally thinking in the wrong direction when adding this limit,
we can at most read from the buffer until we reach the current write
head. Since that write head is the reference point for the distance,
we need to limit ourselves to that instead of the seekback limit (which
is the maximum of how far back the distance can be).
Tim Schumacher 2 năm trước cách đây
mục cha
commit
997e745e87
1 tập tin đã thay đổi với 1 bổ sung1 xóa
  1. 1 1
      AK/CircularBuffer.cpp

+ 1 - 1
AK/CircularBuffer.cpp

@@ -110,7 +110,7 @@ ReadonlyBytes CircularBuffer::next_read_span_with_seekback(size_t distance) cons
     // Note: We are adding the capacity once here to ensure that we can wrap around the negative space by using modulo.
     auto read_offset = (capacity() + m_reading_head + m_used_space - distance) % capacity();
 
-    return m_buffer.span().slice(read_offset, min(capacity() - read_offset, m_seekback_limit));
+    return m_buffer.span().slice(read_offset, min(capacity() - read_offset, distance));
 }
 
 size_t CircularBuffer::write(ReadonlyBytes bytes)