summaryrefslogtreecommitdiff
path: root/gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc
diff options
context:
space:
mode:
authorRon Economos <w6rz@comcast.net>2016-08-03 21:15:35 -0700
committerRon Economos <w6rz@comcast.net>2016-08-03 21:15:35 -0700
commit87846f81b939ab8fa32ffaf4da3cd9a869039a95 (patch)
tree034e3a2e9469e353679bcada6a33386032771bd1 /gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc
parent25c82caabf1fa96dbe82e8d10f8e7ba6ffc3d5af (diff)
gr-dtv: Fix segfault in DVB-T interleaver and deinterleaver.
Diffstat (limited to 'gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc')
-rw-r--r--gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc b/gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc
index 9e45c81018..c10a77c98a 100644
--- a/gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc
+++ b/gr-dtv/lib/dvbt/dvbt_bit_inner_deinterleaver_impl.cc
@@ -26,10 +26,13 @@
#include "dvbt_bit_inner_deinterleaver_impl.h"
#include <stdio.h>
+#define MAX_MODULATION_ORDER 6
+#define INTERLEAVER_BLOCK_SIZE 126
+
namespace gr {
namespace dtv {
- const int dvbt_bit_inner_deinterleaver_impl::d_bsize = 126;
+ const int dvbt_bit_inner_deinterleaver_impl::d_bsize = INTERLEAVER_BLOCK_SIZE;
int
dvbt_bit_inner_deinterleaver_impl::H(int e, int w)
@@ -135,9 +138,8 @@ namespace gr {
// First index of d_b is Bit interleaver number
// Second index of d_b is the position inside Bit interleaver
- // Linux: unsigned char d_b[d_v][d_bsize];
- __GR_VLA2D(unsigned char, d_b, d_v, d_bsize);
-
+ unsigned char d_b[MAX_MODULATION_ORDER][INTERLEAVER_BLOCK_SIZE];
+
for (int bcount = 0; bcount < bmax; bcount++) {
for (int w = 0; w < d_bsize; w++) {
int c = in[(bcount * d_bsize) + w];