@@ -16,7 +16,7 @@ mod _socket {
1616 convert:: { ToPyException , ToPyObject , TryFromBorrowedObject , TryFromObject } ,
1717 function:: { ArgBytesLike , ArgMemoryBuffer , Either , FuncArgs , OptionalArg , OptionalOption } ,
1818 utils:: ToCString ,
19- AsObject , PyObjectRef , PyPayload , PyResult , VirtualMachine ,
19+ AsObject , PyObjectRef , PyPayload , PyRef , PyResult , VirtualMachine ,
2020 } ;
2121 use crossbeam_utils:: atomic:: AtomicCell ;
2222 use num_traits:: ToPrimitive ;
@@ -548,15 +548,16 @@ mod _socket {
548548 Self :: default ( ) . into_ref_with_type ( vm, cls) . map ( Into :: into)
549549 }
550550
551+ #[ pyslot]
551552 #[ pymethod( magic) ]
552- fn init (
553- & self ,
554- family : OptionalArg < i32 > ,
555- socket_kind : OptionalArg < i32 > ,
556- proto : OptionalArg < i32 > ,
557- fileno : OptionalOption < PyObjectRef > ,
558- vm : & VirtualMachine ,
559- ) -> PyResult < ( ) > {
553+ fn init ( zelf : PyObjectRef , args : FuncArgs , vm : & VirtualMachine ) -> PyResult < ( ) > {
554+ let zelf : PyRef < Self > = zelf . try_into_value ( vm ) ? ;
555+ let ( family, socket_kind , proto , fileno ) : (
556+ OptionalArg < i32 > ,
557+ OptionalArg < i32 > ,
558+ OptionalArg < i32 > ,
559+ OptionalOption < PyObjectRef > ,
560+ ) = args . bind ( vm ) ? ;
560561 let mut family = family. unwrap_or ( -1 ) ;
561562 let mut socket_kind = socket_kind. unwrap_or ( -1 ) ;
562563 let mut proto = proto. unwrap_or ( -1 ) ;
@@ -628,7 +629,7 @@ mod _socket {
628629 )
629630 . map_err ( |err| err. to_pyexception ( vm) ) ?;
630631 } ;
631- self . init_inner ( family, socket_kind, proto, sock, vm)
632+ zelf . init_inner ( family, socket_kind, proto, sock, vm)
632633 }
633634
634635 #[ pymethod]
0 commit comments