X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2Finternal%2Fio%2FRollingBuffer_p.cpp;h=c712b57440578be99bbf4b0088146311c5534773;hb=153d8f44a0ae6aebd0323289d961e5c00ea2b212;hp=c3f709d6fdf5ad1a13ac998b80ef95bdac7da95b;hpb=e4cb7afa9b8774b4db39db1c60607460676419d3;p=bamtools.git diff --git a/src/api/internal/io/RollingBuffer_p.cpp b/src/api/internal/io/RollingBuffer_p.cpp index c3f709d..c712b57 100644 --- a/src/api/internal/io/RollingBuffer_p.cpp +++ b/src/api/internal/io/RollingBuffer_p.cpp @@ -2,7 +2,7 @@ // RollingBuffer_p.cpp (c) 2011 Derek Barnett // Marth Lab, Department of Biology, Boston College // --------------------------------------------------------------------------- -// Last modified: 10 November 2011 (DB) +// Last modified: 8 December 2011 (DB) // --------------------------------------------------------------------------- // Provides a dynamic I/O FIFO byte queue, which removes bytes as they are // read from the front of the buffer and grows to accept bytes being written @@ -167,6 +167,10 @@ void RollingBuffer::Free(size_t n) { size_t RollingBuffer::IndexOf(char c) const { + // skip processing if empty buffer + if ( IsEmpty() ) + return string::npos; + size_t index(0); // iterate over byte arrays @@ -233,7 +237,7 @@ size_t RollingBuffer::ReadLine(char* dest, size_t max) { bytesReadSoFar += bytesToRead; Free(bytesToRead); - if ( !((bytesReadSoFar < index+1)&&(bytesReadSoFar < max-1)) ) + if ( !((bytesReadSoFar < index+1) && (bytesReadSoFar < max-1)) ) finished = true; } @@ -270,7 +274,7 @@ char* RollingBuffer::Reserve(size_t n) { if ( (m_tail + n) <= m_data.at(m_tailBufferIndex).Size() ) { // fetch write pointer at current 'tail', increment tail by @n & return - char* ptr = m_data[m_tailBufferIndex].Data() + m_tail; + char* ptr = m_data[m_tailBufferIndex].Data(); //+ m_tail; m_tail += n; return ptr; } @@ -282,7 +286,7 @@ char* RollingBuffer::Reserve(size_t n) { m_data[m_tailBufferIndex].Resize(m_tail + n); // fetch write pointer at current 'tail', increment tail by @n & return - char* ptr = m_data[m_tailBufferIndex].Data() + m_tail; + char* ptr = m_data[m_tailBufferIndex].Data(); //+ m_tail; m_tail += n; return ptr; }