@@ -2,7 +2,7 @@ use super::PyMapping;
22use crate :: err:: { self , PyErr , PyResult } ;
33use crate :: ffi:: Py_ssize_t ;
44use crate :: ffi_ptr_ext:: FfiPtrExt ;
5- use crate :: instance:: Py2 ;
5+ use crate :: instance:: { Py2 , Py2Borrowed } ;
66use crate :: py_result_ext:: PyResultExt ;
77use crate :: types:: any:: PyAnyMethods ;
88use crate :: types:: { PyAny , PyList } ;
@@ -406,7 +406,7 @@ impl<'py> PyDictMethods<'py> for Py2<'py, PyDict> {
406406 match unsafe {
407407 ffi:: PyDict_GetItemWithError ( dict. as_ptr ( ) , key. as_ptr ( ) )
408408 . assume_borrowed_or_opt ( py)
409- . map ( |borrowed_any| borrowed_any . clone ( ) )
409+ . map ( Py2Borrowed :: to_owned )
410410 } {
411411 some @ Some ( _) => Ok ( some) ,
412412 None => PyErr :: take ( py) . map ( Err ) . transpose ( ) ,
@@ -595,8 +595,8 @@ impl<'py> Iterator for PyDictIterator2<'py> {
595595 // - PyDict_Next returns borrowed values
596596 // - we have already checked that `PyDict_Next` succeeded, so we can assume these to be non-null
597597 Some ( (
598- unsafe { key. assume_borrowed_unchecked ( py) } . clone ( ) ,
599- unsafe { value. assume_borrowed_unchecked ( py) } . clone ( ) ,
598+ unsafe { key. assume_borrowed_unchecked ( py) } . to_owned ( ) ,
599+ unsafe { value. assume_borrowed_unchecked ( py) } . to_owned ( ) ,
600600 ) )
601601 } else {
602602 None
0 commit comments