imc::block: fix parameters parsing

This commit is contained in:
Mario Fink 2021-02-08 16:48:22 +01:00
parent cf6f91a324
commit cf7d51e2fb

View File

@ -27,7 +27,7 @@ namespace imc
parameter(unsigned long int begin, unsigned long int end): parameter(unsigned long int begin, unsigned long int end):
begin_(begin), end_(end) begin_(begin), end_(end)
{ {
if ( end_ <= begin_ ) if ( end_ < begin_ )
{ {
throw std::logic_error("parameter: offset of first byte larger than last byte's offset"); throw std::logic_error("parameter: offset of first byte larger than last byte's offset");
} }
@ -36,7 +36,7 @@ namespace imc
// set members // set members
void begin(unsigned long int begin) void begin(unsigned long int begin)
{ {
if ( end_ <= begin ) if ( end_ < begin )
{ {
throw std::logic_error("parameter: offset of first byte larger than last byte's offset"); throw std::logic_error("parameter: offset of first byte larger than last byte's offset");
} }
@ -44,7 +44,7 @@ namespace imc
} }
void end(unsigned long int end) void end(unsigned long int end)
{ {
if ( end <= begin_ ) if ( end < begin_ )
{ {
throw std::logic_error("parameter: offset of first byte larger than last byte's offset"); throw std::logic_error("parameter: offset of first byte larger than last byte's offset");
} }
@ -116,7 +116,7 @@ namespace imc
if ( buffer_->at(b) == imc::ch_sep_ ) if ( buffer_->at(b) == imc::ch_sep_ )
{ {
// define range of parameter with first byte = ch_sep_ // define range of parameter with first byte = ch_sep_
parameters_.push_back(imc::parameter(b,b+1)); parameters_.push_back(imc::parameter(b,b));
} }
} }
@ -125,7 +125,7 @@ namespace imc
{ {
parameters_[p].end( parameters_[p+1].begin() - 1 ); parameters_[p].end( parameters_[p+1].begin() - 1 );
} }
// parameters_.back().end(this->end_-1); parameters_.back().end( this->end_ - 1 );
} }
// access members // access members