Skip to content

Commit 08609b9

Browse files
committed
drop _PyObject_GetDictPtr and use PyObject_GenericGetDict instead
1 parent 1985a22 commit 08609b9

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
@@ -2022,9 +2022,8 @@ internal static IntPtr PyType_GenericAlloc(IntPtr type, long n)
20222022

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

2025-
2026-
internal static BorrowedReference* _PyObject_GetDictPtr(BorrowedReference obj) => Delegates._PyObject_GetDictPtr(obj);
2027-
2025+
internal static NewReference PyObject_GenericGetDict(BorrowedReference o) => PyObject_GenericGetDict(o, IntPtr.Zero);
2026+
internal static NewReference PyObject_GenericGetDict(BorrowedReference o, IntPtr context) => Delegates.PyObject_GenericGetDict(o, context);
20282027

20292028
internal static void PyObject_GC_Del(IntPtr tp) => Delegates.PyObject_GC_Del(tp);
20302029

@@ -2472,8 +2471,8 @@ static Delegates()
24722471
PyType_Ready = (delegate* unmanaged[Cdecl]<IntPtr, int>)GetFunctionByName(nameof(PyType_Ready), GetUnmanagedDll(_PythonDll));
24732472
_PyType_Lookup = (delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr>)GetFunctionByName(nameof(_PyType_Lookup), GetUnmanagedDll(_PythonDll));
24742473
PyObject_GenericGetAttr = (delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr>)GetFunctionByName(nameof(PyObject_GenericGetAttr), GetUnmanagedDll(_PythonDll));
2474+
PyObject_GenericGetDict = (delegate* unmanaged[Cdecl]<BorrowedReference, IntPtr, NewReference>)GetFunctionByName(nameof(PyObject_GenericGetDict), GetUnmanagedDll(PythonDLL));
24752475
PyObject_GenericSetAttr = (delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr, int>)GetFunctionByName(nameof(PyObject_GenericSetAttr), GetUnmanagedDll(_PythonDll));
2476-
_PyObject_GetDictPtr = (delegate* unmanaged[Cdecl]<BorrowedReference, BorrowedReference*>)GetFunctionByName(nameof(_PyObject_GetDictPtr), GetUnmanagedDll(_PythonDll));
24772476
PyObject_GC_Del = (delegate* unmanaged[Cdecl]<IntPtr, void>)GetFunctionByName(nameof(PyObject_GC_Del), GetUnmanagedDll(_PythonDll));
24782477
PyObject_GC_Track = (delegate* unmanaged[Cdecl]<IntPtr, void>)GetFunctionByName(nameof(PyObject_GC_Track), GetUnmanagedDll(_PythonDll));
24792478
PyObject_GC_UnTrack = (delegate* unmanaged[Cdecl]<IntPtr, void>)GetFunctionByName(nameof(PyObject_GC_UnTrack), GetUnmanagedDll(_PythonDll));
@@ -2738,7 +2737,6 @@ static Delegates()
27382737
internal static delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr> _PyType_Lookup { get; }
27392738
internal static delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr> PyObject_GenericGetAttr { get; }
27402739
internal static delegate* unmanaged[Cdecl]<IntPtr, IntPtr, IntPtr, int> PyObject_GenericSetAttr { get; }
2741-
internal static delegate* unmanaged[Cdecl]<BorrowedReference, BorrowedReference*> _PyObject_GetDictPtr { get; }
27422740
internal static delegate* unmanaged[Cdecl]<IntPtr, void> PyObject_GC_Del { get; }
27432741
internal static delegate* unmanaged[Cdecl]<IntPtr, void> PyObject_GC_Track { get; }
27442742
internal static delegate* unmanaged[Cdecl]<IntPtr, void> PyObject_GC_UnTrack { get; }
@@ -2775,6 +2773,7 @@ static Delegates()
27752773
internal static delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> PyException_SetCause { get; }
27762774
internal static delegate* unmanaged[Cdecl]<uint, IntPtr, int> PyThreadState_SetAsyncExcLLP64 { get; }
27772775
internal static delegate* unmanaged[Cdecl]<ulong, IntPtr, int> PyThreadState_SetAsyncExcLP64 { get; }
2776+
internal static delegate* unmanaged[Cdecl]<BorrowedReference, IntPtr, NewReference> PyObject_GenericGetDict { get; }
27782777
}
27792778
}
27802779

0 commit comments

Comments
 (0)