From 7712013b9b96714a9e9b1706475a8023470eb70c Mon Sep 17 00:00:00 2001 From: f4exb Date: Fri, 1 Nov 2019 05:25:12 +0100 Subject: [PATCH] Sample MO FIFO: capping requested amount of samples to vector size --- sdrbase/dsp/samplemofifo.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sdrbase/dsp/samplemofifo.cpp b/sdrbase/dsp/samplemofifo.cpp index 704fc53fe..482030b8d 100644 --- a/sdrbase/dsp/samplemofifo.cpp +++ b/sdrbase/dsp/samplemofifo.cpp @@ -105,7 +105,7 @@ void SampleMOFifo::readSync( } else { - unsigned int remaining = amount - spaceLeft; + unsigned int remaining = (amount < m_size ? amount : m_size) - spaceLeft; ipart1Begin = m_readHead; ipart1End = m_size; ipart2Begin = 0; @@ -132,7 +132,7 @@ void SampleMOFifo::writeSync(const std::vector& vbegin, } else { - unsigned int remaining = amount - spaceLeft; + unsigned int remaining = (amount < m_size ? amount : m_size) - spaceLeft; for (unsigned int stream = 0; stream < m_nbStreams; stream++) { @@ -163,7 +163,7 @@ void SampleMOFifo::writeSync( } else { - unsigned int remaining = amount - spaceLeft; + unsigned int remaining = (amount < m_size ? amount : m_size) - spaceLeft; ipart1Begin = m_writeHead; ipart1End = m_size; ipart2Begin = 0; @@ -233,7 +233,7 @@ void SampleMOFifo::readAsync( } else { - unsigned int remaining = amount - spaceLeft; + unsigned int remaining = (amount < m_size ? amount : m_size) - spaceLeft; ipart1Begin = m_vReadHead[stream]; ipart1End = m_size; ipart2Begin = 0; @@ -257,7 +257,7 @@ void SampleMOFifo::writeAsync(const SampleVector::iterator& begin, unsigned int } else { - unsigned int remaining = amount - spaceLeft; + unsigned int remaining = (amount < m_size ? amount : m_size) - spaceLeft; for (unsigned int stream = 0; stream < m_nbStreams; stream++) { @@ -288,7 +288,7 @@ void SampleMOFifo::writeAsync( } else { - unsigned int remaining = amount - spaceLeft; + unsigned int remaining = (amount < m_size ? amount : m_size) - spaceLeft; ipart1Begin = m_vWriteHead[stream]; ipart1End = m_size; ipart2Begin = 0;