From 5ac4621df043666836107e0e0aaa3df709fb866e Mon Sep 17 00:00:00 2001 From: "Matthias P. Braendli" Date: Sun, 31 Jan 2016 22:35:17 +0100 Subject: Restart when FrameMultiplexer sees a different configuration --- src/FrameMultiplexer.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/FrameMultiplexer.cpp') diff --git a/src/FrameMultiplexer.cpp b/src/FrameMultiplexer.cpp index efd43f3..ffae2ca 100644 --- a/src/FrameMultiplexer.cpp +++ b/src/FrameMultiplexer.cpp @@ -77,11 +77,17 @@ int FrameMultiplexer::process(std::vector dataIn, Buffer* dataOut) memcpy(out, (*in)->getData(), (*in)->getLength()); ++in; // Write subchannel - assert(mySubchannels->size() == dataIn.size() - 1); + if (mySubchannels->size() != dataIn.size() - 1) { + throw std::out_of_range( + "FrameMultiplexer detected subchannel size change!"); + } std::vector >::const_iterator subchannel = mySubchannels->begin(); while (in != dataIn.end()) { - assert((*subchannel)->framesizeCu() * 8 == (*in)->getLength()); + if ((*subchannel)->framesizeCu() * 8 != (*in)->getLength()) { + throw std::out_of_range( + "FrameMultiplexer detected invalid subchannel size!"); + } size_t offset = (*subchannel)->startAddress() * 8; memcpy(&out[offset], (*in)->getData(), (*in)->getLength()); ++in; -- cgit v1.2.3