diff --git a/sdrbase/dsp/upchannelizer.cpp b/sdrbase/dsp/upchannelizer.cpp index 6605f9c4e..1f3805132 100644 --- a/sdrbase/dsp/upchannelizer.cpp +++ b/sdrbase/dsp/upchannelizer.cpp @@ -64,15 +64,13 @@ void UpChannelizer::pull(Sample& sample) m_mutex.lock(); FilterStages::iterator stage = m_filterStages.begin(); - FilterStages::iterator last = m_filterStages.end(); - last--; // m_sampleIn for (; stage != m_filterStages.end(); ++stage) { // let's make it work for one stage only (96 kS/s < SR < 192 kS/s) - if(stage == last) + if(stage == m_filterStages.end() - 1) { if ((*stage)->work(&m_sampleIn, &sample)) { diff --git a/sdrbase/dsp/upchannelizer.h b/sdrbase/dsp/upchannelizer.h index 111308f65..b94b38367 100644 --- a/sdrbase/dsp/upchannelizer.h +++ b/sdrbase/dsp/upchannelizer.h @@ -19,7 +19,7 @@ #define SDRBASE_DSP_UPCHANNELIZER_H_ #include -#include +#include #include #include "util/export.h" #include "util/message.h" @@ -81,7 +81,7 @@ protected: return (m_filter->*m_workFunction)(sampleIn, sampleOut); } }; - typedef std::list FilterStages; + typedef std::vector FilterStages; FilterStages m_filterStages; BasebandSampleSource* m_sampleSource; //!< Modulator int m_outputSampleRate;