Skip to content

Commit fefa322

Browse files
committed
drop _PyObject_GetDictPtr and use PyObject_GenericGetDict instead
1 parent b2c15a4 commit fefa322

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

src/runtime/importhook.cs

+5-3
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ internal static unsafe void Initialize()
9595

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

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

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

src/runtime/runtime.cs

+4-5
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)