diff --git a/polar_list_decoder.hh b/polar_list_decoder.hh index d67dc9d..83ce286 100644 --- a/polar_list_decoder.hh +++ b/polar_list_decoder.hh @@ -316,7 +316,7 @@ public: for (int k = 0; k < TYPE::SIZE; ++k) perm[k] = k; std::sort(perm, perm + TYPE::SIZE, [metric](int a, int b) { return metric[a] < metric[b]; }); - for (int i = 0, r = 0; i < TYPE::SIZE; ++i) { + for (int i = 0, r = 0; rank != nullptr && i < TYPE::SIZE; ++i) { if (i > 0 && metric[perm[i-1]] != metric[perm[i]]) ++r; rank[i] = r; diff --git a/polar_parity_aided.hh b/polar_parity_aided.hh index c91eda4..f913d95 100644 --- a/polar_parity_aided.hh +++ b/polar_parity_aided.hh @@ -379,7 +379,7 @@ public: for (int k = 0; k < TYPE::SIZE; ++k) perm[k] = k; std::sort(perm, perm + TYPE::SIZE, [metric](int a, int b) { return metric[a] < metric[b]; }); - for (int i = 0, r = 0; i < TYPE::SIZE; ++i) { + for (int i = 0, r = 0; rank != nullptr && i < TYPE::SIZE; ++i) { if (i > 0 && metric[perm[i-1]] != metric[perm[i]]) ++r; rank[i] = r;