Skip to content

Commit 30a774e

Browse files
committed
Code review changes.
1 parent ddb9606 commit 30a774e

File tree

3 files changed

+11
-7
lines changed

3 files changed

+11
-7
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vm/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ generational-arena = "0.2"
7777
parking_lot = "0.11"
7878
thread_local = "1.0"
7979
cfg-if = "0.1.10"
80-
memchr = "2.1.0"
8180

8281
## unicode stuff
8382
unicode_names2 = "0.4"

vm/src/stdlib/io.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
/*
22
* I/O core tools.
33
*/
4+
use std::convert::TryInto;
45
use std::fs;
56
use std::io::{self, prelude::*, Cursor, SeekFrom};
67

8+
use bstr::ByteSlice;
79
use crossbeam_utils::atomic::AtomicCell;
810
use num_traits::ToPrimitive;
911

@@ -111,18 +113,22 @@ impl BufferedIO {
111113

112114
fn readline(&mut self, size: OptionalOption<i64>, vm: &VirtualMachine) -> PyResult<Vec<u8>> {
113115
let mut buf = Vec::new();
114-
let mut left = size.flat_option().filter(|s| *s >= 0).unwrap_or(i64::MAX);
116+
let mut left = size
117+
.flatten()
118+
.filter(|s| *s >= 0)
119+
.and_then(|s| s.try_into().ok())
120+
.unwrap_or(usize::MAX);
115121
if left == 0 {
116122
return Ok(buf);
117123
}
118124
loop {
119125
let (done, used) = {
120126
let mut available = self.cursor.fill_buf().map_err(|err| os_err(vm, err))?;
121-
if left < available.len() as i64 {
122-
available = &available[..left as usize];
127+
if left < available.len() {
128+
available = &available[..left];
123129
}
124130

125-
match memchr::memchr(b'\n', available) {
131+
match available.find_byte(b'\n') {
126132
Some(i) => {
127133
buf.extend_from_slice(&available[..=i]);
128134
(true, i + 1)
@@ -134,7 +140,7 @@ impl BufferedIO {
134140
}
135141
};
136142
self.cursor.consume(used);
137-
left -= used as i64;
143+
left -= used;
138144
if done || used == 0 || left == 0 {
139145
return Ok(buf);
140146
}

0 commit comments

Comments
 (0)