diff --git a/lib/decode_rs_impl.cc b/lib/decode_rs_impl.cc index 7cab6b98..6eee8992 100644 --- a/lib/decode_rs_impl.cc +++ b/lib/decode_rs_impl.cc @@ -46,9 +46,11 @@ decode_rs_impl::decode_rs_impl(bool dual_basis, int interleave) "decode_rs", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)), d_interleave(interleave) { - d_decode_rs = dual_basis - ? [](uint8_t* data) { return decode_rs_ccsds(data, NULL, 0, 0); } - : [](uint8_t* data) { return decode_rs_8(data, NULL, 0, 0); }; + if (dual_basis) { + d_decode_rs = [](uint8_t* data) { return decode_rs_ccsds(data, NULL, 0, 0); }; + } else { + d_decode_rs = [](uint8_t* data) { return decode_rs_8(data, NULL, 0, 0); }; + } d_rs_codeword.resize(d_ccsds_nn); d_nroots = d_ccsds_nroots; diff --git a/lib/encode_rs_impl.cc b/lib/encode_rs_impl.cc index c5e0af34..4484d535 100644 --- a/lib/encode_rs_impl.cc +++ b/lib/encode_rs_impl.cc @@ -48,10 +48,14 @@ encode_rs_impl::encode_rs_impl(bool dual_basis, int interleave) "encode_rs", gr::io_signature::make(0, 0, 0), gr::io_signature::make(0, 0, 0)), d_interleave(interleave) { - constexpr int parity_offset = d_ccsds_nn - d_ccsds_nroots; - d_encode_rs = - dual_basis ? [](uint8_t* data) { encode_rs_ccsds(data, &data[parity_offset], 0); } - : [](uint8_t* data) { encode_rs_8(data, &data[parity_offset], 0); }; + static constexpr int parity_offset = d_ccsds_nn - d_ccsds_nroots; + if (dual_basis) { + d_encode_rs = [](uint8_t* data) { + encode_rs_ccsds(data, &data[parity_offset], 0); + }; + } else { + d_encode_rs = [](uint8_t* data) { encode_rs_8(data, &data[parity_offset], 0); }; + } d_rs_codeword.resize(d_ccsds_nn); d_nroots = d_ccsds_nroots;