This repository was archived by the owner on Jul 22, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +12
-11
lines changed
Expand file tree Collapse file tree 3 files changed +12
-11
lines changed Original file line number Diff line number Diff line change @@ -446,18 +446,18 @@ private static void ClearClrModules()
446446 {
447447 var modules = PyImport_GetModuleDict ( ) ;
448448 var items = PyDict_Items ( modules ) ;
449- long length = PyList_Size ( items ) ;
449+ long length = PyList_Size ( items . DangerousGetAddress ( ) ) ;
450450 for ( long i = 0 ; i < length ; i ++ )
451451 {
452- var item = PyList_GetItem ( items , i ) ;
453- var name = PyTuple_GetItem ( item , 0 ) ;
454- var module = PyTuple_GetItem ( item , 1 ) ;
452+ var item = PyList_GetItem ( items . DangerousGetAddress ( ) , i ) ;
453+ var name = PyTuple_GetItem ( item . DangerousGetAddress ( ) , 0 ) ;
454+ var module = PyTuple_GetItem ( item . DangerousGetAddress ( ) , 1 ) ;
455455 if ( ManagedType . IsManagedType ( module ) )
456456 {
457457 PyDict_DelItem ( modules , name ) ;
458458 }
459459 }
460- XDecref ( items ) ;
460+ items . Dispose ( ) ;
461461 }
462462
463463 private static void RemoveClrRootModule ( )
Original file line number Diff line number Diff line change @@ -224,22 +224,23 @@ private static void StashPopObjects(RuntimeDataStorage storage)
224224 private static void StashPushModules ( RuntimeDataStorage storage )
225225 {
226226 var pyModules = PyImport_GetModuleDict ( ) ;
227- var items = PyDict_Items ( pyModules ) ;
227+ var itemsRef = PyDict_Items ( pyModules ) ;
228+ var items = itemsRef . DangerousGetAddress ( ) ;
228229 long length = PyList_Size ( items ) ;
229230 var modules = new Dictionary < IntPtr , IntPtr > ( ) ; ;
230231 for ( long i = 0 ; i < length ; i ++ )
231232 {
232233 var item = PyList_GetItem ( items , i ) ;
233- var name = PyTuple_GetItem ( item , 0 ) ;
234- var module = PyTuple_GetItem ( item , 1 ) ;
234+ var name = PyTuple_GetItem ( item . DangerousGetAddress ( ) , 0 ) ;
235+ var module = PyTuple_GetItem ( item . DangerousGetAddress ( ) , 1 ) ;
235236 if ( ManagedType . IsManagedType ( module ) )
236237 {
237238 XIncref ( name ) ;
238239 XIncref ( module ) ;
239240 modules . Add ( name , module ) ;
240241 }
241242 }
242- XDecref ( items ) ;
243+ itemsRef . Dispose ( ) ;
243244 storage . AddValue ( "modules" , modules ) ;
244245 }
245246
Original file line number Diff line number Diff line change @@ -152,7 +152,7 @@ public static IEnumerable<IntPtr> PyGCGetObjects()
152152 for ( long i = 0 ; i < length ; i ++ )
153153 {
154154 var obj = PyList_GetItem ( objs , i ) ;
155- yield return obj ;
155+ yield return obj . DangerousGetAddress ( ) ;
156156 }
157157 XDecref ( objs ) ;
158158 XDecref ( gc ) ;
@@ -166,7 +166,7 @@ public static IEnumerable<IntPtr> GetModuleNames()
166166 for ( int i = 0 ; i < length ; i ++ )
167167 {
168168 var name = PyList_GetItem ( names , i ) ;
169- yield return name ;
169+ yield return name . DangerousGetAddress ( ) ;
170170 }
171171 }
172172
You can’t perform that action at this time.
0 commit comments