diff --git a/plugins/channelrx/demoddatv/ldpctool/generic.h b/plugins/channelrx/demoddatv/ldpctool/generic.h index 066ffd83f..247f39bdc 100644 --- a/plugins/channelrx/demoddatv/ldpctool/generic.h +++ b/plugins/channelrx/demoddatv/ldpctool/generic.h @@ -589,13 +589,15 @@ struct LogDomainSPA } static void finalp(TYPE *links, int cnt) { - TYPE mags[cnt], sums[cnt]; + std::vector mags(cnt); + std::vector sums(cnt); + std::vector signs(cnt); + for (int i = 0; i < cnt; ++i) mags[i] = phi(std::abs(links[i])); - CODE::exclusive_reduce(mags, sums, cnt, add); - TYPE signs[cnt]; - CODE::exclusive_reduce(links, signs, cnt, sign); + CODE::exclusive_reduce(mags.data(), sums.data(), cnt, add); + CODE::exclusive_reduce(links, signs.data(), cnt, sign); for (int i = 0; i < cnt; ++i) links[i] = sign(phi(sums[i]), signs[i]);