From 20d4ef7e4a6d2dba93dd0ccd7ab9aeffdbe6fc5c Mon Sep 17 00:00:00 2001 From: Steve Markgraf Date: Sun, 13 May 2012 04:17:02 +0200 Subject: [PATCH] rtl_source_c: fix several off-by-one errors Those summed up and caused sample loss. Thanks to Hoernchen for helping me tracking those down. Signed-off-by: Steve Markgraf --- lib/rtl/rtl_source_c.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/rtl/rtl_source_c.cc b/lib/rtl/rtl_source_c.cc index 7150590..9d2223f 100644 --- a/lib/rtl/rtl_source_c.cc +++ b/lib/rtl/rtl_source_c.cc @@ -249,14 +249,14 @@ int rtl_source_c::work( int noutput_items, unsigned short *buf = _buf[_buf_head]; if (noutput_items <= int(_samp_avail)) { - for (int i = 0; i <= noutput_items; ++i) + for (int i = 0; i < noutput_items; ++i) *out++ = _lut[ *(buf + _buf_offset + i) ]; _buf_offset += noutput_items; _samp_avail -= noutput_items; return noutput_items; } else { - for (int i = 0; i <= int(_samp_avail); ++i) + for (int i = 0; i < int(_samp_avail); ++i) *out++ = _lut[ *(buf + _buf_offset + i) ]; { @@ -271,7 +271,7 @@ int rtl_source_c::work( int noutput_items, int remaining = noutput_items - _samp_avail; - for (int i = 0; i <= remaining; ++i) + for (int i = 0; i < remaining; ++i) *out++ = _lut[ *(buf + _buf_offset + i) ]; _buf_offset = remaining;