@@ -259,7 +259,7 @@ mod _io {
259259 }
260260
261261 fn check_readable ( file : & PyObjectRef , vm : & VirtualMachine ) -> PyResult < ( ) > {
262- if pybool:: boolval ( vm, call_method ( vm , file, "readable" , ( ) ) ?) ? {
262+ if pybool:: boolval ( vm, vm . call_method ( file, "readable" , ( ) ) ?) ? {
263263 Ok ( ( ) )
264264 } else {
265265 Err ( new_unsupported_operation (
@@ -270,7 +270,7 @@ mod _io {
270270 }
271271
272272 fn check_writable ( file : & PyObjectRef , vm : & VirtualMachine ) -> PyResult < ( ) > {
273- if pybool:: boolval ( vm, call_method ( vm , file, "writable" , ( ) ) ?) ? {
273+ if pybool:: boolval ( vm, vm . call_method ( file, "writable" , ( ) ) ?) ? {
274274 Ok ( ( ) )
275275 } else {
276276 Err ( new_unsupported_operation (
@@ -281,7 +281,7 @@ mod _io {
281281 }
282282
283283 fn check_seekable ( file : & PyObjectRef , vm : & VirtualMachine ) -> PyResult < ( ) > {
284- if pybool:: boolval ( vm, call_method ( vm , file, "seekable" , ( ) ) ?) ? {
284+ if pybool:: boolval ( vm, vm . call_method ( file, "seekable" , ( ) ) ?) ? {
285285 Ok ( ( ) )
286286 } else {
287287 Err ( new_unsupported_operation (
@@ -308,7 +308,7 @@ mod _io {
308308 }
309309 #[ pymethod]
310310 fn tell ( zelf : PyObjectRef , vm : & VirtualMachine ) -> PyResult {
311- call_method ( vm , & zelf, "seek" , ( 0 , 1 ) )
311+ vm . call_method ( & zelf, "seek" , ( 0 , 1 ) )
312312 }
313313 #[ pymethod]
314314 fn truncate ( zelf : PyObjectRef , _pos : OptionalArg , vm : & VirtualMachine ) -> PyResult {
@@ -328,7 +328,7 @@ mod _io {
328328
329329 #[ pyslot]
330330 fn tp_del ( instance : & PyObjectRef , vm : & VirtualMachine ) -> PyResult < ( ) > {
331- let _ = call_method ( vm , instance, "close" , ( ) ) ;
331+ let _ = vm . call_method ( instance, "close" , ( ) ) ;
332332 Ok ( ( ) )
333333 }
334334
@@ -339,7 +339,7 @@ mod _io {
339339
340340 #[ pymethod( magic) ]
341341 fn exit ( instance : PyObjectRef , _args : FuncArgs , vm : & VirtualMachine ) -> PyResult < ( ) > {
342- call_method ( vm , & instance, "close" , ( ) ) ?;
342+ vm . call_method ( & instance, "close" , ( ) ) ?;
343343 Ok ( ( ) )
344344 }
345345
@@ -428,7 +428,7 @@ mod _io {
428428 ) -> PyResult < ( ) > {
429429 check_closed ( & instance, vm) ?;
430430 for line in lines. iter ( vm) ? {
431- call_method ( vm , & instance, "write" , ( line?, ) ) ?;
431+ vm . call_method ( & instance, "write" , ( line?, ) ) ?;
432432 }
433433 Ok ( ( ) )
434434 }
@@ -461,7 +461,7 @@ mod _io {
461461 }
462462 #[ pyslot]
463463 fn tp_iternext ( instance : & PyObjectRef , vm : & VirtualMachine ) -> PyResult {
464- let line = call_method ( vm , & instance, "readline" , ( ) ) ?;
464+ let line = vm . call_method ( & instance, "readline" , ( ) ) ?;
465465 if !pybool:: boolval ( vm, line. clone ( ) ) ? {
466466 Err ( vm. new_stop_iteration ( ) )
467467 } else {
@@ -476,7 +476,7 @@ mod _io {
476476
477477 pub ( super ) fn iobase_close ( file : & PyObjectRef , vm : & VirtualMachine ) -> PyResult < ( ) > {
478478 if !file_closed ( file, vm) ? {
479- let res = call_method ( vm , file, "flush" , ( ) ) ;
479+ let res = vm . call_method ( file, "flush" , ( ) ) ;
480480 vm. set_attr ( file, "__closed" , vm. ctx . new_bool ( true ) ) ?;
481481 res?;
482482 }
@@ -496,7 +496,7 @@ mod _io {
496496 let b = PyByteArray :: from ( vec ! [ 0 ; size] ) . into_ref ( vm) ;
497497 let n = <Option < usize > >:: try_from_object (
498498 vm,
499- call_method ( vm , & instance, "readinto" , ( b. clone ( ) , ) ) ?,
499+ vm . call_method ( & instance, "readinto" , ( b. clone ( ) , ) ) ?,
500500 ) ?;
501501 Ok ( n. map ( |n| {
502502 let bytes = & mut b. borrow_value_mut ( ) . elements ;
@@ -505,7 +505,7 @@ mod _io {
505505 } )
506506 . into_pyobject ( vm) )
507507 } else {
508- call_method ( vm , & instance, "readall" , ( ) )
508+ vm . call_method ( & instance, "readall" , ( ) )
509509 }
510510 }
511511
@@ -514,7 +514,7 @@ mod _io {
514514 let mut chunks = Vec :: new ( ) ;
515515 let mut total_len = 0 ;
516516 loop {
517- let data = call_method ( vm , & instance, "read" , ( DEFAULT_BUFFER_SIZE , ) ) ?;
517+ let data = vm . call_method ( & instance, "read" , ( DEFAULT_BUFFER_SIZE , ) ) ?;
518518 let data = <Option < PyBytesRef > >:: try_from_object ( vm, data) ?;
519519 match data {
520520 None => {
@@ -562,7 +562,7 @@ mod _io {
562562 ) -> PyResult < usize > {
563563 let b = PyRwBytesLike :: new ( vm, & bufobj) ?;
564564 let l = b. len ( ) ;
565- let data = call_method ( vm , & zelf, method, ( l, ) ) ?;
565+ let data = vm . call_method ( & zelf, method, ( l, ) ) ?;
566566 if data. is ( & bufobj) {
567567 return Ok ( l) ;
568568 }
@@ -732,7 +732,7 @@ mod _io {
732732 }
733733
734734 fn raw_seek ( & mut self , pos : Offset , whence : i32 , vm : & VirtualMachine ) -> PyResult < Offset > {
735- let ret = call_method ( vm , self . check_init ( vm) ?, "seek" , ( pos, whence) ) ?;
735+ let ret = vm . call_method ( self . check_init ( vm) ?, "seek" , ( pos, whence) ) ?;
736736 let offset = get_offset ( ret, vm) ?;
737737 if offset < 0 {
738738 return Err (
@@ -777,7 +777,7 @@ mod _io {
777777 }
778778
779779 fn raw_tell ( & mut self , vm : & VirtualMachine ) -> PyResult < Offset > {
780- let ret = call_method ( vm , self . check_init ( vm) ?, "tell" , ( ) ) ?;
780+ let ret = vm . call_method ( self . check_init ( vm) ?, "tell" , ( ) ) ?;
781781 let offset = get_offset ( ret, vm) ?;
782782 if offset < 0 {
783783 return Err (
@@ -809,7 +809,7 @@ mod _io {
809809 . into_pyobject ( vm) ;
810810
811811 // TODO: loop if write() raises an interrupt
812- call_method ( vm , self . raw . as_ref ( ) . unwrap ( ) , "write" , ( memobj, ) ) ?
812+ vm . call_method ( self . raw . as_ref ( ) . unwrap ( ) , "write" , ( memobj, ) ) ?
813813 } else {
814814 let options = BufferOptions {
815815 len,
@@ -827,7 +827,7 @@ mod _io {
827827 . into_ref ( vm) ;
828828
829829 // TODO: loop if write() raises an interrupt
830- let res = call_method ( vm , self . raw . as_ref ( ) . unwrap ( ) , "write" , ( memobj. clone ( ) , ) ) ;
830+ let res = vm . call_method ( self . raw . as_ref ( ) . unwrap ( ) , "write" , ( memobj. clone ( ) , ) ) ;
831831
832832 memobj. released . store ( true ) ;
833833 self . buffer = std:: mem:: take ( & mut writebuf. data . lock ( ) ) ;
@@ -1064,12 +1064,8 @@ mod _io {
10641064 . into_ref ( vm) ;
10651065
10661066 // TODO: loop if readinto() raises an interrupt
1067- let res = call_method (
1068- vm,
1069- self . raw . as_ref ( ) . unwrap ( ) ,
1070- "readinto" ,
1071- ( memobj. clone ( ) , ) ,
1072- ) ;
1067+ let res =
1068+ vm. call_method ( self . raw . as_ref ( ) . unwrap ( ) , "readinto" , ( memobj. clone ( ) , ) ) ;
10731069
10741070 memobj. released . store ( true ) ;
10751071 std:: mem:: swap ( v, & mut readbuf. data . lock ( ) ) ;
@@ -1080,7 +1076,7 @@ mod _io {
10801076 let memobj =
10811077 PyMemoryView :: from_buffer_range ( vm. ctx . none ( ) , buf, buf_range, vm) ?;
10821078 // TODO: loop if readinto() raises an interrupt
1083- call_method ( vm , self . raw . as_ref ( ) . unwrap ( ) , "readinto" , ( memobj, ) ) ?
1079+ vm . call_method ( self . raw . as_ref ( ) . unwrap ( ) , "readinto" , ( memobj, ) ) ?
10841080 }
10851081 } ;
10861082
@@ -1135,7 +1131,7 @@ mod _io {
11351131
11361132 let mut read_size = 0 ;
11371133 loop {
1138- let read_data = call_method ( vm , self . raw . as_ref ( ) . unwrap ( ) , "read" , ( ) ) ?;
1134+ let read_data = vm . call_method ( self . raw . as_ref ( ) . unwrap ( ) , "read" , ( ) ) ?;
11391135 let read_data = <Option < PyBytesRef > >:: try_from_object ( vm, read_data) ?;
11401136
11411137 match read_data {
@@ -1388,13 +1384,13 @@ mod _io {
13881384 if data. writable ( ) {
13891385 data. flush_rewind ( vm) ?;
13901386 }
1391- let res = call_method ( vm , data. raw . as_ref ( ) . unwrap ( ) , "truncate" , ( pos, ) ) ?;
1387+ let res = vm . call_method ( data. raw . as_ref ( ) . unwrap ( ) , "truncate" , ( pos, ) ) ?;
13921388 let _ = data. raw_tell ( vm) ;
13931389 Ok ( res)
13941390 }
13951391 #[ pymethod]
13961392 fn detach ( zelf : PyRef < Self > , vm : & VirtualMachine ) -> PyResult {
1397- call_method ( vm , zelf. as_object ( ) , "flush" , ( ) ) ?;
1393+ vm . call_method ( zelf. as_object ( ) , "flush" , ( ) ) ?;
13981394 let mut data = zelf. lock ( vm) ?;
13991395 data. flags . insert ( BufferedFlags :: DETACHED ) ;
14001396 data. raw
@@ -1403,7 +1399,7 @@ mod _io {
14031399 }
14041400 #[ pymethod]
14051401 fn seekable ( & self , vm : & VirtualMachine ) -> PyResult {
1406- call_method ( vm , self . lock ( vm) ?. check_init ( vm) ?, "seekable" , ( ) )
1402+ vm . call_method ( self . lock ( vm) ?. check_init ( vm) ?, "seekable" , ( ) )
14071403 }
14081404 #[ pyproperty]
14091405 fn raw ( & self , vm : & VirtualMachine ) -> PyResult < Option < PyObjectRef > > {
@@ -1423,11 +1419,11 @@ mod _io {
14231419 }
14241420 #[ pymethod]
14251421 fn fileno ( & self , vm : & VirtualMachine ) -> PyResult {
1426- call_method ( vm , self . lock ( vm) ?. check_init ( vm) ?, "fileno" , ( ) )
1422+ vm . call_method ( self . lock ( vm) ?. check_init ( vm) ?, "fileno" , ( ) )
14271423 }
14281424 #[ pymethod]
14291425 fn isatty ( & self , vm : & VirtualMachine ) -> PyResult {
1430- call_method ( vm , self . lock ( vm) ?. check_init ( vm) ?, "isatty" , ( ) )
1426+ vm . call_method ( self . lock ( vm) ?. check_init ( vm) ?, "isatty" , ( ) )
14311427 }
14321428
14331429 #[ pymethod( magic) ]
@@ -1464,7 +1460,7 @@ mod _io {
14641460 return Ok ( vm. ctx . none ( ) ) ;
14651461 }
14661462 let flush_res = data. flush ( vm) ;
1467- let close_res = call_method ( vm , data. raw . as_ref ( ) . unwrap ( ) , "close" , ( ) ) ;
1463+ let close_res = vm . call_method ( data. raw . as_ref ( ) . unwrap ( ) , "close" , ( ) ) ;
14681464 exceptions:: chain ( flush_res, close_res)
14691465 }
14701466
@@ -1477,10 +1473,10 @@ mod _io {
14771473 return Ok ( vm. ctx . none ( ) ) ;
14781474 }
14791475 }
1480- let flush_res = call_method ( vm , zelf. as_object ( ) , "flush" , ( ) ) . map ( drop) ;
1476+ let flush_res = vm . call_method ( zelf. as_object ( ) , "flush" , ( ) ) . map ( drop) ;
14811477 let data = zelf. lock ( vm) ?;
14821478 let raw = data. raw . as_ref ( ) . unwrap ( ) ;
1483- let close_res = call_method ( vm , raw, "close" , ( ) ) ;
1479+ let close_res = vm . call_method ( raw, "close" , ( ) ) ;
14841480 exceptions:: chain ( flush_res, close_res)
14851481 }
14861482
@@ -1500,19 +1496,6 @@ mod _io {
15001496 }
15011497 }
15021498
1503- // vm.call_method() only calls class attributes
1504- // TODO: have this be the implementation of vm.call_method() once the current implementation isn't needed
1505- // anymore because of slots
1506- pub fn call_method (
1507- vm : & VirtualMachine ,
1508- obj : & PyObjectRef ,
1509- name : impl crate :: pyobject:: TryIntoRef < PyStr > ,
1510- args : impl crate :: function:: IntoFuncArgs ,
1511- ) -> PyResult {
1512- let meth = vm. get_attribute ( obj. clone ( ) , name) ?;
1513- vm. invoke ( & meth, args)
1514- }
1515-
15161499 #[ pyimpl]
15171500 trait BufferedReadable : PyValue {
15181501 type Reader : BufferedMixin ;
@@ -1921,13 +1904,13 @@ mod _io {
19211904 "can't do nonzero end-relative seeks" . to_owned ( ) ,
19221905 ) ) ;
19231906 }
1924- call_method ( vm , & buffer, "seek" , ( offset, how) )
1907+ vm . call_method ( & buffer, "seek" , ( offset, how) )
19251908 }
19261909
19271910 #[ pymethod]
19281911 fn tell ( & self , vm : & VirtualMachine ) -> PyResult {
19291912 let buffer = self . lock ( vm) ?. buffer . clone ( ) ;
1930- call_method ( vm , & buffer, "tell" , ( ) )
1913+ vm . call_method ( & buffer, "tell" , ( ) )
19311914 }
19321915
19331916 #[ pyproperty]
@@ -1947,15 +1930,15 @@ mod _io {
19471930 #[ pymethod]
19481931 fn fileno ( & self , vm : & VirtualMachine ) -> PyResult {
19491932 let buffer = self . lock ( vm) ?. buffer . clone ( ) ;
1950- call_method ( vm , & buffer, "fileno" , ( ) )
1933+ vm . call_method ( & buffer, "fileno" , ( ) )
19511934 }
19521935
19531936 #[ pymethod]
19541937 fn read ( & self , size : OptionalOption < PyObjectRef > , vm : & VirtualMachine ) -> PyResult < String > {
19551938 let buffer = self . lock ( vm) ?. buffer . clone ( ) ;
19561939 check_readable ( & buffer, vm) ?;
19571940
1958- let bytes = call_method ( vm , & buffer, "read" , ( size. flatten ( ) , ) ) ?;
1941+ let bytes = vm . call_method ( & buffer, "read" , ( size. flatten ( ) , ) ) ?;
19591942 let bytes = PyBytesLike :: try_from_object ( vm, bytes) ?;
19601943 //format bytes into string
19611944 let rust_string = String :: from_utf8 ( bytes. to_cow ( ) . into_owned ( ) ) . map_err ( |e| {
@@ -1976,9 +1959,9 @@ mod _io {
19761959
19771960 let bytes = obj. borrow_value ( ) . as_bytes ( ) ;
19781961
1979- let len = call_method ( vm , & buffer, "write" , ( bytes. to_owned ( ) , ) ) ;
1962+ let len = vm . call_method ( & buffer, "write" , ( bytes. to_owned ( ) , ) ) ;
19801963 if obj. borrow_value ( ) . contains ( '\n' ) {
1981- let _ = call_method ( vm , & buffer, "flush" , ( ) ) ;
1964+ let _ = vm . call_method ( & buffer, "flush" , ( ) ) ;
19821965 }
19831966 let len = usize:: try_from_object ( vm, len?) ?;
19841967
@@ -1994,14 +1977,14 @@ mod _io {
19941977 fn flush ( & self , vm : & VirtualMachine ) -> PyResult {
19951978 let buffer = self . lock ( vm) ?. buffer . clone ( ) ;
19961979 check_closed ( & buffer, vm) ?;
1997- call_method ( vm , & buffer, "flush" , ( ) )
1980+ vm . call_method ( & buffer, "flush" , ( ) )
19981981 }
19991982
20001983 #[ pymethod]
20011984 fn isatty ( & self , vm : & VirtualMachine ) -> PyResult {
20021985 let buffer = self . lock ( vm) ?. buffer . clone ( ) ;
20031986 check_closed ( & buffer, vm) ?;
2004- call_method ( vm , & buffer, "isatty" , ( ) )
1987+ vm . call_method ( & buffer, "isatty" , ( ) )
20051988 }
20061989
20071990 #[ pymethod]
@@ -2013,7 +1996,7 @@ mod _io {
20131996 let buffer = self . lock ( vm) ?. buffer . clone ( ) ;
20141997 check_readable ( & buffer, vm) ?;
20151998
2016- let bytes = call_method ( vm , & buffer, "readline" , ( size. flatten ( ) , ) ) ?;
1999+ let bytes = vm . call_method ( & buffer, "readline" , ( size. flatten ( ) , ) ) ?;
20172000 let bytes = PyBytesLike :: try_from_object ( vm, bytes) ?;
20182001 //format bytes into string
20192002 let rust_string = String :: from_utf8 ( bytes. borrow_value ( ) . to_vec ( ) ) . map_err ( |e| {
@@ -2028,7 +2011,7 @@ mod _io {
20282011 #[ pymethod]
20292012 fn close ( & self , vm : & VirtualMachine ) -> PyResult {
20302013 let buffer = self . lock ( vm) ?. buffer . clone ( ) ;
2031- call_method ( vm , & buffer, "close" , ( ) )
2014+ vm . call_method ( & buffer, "close" , ( ) )
20322015 }
20332016 #[ pyproperty]
20342017 fn closed ( & self , vm : & VirtualMachine ) -> PyResult {
0 commit comments