@@ -188,10 +188,7 @@ fn type_slot_names(typ: &Py<PyType>, vm: &VirtualMachine) -> PyResult<Option<sup
188188fn object_getstate_default ( obj : & PyObject , required : bool , vm : & VirtualMachine ) -> PyResult {
189189 // Check itemsize - CPython lines 7260-7264
190190 if required && obj. class ( ) . slots . itemsize > 0 {
191- return Err ( vm. new_type_error ( format ! (
192- "cannot pickle {:.200} objects" ,
193- obj. class( ) . name( )
194- ) ) ) ;
191+ return Err ( vm. new_type_error ( format ! ( "cannot pickle {:.200} objects" , obj. class( ) . name( ) ) ) ) ;
195192 }
196193
197194 let state = if obj. dict ( ) . is_none_or ( |d| d. is_empty ( ) ) {
@@ -228,9 +225,7 @@ fn object_getstate_default(obj: &PyObject, required: bool, vm: &VirtualMachine)
228225
229226 // Compare: if actual type's basicsize > expected basicsize, fail (CPython lines 7297-7304)
230227 if obj. class ( ) . slots . basicsize > basicsize {
231- return Err (
232- vm. new_type_error ( format ! ( "cannot pickle '{}' object" , obj. class( ) . name( ) ) )
233- ) ;
228+ return Err ( vm. new_type_error ( format ! ( "cannot pickle '{}' object" , obj. class( ) . name( ) ) ) ) ;
234229 }
235230 }
236231
@@ -675,9 +670,7 @@ fn reduce_newobj(obj: PyObjectRef, vm: &VirtualMachine) -> PyResult {
675670 // Check if type has tp_new
676671 let cls = obj. class ( ) ;
677672 if cls. slots . new . load ( ) . is_none ( ) {
678- return Err (
679- vm. new_type_error ( format ! ( "cannot pickle '{}' object" , cls. name( ) ) )
680- ) ;
673+ return Err ( vm. new_type_error ( format ! ( "cannot pickle '{}' object" , cls. name( ) ) ) ) ;
681674 }
682675
683676 let ( args, kwargs) = get_new_arguments ( & obj, vm) ?;
@@ -686,13 +679,13 @@ fn reduce_newobj(obj: PyObjectRef, vm: &VirtualMachine) -> PyResult {
686679
687680 let has_args = args. is_some ( ) ;
688681
689- let ( newobj, newargs) : ( PyObjectRef , PyObjectRef ) = if kwargs. is_none ( ) || kwargs. as_ref ( ) . is_some_and ( |k| k. is_empty ( ) ) {
682+ let ( newobj, newargs) : ( PyObjectRef , PyObjectRef ) = if kwargs. is_none ( )
683+ || kwargs. as_ref ( ) . is_some_and ( |k| k. is_empty ( ) )
684+ {
690685 // Use copyreg.__newobj__
691686 let newobj = copyreg. get_attr ( "__newobj__" , vm) ?;
692687
693- let args_vec: Vec < PyObjectRef > = args
694- . map ( |a| a. as_slice ( ) . to_vec ( ) )
695- . unwrap_or_default ( ) ;
688+ let args_vec: Vec < PyObjectRef > = args. map ( |a| a. as_slice ( ) . to_vec ( ) ) . unwrap_or_default ( ) ;
696689
697690 // Create (cls, *args) tuple
698691 let mut newargs_vec: Vec < PyObjectRef > = vec ! [ cls. to_owned( ) . into( ) ] ;
@@ -703,10 +696,16 @@ fn reduce_newobj(obj: PyObjectRef, vm: &VirtualMachine) -> PyResult {
703696 } else {
704697 // Use copyreg.__newobj_ex__
705698 let newobj = copyreg. get_attr ( "__newobj_ex__" , vm) ?;
706- let args_tuple: PyObjectRef = args. map ( |a| a. into ( ) ) . unwrap_or_else ( || vm. ctx . empty_tuple . clone ( ) . into ( ) ) ;
707- let kwargs_dict: PyObjectRef = kwargs. map ( |k| k. into ( ) ) . unwrap_or_else ( || vm. ctx . new_dict ( ) . into ( ) ) ;
708-
709- let newargs = vm. ctx . new_tuple ( vec ! [ cls. to_owned( ) . into( ) , args_tuple, kwargs_dict] ) ;
699+ let args_tuple: PyObjectRef = args
700+ . map ( |a| a. into ( ) )
701+ . unwrap_or_else ( || vm. ctx . empty_tuple . clone ( ) . into ( ) ) ;
702+ let kwargs_dict: PyObjectRef = kwargs
703+ . map ( |k| k. into ( ) )
704+ . unwrap_or_else ( || vm. ctx . new_dict ( ) . into ( ) ) ;
705+
706+ let newargs = vm
707+ . ctx
708+ . new_tuple ( vec ! [ cls. to_owned( ) . into( ) , args_tuple, kwargs_dict] ) ;
710709 ( newobj, newargs. into ( ) )
711710 } ;
712711
@@ -720,7 +719,9 @@ fn reduce_newobj(obj: PyObjectRef, vm: &VirtualMachine) -> PyResult {
720719
721720 let ( listitems, dictitems) = get_items_iter ( & obj, vm) ?;
722721
723- let result = vm. ctx . new_tuple ( vec ! [ newobj, newargs, state, listitems, dictitems] ) ;
722+ let result = vm
723+ . ctx
724+ . new_tuple ( vec ! [ newobj, newargs, state, listitems, dictitems] ) ;
724725 Ok ( result. into ( ) )
725726}
726727
0 commit comments