Skip to content

Commit 9e8ac21

Browse files
authored
Revert "Fix panic when decoding"
1 parent 9d9fe02 commit 9e8ac21

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

src/futures/bufread/generic/decoder.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,20 +84,20 @@ impl<R: AsyncBufRead, D: Decode> Decoder<R, D> {
8484
State::Flushing
8585
} else {
8686
let mut input = PartialBuffer::new(input);
87-
let done = match this.decoder.decode(&mut input, output) {
88-
Ok(done) => {
89-
let consumed = input.written().len();
90-
this.reader.as_mut().consume(consumed);
91-
done
92-
}
87+
let done = this.decoder.decode(&mut input, output).or_else(|err| {
9388
// ignore the first error, occurs when input is empty
9489
// but we need to run decode to flush
95-
Err(err) if first => false,
96-
Err(err) => return Poll::Ready(Err(err)),
97-
};
90+
if first {
91+
Ok(false)
92+
} else {
93+
Err(err)
94+
}
95+
})?;
9896

9997
first = false;
10098

99+
let len = input.written().len();
100+
this.reader.as_mut().consume(len);
101101
if done {
102102
State::Flushing
103103
} else {

src/tokio/bufread/generic/decoder.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,20 +84,20 @@ impl<R: AsyncBufRead, D: Decode> Decoder<R, D> {
8484
State::Flushing
8585
} else {
8686
let mut input = PartialBuffer::new(input);
87-
let done = match this.decoder.decode(&mut input, output) {
88-
Ok(done) => {
89-
let consumed = input.written().len();
90-
this.reader.as_mut().consume(consumed);
91-
done
92-
}
87+
let done = this.decoder.decode(&mut input, output).or_else(|err| {
9388
// ignore the first error, occurs when input is empty
9489
// but we need to run decode to flush
95-
Err(err) if first => false,
96-
Err(err) => return Poll::Ready(Err(err)),
97-
};
90+
if first {
91+
Ok(false)
92+
} else {
93+
Err(err)
94+
}
95+
})?;
9896

9997
first = false;
10098

99+
let len = input.written().len();
100+
this.reader.as_mut().consume(len);
101101
if done {
102102
State::Flushing
103103
} else {

0 commit comments

Comments
 (0)