From 51ee67dc8fb3503049d8a08c962a2992d01c7461 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Fri, 17 Jan 2003 12:32:09 +0000 Subject: [PATCH] Fixed an obvious bug, simplified a bit the code git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2470 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/support/BufferIO.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/kits/support/BufferIO.cpp b/src/kits/support/BufferIO.cpp index 9a4b7da13b..867bf11ee8 100644 --- a/src/kits/support/BufferIO.cpp +++ b/src/kits/support/BufferIO.cpp @@ -123,17 +123,16 @@ BBufferIO::ReadAt(off_t pos, void *buffer, size_t size) || pos > m_buffer_start + m_buffer_used) { // ...cache as much as we can from the stream - ssize_t readSize = m_stream->ReadAt(pos, m_buffer, m_buffer_phys); - m_buffer_used += readSize; - - if (readSize > 0) + m_buffer_used = m_stream->ReadAt(pos, m_buffer, m_buffer_phys); + + if (m_buffer_used > 0) m_buffer_start = pos; // The data is buffered starting from this offset } size = min_c(size, m_buffer_used); // copy data from the cache to the given buffer - memcpy(buffer, m_buffer + pos, size); + memcpy(buffer, m_buffer + pos - m_buffer_start, size); return size; }