浏览代码

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 年之前
父节点
当前提交
997e745e87
共有 1 个文件被更改,包括 1 次插入1 次删除
  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)