|
1 | 1 | use super::os::PyPathLike;
|
2 | 2 | use super::socket::PySocketRef;
|
3 |
| -use crate::builtins::bytearray::PyByteArrayRef; |
4 | 3 | use crate::builtins::pystr::PyStrRef;
|
5 | 4 | use crate::builtins::{pytype::PyTypeRef, weakref::PyWeak};
|
6 |
| -use crate::byteslike::PyBytesLike; |
| 5 | +use crate::byteslike::{PyBytesLike, PyRwBytesLike}; |
7 | 6 | use crate::common::lock::{PyRwLock, PyRwLockReadGuard, PyRwLockWriteGuard};
|
8 | 7 | use crate::exceptions::{IntoPyException, PyBaseExceptionRef};
|
9 | 8 | use crate::function::{OptionalArg, OptionalOption};
|
@@ -688,14 +687,11 @@ impl PySslSocket {
|
688 | 687 | }
|
689 | 688 |
|
690 | 689 | #[pymethod]
|
691 |
| - fn read(&self, n: usize, buffer: OptionalArg<PyByteArrayRef>, vm: &VirtualMachine) -> PyResult { |
| 690 | + fn read(&self, n: usize, buffer: OptionalArg<PyRwBytesLike>, vm: &VirtualMachine) -> PyResult { |
692 | 691 | let mut stream = self.stream_mut();
|
693 | 692 | let ret_nread = buffer.is_present();
|
694 | 693 | let ssl_res = if let OptionalArg::Present(buffer) = buffer {
|
695 |
| - let mut buf = buffer.borrow_value_mut(); |
696 |
| - stream |
697 |
| - .ssl_read(&mut buf.elements) |
698 |
| - .map(|n| vm.ctx.new_int(n)) |
| 694 | + buffer.with_ref(|buf| stream.ssl_read(buf).map(|n| vm.ctx.new_int(n))) |
699 | 695 | } else {
|
700 | 696 | let mut buf = vec![0u8; n];
|
701 | 697 | stream.ssl_read(&mut buf).map(|n| {
|
|
0 commit comments