Skip to content

Commit 6a72831

Browse files
hasezoeysscobici
andauthored
core (io): Backport #344: Advance reader's position if scan pattern is not found. (#381)
Co-authored-by: Serghei Scobici <sergey.scobich@gmail.com>
1 parent 99e4b00 commit 6a72831

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

symphonia-core/src/io/buf_reader.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,21 +57,22 @@ impl<'a> BufReader<'a> {
5757
// return the remainder of the buffer or scan_length bytes, which ever is shorter, we return
5858
// that here.
5959
if remaining < pattern.len() || scan_len < pattern.len() {
60+
self.pos = end;
6061
return Ok(&self.buf[start..end]);
6162
}
6263

63-
let mut j = start;
64-
let mut i = start + pattern.len();
64+
let mut i = start;
65+
let mut j = start + pattern.len();
6566

66-
while i < end {
67-
if &self.buf[j..i] == pattern {
67+
while j < end {
68+
if &self.buf[i..j] == pattern {
6869
break;
6970
}
70-
i += align;
7171
j += align;
72+
i += align;
7273
}
7374

74-
self.pos = cmp::min(i, self.buf.len());
75+
self.pos = cmp::min(j, self.buf.len());
7576
Ok(&self.buf[start..self.pos])
7677
}
7778

0 commit comments

Comments
 (0)