diff options
Diffstat (limited to 'core/ring_buffer.h')
-rw-r--r-- | core/ring_buffer.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/core/ring_buffer.h b/core/ring_buffer.h index 816a5f33e1..2fd622b86f 100644 --- a/core/ring_buffer.h +++ b/core/ring_buffer.h @@ -80,8 +80,9 @@ public: int left = data_left(); if ((p_offset + p_size) > left) { p_size -= left - p_offset; - if (p_size <= 0) + if (p_size <= 0) { return 0; + } } p_size = MIN(left, p_size); int pos = read_pos; @@ -105,8 +106,9 @@ public: int left = data_left(); if ((p_offset + p_max_size) > left) { p_max_size -= left - p_offset; - if (p_max_size <= 0) + if (p_max_size <= 0) { return 0; + } } p_max_size = MIN(left, p_max_size); int pos = read_pos; @@ -117,8 +119,9 @@ public: end = MIN(end, size()); int total = end - pos; for (int i = 0; i < total; i++) { - if (data[pos + i] == t) + if (data[pos + i] == t) { return i + (p_max_size - to_read); + } }; to_read -= total; pos = 0; |