diff options
author | Andy Walls <awalls.cx18@gmail.com> | 2017-01-08 16:24:37 -0500 |
---|---|---|
committer | Johnathan Corgan <johnathan@corganlabs.com> | 2017-01-12 11:52:23 -0800 |
commit | b77e5a6696c098b1f3bbb41507f4f54e3711060b (patch) | |
tree | fff3bf8db4e2dd0d3ac888e7d01db2e0de4f8266 | |
parent | 20f25feba6a4e9fc16289041068242d44ed7cf42 (diff) |
qtgui: Fix SIGSEGV for tag trigger with constellation sink
The tag offset accounting the block tried to do to
compensate for the 1 history sample, with tag triggering,
would occasionally generate a -1 for a buffer index,
causing a SIGSEGV.
Change to straight-forward tag offset accounting, and
just ignore the 1 history sample for everything
except auto/normal triggering.
-rw-r--r-- | gr-qtgui/lib/const_sink_c_impl.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gr-qtgui/lib/const_sink_c_impl.cc b/gr-qtgui/lib/const_sink_c_impl.cc index 63777d7827..7d9a3941c8 100644 --- a/gr-qtgui/lib/const_sink_c_impl.cc +++ b/gr-qtgui/lib/const_sink_c_impl.cc @@ -98,7 +98,6 @@ namespace gr { set_trigger_mode(TRIG_MODE_FREE, TRIG_SLOPE_POS, 0, 0); set_history(2); // so we can look ahead for the trigger slope - declare_sample_delay(1); // delay the tags for a history of 2 } const_sink_c_impl::~const_sink_c_impl() @@ -439,7 +438,7 @@ namespace gr { if(tags.size() > 0) { d_triggered = true; trigger_index = tags[0].offset - nr; - d_start = d_index + trigger_index - 1; + d_start = d_index + trigger_index; d_end = d_start + d_size; d_trigger_count = 0; } @@ -516,7 +515,7 @@ namespace gr { in = (const gr_complex*)input_items[n]; volk_32fc_deinterleave_64f_x2(&d_residbufs_real[n][d_index], &d_residbufs_imag[n][d_index], - &in[0], nitems); + &in[history()-1], nitems); } d_index += nitems; |