Skip to content

Commit 3d19d97

Browse files
committed
Expose classes as attributes
1 parent ff55a2e commit 3d19d97

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

vm/src/stdlib/io.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,8 @@ mod _io {
504504
}
505505

506506
// TextIO Base has no public constructor
507-
#[pyclass(name = "_TextIOBase", noattr)]
507+
#[pyattr]
508+
#[pyclass(name = "_TextIOBase", base = "_IOBase")]
508509
struct _TextIOBase;
509510

510511
#[pyimpl(flags(BASETYPE))]
@@ -759,7 +760,8 @@ mod _io {
759760
let mut remaining = n;
760761
let mut written = 0;
761762
if current_size > 0 {
762-
out.copy_from_slice(self.active_read_slice());
763+
let slice = self.active_read_slice();
764+
out[..slice.len()].copy_from_slice(slice);
763765
remaining -= current_size;
764766
written += current_size;
765767
self.pos += current_size as Offset;
@@ -799,12 +801,13 @@ mod _io {
799801
while remaining > 0 && (self.read_end as usize) < self.buffer.len() {
800802
let r = handle_opt_read!(self.fill_buffer(vm)?);
801803
if remaining > r {
802-
out[written..].copy_from_slice(&self.buffer[self.pos as usize..][..r]);
804+
out[written..][..r].copy_from_slice(&self.buffer[self.pos as usize..][..r]);
803805
written += r;
804806
self.pos += r as Offset;
805807
remaining -= r;
806808
} else if remaining > 0 {
807-
out[written..].copy_from_slice(&self.buffer[self.pos as usize..][..remaining]);
809+
out[written..][..remaining]
810+
.copy_from_slice(&self.buffer[self.pos as usize..][..remaining]);
808811
written += remaining;
809812
self.pos += remaining as Offset;
810813
remaining = 0;
@@ -1146,7 +1149,8 @@ mod _io {
11461149
}
11471150
}
11481151

1149-
#[pyclass(name = "BufferedReader", noattr)]
1152+
#[pyattr]
1153+
#[pyclass(name = "BufferedReader", base = "_BufferedIOBase")]
11501154
#[derive(Debug)]
11511155
struct BufferedReader {
11521156
data: PyThreadMutex<BufferedData>,
@@ -1192,7 +1196,8 @@ mod _io {
11921196
}
11931197
}
11941198

1195-
#[pyclass(name = "BufferedWriter", noattr)]
1199+
#[pyattr]
1200+
#[pyclass(name = "BufferedWriter", base = "_BufferedIOBase")]
11961201
#[derive(Debug)]
11971202
struct BufferedWriter {
11981203
data: PyThreadMutex<BufferedData>,

0 commit comments

Comments
 (0)