@@ -4,7 +4,7 @@ use crate::{
4
4
asyncgenerator:: PyAsyncGenWrappedValue ,
5
5
function:: { PyCell , PyCellRef , PyFunction } ,
6
6
tuple:: { PyTuple , PyTupleTyped } ,
7
- PyBaseExceptionRef , PyCode , PyCoroutine , PyDict , PyDictRef , PyGenerator , PyListRef , PySet ,
7
+ PyBaseExceptionRef , PyCode , PyCoroutine , PyDict , PyDictRef , PyGenerator , PyList , PySet ,
8
8
PySlice , PyStr , PyStrRef , PyTraceback , PyTypeRef ,
9
9
} ,
10
10
bytecode,
@@ -670,19 +670,19 @@ impl ExecutingFrame<'_> {
670
670
bytecode:: Instruction :: ListAppend { i } => {
671
671
let item = self . pop_value ( ) ;
672
672
let obj = self . nth_value ( * i) ;
673
- let list: PyListRef = unsafe {
673
+ let list: & Py < PyList > = unsafe {
674
674
// SAFETY: trust compiler
675
- obj. downcast_unchecked ( )
675
+ obj. downcast_unchecked_ref ( )
676
676
} ;
677
677
list. append ( item) ;
678
678
Ok ( None )
679
679
}
680
680
bytecode:: Instruction :: SetAdd { i } => {
681
681
let item = self . pop_value ( ) ;
682
682
let obj = self . nth_value ( * i) ;
683
- let set: PyRef < PySet > = unsafe {
683
+ let set: & Py < PySet > = unsafe {
684
684
// SAFETY: trust compiler
685
- obj. downcast_unchecked ( )
685
+ obj. downcast_unchecked_ref ( )
686
686
} ;
687
687
set. add ( item, vm) ?;
688
688
Ok ( None )
@@ -691,9 +691,9 @@ impl ExecutingFrame<'_> {
691
691
let key = self . pop_value ( ) ;
692
692
let value = self . pop_value ( ) ;
693
693
let obj = self . nth_value ( * i) ;
694
- let dict: PyDictRef = unsafe {
694
+ let dict: & Py < PyDict > = unsafe {
695
695
// SAFETY: trust compiler
696
- obj. downcast_unchecked ( )
696
+ obj. downcast_unchecked_ref ( )
697
697
} ;
698
698
dict. set_item ( & * key, value, vm) ?;
699
699
Ok ( None )
@@ -703,9 +703,9 @@ impl ExecutingFrame<'_> {
703
703
let value = self . pop_value ( ) ;
704
704
let key = self . pop_value ( ) ;
705
705
let obj = self . nth_value ( * i) ;
706
- let dict: PyDictRef = unsafe {
706
+ let dict: & Py < PyDict > = unsafe {
707
707
// SAFETY: trust compiler
708
- obj. downcast_unchecked ( )
708
+ obj. downcast_unchecked_ref ( )
709
709
} ;
710
710
dict. set_item ( & * key, value, vm) ?;
711
711
Ok ( None )
@@ -1811,8 +1811,9 @@ impl ExecutingFrame<'_> {
1811
1811
}
1812
1812
1813
1813
#[ inline]
1814
- fn nth_value ( & self , depth : u32 ) -> PyObjectRef {
1815
- self . state . stack [ self . state . stack . len ( ) - depth as usize - 1 ] . clone ( )
1814
+ fn nth_value ( & self , depth : u32 ) -> & PyObject {
1815
+ let stack = & self . state . stack ;
1816
+ & stack[ stack. len ( ) - depth as usize - 1 ]
1816
1817
}
1817
1818
1818
1819
#[ cold]
0 commit comments