Skip to content

Commit 0faebb2

Browse files
committed
drop _PyObject_GetDictPtr and use PyObject_GenericGetDict instead
1 parent 113c2e4 commit 0faebb2

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

src/runtime/importhook.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ internal static unsafe void Initialize()
9494

9595
// both dicts are borrowed references
9696
BorrowedReference mod_dict = Runtime.PyModule_GetDict(ClrModuleReference);
97-
BorrowedReference clr_dict = *Runtime._PyObject_GetDictPtr(root.ObjectReference);
97+
using var clr_dict = Runtime.PyObject_GenericGetDict(root.ObjectReference);
9898

9999
Runtime.PyDict_Update(mod_dict, clr_dict);
100100
BorrowedReference dict = Runtime.PyImport_GetModuleDict();
@@ -156,8 +156,10 @@ public static unsafe NewReference GetCLRModule(BorrowedReference fromList = defa
156156
// update the module dictionary with the contents of the root dictionary
157157
root.LoadNames();
158158
BorrowedReference py_mod_dict = Runtime.PyModule_GetDict(ClrModuleReference);
159-
BorrowedReference clr_dict = *Runtime._PyObject_GetDictPtr(root.ObjectReference);
160-
Runtime.PyDict_Update(py_mod_dict, clr_dict);
159+
using (var clr_dict = Runtime.PyObject_GenericGetDict(root.ObjectReference))
160+
{
161+
Runtime.PyDict_Update(py_mod_dict, clr_dict);
162+
}
161163

162164
// find any items from the from list and get them from the root if they're not
163165
// already in the module dictionary

src/runtime/runtime.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2016,9 +2016,8 @@ internal static IntPtr PyType_GenericAlloc(IntPtr type, long n)
20162016

20172017
internal static int PyObject_GenericSetAttr(IntPtr obj, IntPtr name, IntPtr value) => Delegates.PyObject_GenericSetAttr(obj, name, value);
20182018

2019-
2020-
internal static BorrowedReference* _PyObject_GetDictPtr(BorrowedReference obj) => Delegates._PyObject_GetDictPtr(obj);
2021-
2019+
internal static NewReference PyObject_GenericGetDict(BorrowedReference o) => PyObject_GenericGetDict(o, IntPtr.Zero);
2020+
internal static NewReference PyObject_GenericGetDict(BorrowedReference o, IntPtr context) => Delegates.PyObject_GenericGetDict(o, context);
20222021

20232022
internal static void PyObject_GC_Del(IntPtr tp) => Delegates.PyObject_GC_Del(tp);
20242023

@@ -2466,8 +2465,8 @@ static Delegates()
24662465
PyType_Ready = (delegate* unmanaged[Cdecl]<IntPtr, int>)GetFunctionByName(nameof(PyType_Ready), GetUnmanagedDll(_PythonDll));
24672466
_PyType_Lookup = (delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr>)GetFunctionByName(nameof(_PyType_Lookup), GetUnmanagedDll(_PythonDll));
24682467
PyObject_GenericGetAttr = (delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr>)GetFunctionByName(nameof(PyObject_GenericGetAttr), GetUnmanagedDll(_PythonDll));
2468+
PyObject_GenericGetDict = (delegate* unmanaged[Cdecl]<BorrowedReference, IntPtr, NewReference>)GetFunctionByName(nameof(PyObject_GenericGetDict), GetUnmanagedDll(PythonDLL));
24692469
PyObject_GenericSetAttr = (delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr, int>)GetFunctionByName(nameof(PyObject_GenericSetAttr), GetUnmanagedDll(_PythonDll));
2470-
_PyObject_GetDictPtr = (delegate* unmanaged[Cdecl]<BorrowedReference, BorrowedReference*>)GetFunctionByName(nameof(_PyObject_GetDictPtr), GetUnmanagedDll(_PythonDll));
24712470
PyObject_GC_Del = (delegate* unmanaged[Cdecl]<IntPtr, void>)GetFunctionByName(nameof(PyObject_GC_Del), GetUnmanagedDll(_PythonDll));
24722471
PyObject_GC_Track = (delegate* unmanaged[Cdecl]<IntPtr, void>)GetFunctionByName(nameof(PyObject_GC_Track), GetUnmanagedDll(_PythonDll));
24732472
PyObject_GC_UnTrack = (delegate* unmanaged[Cdecl]<IntPtr, void>)GetFunctionByName(nameof(PyObject_GC_UnTrack), GetUnmanagedDll(_PythonDll));
@@ -2732,7 +2731,6 @@ static Delegates()
27322731
internal static delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr> _PyType_Lookup { get; }
27332732
internal static delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr> PyObject_GenericGetAttr { get; }
27342733
internal static delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr, int> PyObject_GenericSetAttr { get; }
2735-
internal static delegate* unmanaged[Cdecl]<BorrowedReference, BorrowedReference*> _PyObject_GetDictPtr { get; }
27362734
internal static delegate* unmanaged[Cdecl]<IntPtr, void> PyObject_GC_Del { get; }
27372735
internal static delegate* unmanaged[Cdecl]<IntPtr, void> PyObject_GC_Track { get; }
27382736
internal static delegate* unmanaged[Cdecl]<IntPtr, void> PyObject_GC_UnTrack { get; }
@@ -2769,6 +2767,7 @@ static Delegates()
27692767
internal static delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> PyException_SetCause { get; }
27702768
internal static delegate* unmanaged[Cdecl]<uint, IntPtr, int> PyThreadState_SetAsyncExcLLP64 { get; }
27712769
internal static delegate* unmanaged[Cdecl]<ulong, IntPtr, int> PyThreadState_SetAsyncExcLP64 { get; }
2770+
internal static delegate* unmanaged[Cdecl]<BorrowedReference, IntPtr, NewReference> PyObject_GenericGetDict { get; }
27722771
}
27732772
}
27742773

0 commit comments

Comments
 (0)