aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Markgraf <steve@steve-m.de>2012-05-13 04:17:02 +0200
committerSteve Markgraf <steve@steve-m.de>2012-05-13 04:17:02 +0200
commit20d4ef7e4a6d2dba93dd0ccd7ab9aeffdbe6fc5c (patch)
tree8d62ea1caf018806d01d10049a6b420cf001504d
parent52b5a8a4d38f42c8b256ae422e1e9910a3fd9b8a (diff)
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 <steve@steve-m.de>
-rw-r--r--lib/rtl/rtl_source_c.cc6
1 files 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;