From d551d5f2c435f68dd533d003761c8d3ba246f0d8 Mon Sep 17 00:00:00 2001 From: "Charles J. Cliffe" Date: Sat, 19 Sep 2015 22:30:00 -0400 Subject: [PATCH] Make sure n_read is > 0 .. --- src/sdr/SoapySDRThread.cpp | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/sdr/SoapySDRThread.cpp b/src/sdr/SoapySDRThread.cpp index 96e9f73..4e0b435 100644 --- a/src/sdr/SoapySDRThread.cpp +++ b/src/sdr/SoapySDRThread.cpp @@ -276,21 +276,22 @@ void SDRThread::run() { // std::cout << n_read << ", " << timeNs << std::endl; - SDRThreadIQData *dataOut = buffers.getBuffer(); - - dataOut->setRefCount(1); - dataOut->frequency = frequency; - dataOut->sampleRate = sampleRate.load(); - - dataOut->data.resize(n_read * 2); - memcpy(&dataOut->data[0],buffs[0],n_read * sizeof(float) * 2); - - if (iqDataOutQueue != NULL) { - iqDataOutQueue->push(dataOut); - } else { - dataOut->setRefCount(0); + if (n_read > 0) { + SDRThreadIQData *dataOut = buffers.getBuffer(); + + dataOut->setRefCount(1); + dataOut->frequency = frequency; + dataOut->sampleRate = sampleRate.load(); + + dataOut->data.resize(n_read * 2); + memcpy(&dataOut->data[0],buffs[0],n_read * sizeof(float) * 2); + + if (iqDataOutQueue != NULL) { + iqDataOutQueue->push(dataOut); + } else { + dataOut->setRefCount(0); + } } - } device->deactivateStream(stream); device->closeStream(stream);