@@ -715,15 +715,6 @@ internal static unsafe void XIncref(IntPtr op)
715
715
#endif
716
716
}
717
717
718
- internal static NewReference NewRef ( BorrowedReference reference )
719
- {
720
- var address = reference . DangerousGetAddress ( ) ;
721
- XIncref ( address ) ;
722
- return NewReference . DangerousFromPointer ( address ) ;
723
- }
724
- internal static NewReference NewRefOrNull ( BorrowedReference reference )
725
- => reference . IsNull ? default : NewRef ( reference ) ;
726
-
727
718
/// <summary>
728
719
/// Increase Python's ref counter for the given object, and get the object back.
729
720
/// </summary>
@@ -1039,19 +1030,12 @@ internal static int PyObject_HasAttrString(BorrowedReference pointer, string nam
1039
1030
1040
1031
internal static IntPtr PyObject_GetAttrString ( IntPtr pointer , string name )
1041
1032
{
1042
- IntPtr nameMem = Marshal. StringToHGlobalAnsi( name ) ;
1043
- try
1044
- {
1045
- return Delegates. PyObject_GetAttrString ( pointer , nameMem ) ;
1046
- }
1047
- finally
1048
- {
1049
- Marshal . FreeHGlobal ( nameMem ) ;
1050
- }
1033
+ using var namePtr = new StrPtr ( name , Encoding . UTF8 ) ;
1034
+ return Delegates . PyObject_GetAttrString ( pointer , namePtr ) ;
1051
1035
}
1052
1036
1053
1037
1054
- internal static IntPtr PyObject_GetAttrString( IntPtr pointer , IntPtr name ) => Delegates . PyObject_GetAttrString ( pointer , name ) ;
1038
+ internal static IntPtr PyObject_GetAttrString ( IntPtr pointer , StrPtr name ) => Delegates . PyObject_GetAttrString ( pointer , name ) ;
1055
1039
1056
1040
1057
1041
internal static int PyObject_SetAttrString ( IntPtr pointer , string name , IntPtr value )
@@ -1060,7 +1044,7 @@ internal static int PyObject_SetAttrString(IntPtr pointer, string name, IntPtr v
1060
1044
return Delegates . PyObject_SetAttrString ( pointer , namePtr , value ) ;
1061
1045
}
1062
1046
1063
- internal static int PyObject_HasAttr ( IntPtr pointer , IntPtr name ) => Delegates . PyObject_HasAttr ( pointer , name ) ;
1047
+ internal static int PyObject_HasAttr ( BorrowedReference pointer , BorrowedReference name ) => Delegates . PyObject_HasAttr ( pointer , name ) ;
1064
1048
1065
1049
1066
1050
internal static NewReference PyObject_GetAttr ( BorrowedReference pointer , IntPtr name )
@@ -1324,7 +1308,7 @@ internal static bool PyFloat_Check(IntPtr ob)
1324
1308
internal static IntPtr PyFloat_FromDouble ( double value ) => Delegates . PyFloat_FromDouble ( value ) ;
1325
1309
1326
1310
1327
- internal static IntPtr PyFloat_FromString ( IntPtr value , IntPtr junk ) => Delegates . PyFloat_FromString ( value , junk ) ;
1311
+ internal static NewReference PyFloat_FromString ( BorrowedReference value ) => Delegates . PyFloat_FromString ( value ) ;
1328
1312
1329
1313
1330
1314
internal static double PyFloat_AsDouble ( IntPtr ob ) => Delegates . PyFloat_AsDouble ( ob ) ;
@@ -1990,8 +1974,6 @@ internal static int PySys_SetObject(string name, BorrowedReference ob)
1990
1974
//====================================================================
1991
1975
// Python type object API
1992
1976
//====================================================================
1993
- static readonly delegate * unmanaged[ Cdecl] < IntPtr , bool > pyType_Check ;
1994
-
1995
1977
internal static bool PyType_Check ( IntPtr ob )
1996
1978
{
1997
1979
return PyObject_TypeCheck ( ob , PyTypeType ) ;
@@ -2272,7 +2254,7 @@ private static class Delegates
2272
2254
static Delegates ( )
2273
2255
{
2274
2256
PyDictProxy_New = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr > ) GetFunctionByName ( nameof ( PyDictProxy_New ) , GetUnmanagedDll ( _PythonDll ) ) ;
2275
- Py_IncRef = ( delegate * unmanaged[ Cdecl] < IntPtr , void > ) GetFunctionByName ( nameof ( Py_IncRef ) , GetUnmanagedDll ( _PythonDll ) ) ;
2257
+ Py_IncRef = ( delegate * unmanaged[ Cdecl] < IntPtr , void > ) GetFunctionByName ( nameof ( Py_IncRef ) , GetUnmanagedDll ( _PythonDll ) ) ;
2276
2258
Py_DecRef = ( delegate * unmanaged[ Cdecl] < IntPtr , void > ) GetFunctionByName ( nameof ( Py_DecRef ) , GetUnmanagedDll ( _PythonDll ) ) ;
2277
2259
Py_Initialize = ( delegate * unmanaged[ Cdecl] < void > ) GetFunctionByName ( nameof ( Py_Initialize ) , GetUnmanagedDll ( _PythonDll ) ) ;
2278
2260
Py_InitializeEx = ( delegate * unmanaged[ Cdecl] < int , void > ) GetFunctionByName ( nameof ( Py_InitializeEx ) , GetUnmanagedDll ( _PythonDll ) ) ;
@@ -2322,9 +2304,9 @@ static Delegates()
2322
2304
PyCFunction_Call = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr , IntPtr > ) GetFunctionByName ( nameof ( PyCFunction_Call ) , GetUnmanagedDll ( _PythonDll ) ) ;
2323
2305
PyMethod_New = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr , IntPtr > ) GetFunctionByName ( nameof ( PyMethod_New ) , GetUnmanagedDll ( _PythonDll ) ) ;
2324
2306
PyObject_HasAttrString = ( delegate * unmanaged[ Cdecl] < BorrowedReference , StrPtr , int > ) GetFunctionByName ( nameof ( PyObject_HasAttrString ) , GetUnmanagedDll ( _PythonDll ) ) ;
2325
- PyObject_GetAttrString = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > ) GetFunctionByName ( nameof ( PyObject_GetAttrString ) , GetUnmanagedDll ( _PythonDll ) ) ;
2307
+ PyObject_GetAttrString = ( delegate * unmanaged[ Cdecl] < IntPtr , StrPtr , IntPtr > ) GetFunctionByName ( nameof ( PyObject_GetAttrString ) , GetUnmanagedDll ( _PythonDll ) ) ;
2326
2308
PyObject_SetAttrString = ( delegate * unmanaged[ Cdecl] < IntPtr , StrPtr , IntPtr , int > ) GetFunctionByName ( nameof ( PyObject_SetAttrString ) , GetUnmanagedDll ( _PythonDll ) ) ;
2327
- PyObject_HasAttr = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , int > ) GetFunctionByName ( nameof ( PyObject_HasAttr ) , GetUnmanagedDll ( _PythonDll ) ) ;
2309
+ PyObject_HasAttr = ( delegate * unmanaged[ Cdecl] < BorrowedReference , BorrowedReference , int > ) GetFunctionByName ( nameof ( PyObject_HasAttr ) , GetUnmanagedDll ( _PythonDll ) ) ;
2328
2310
PyObject_GetAttr = ( delegate * unmanaged[ Cdecl] < BorrowedReference , BorrowedReference , NewReference > ) GetFunctionByName ( nameof ( PyObject_GetAttr ) , GetUnmanagedDll ( _PythonDll ) ) ;
2329
2311
PyObject_SetAttr = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr , int > ) GetFunctionByName ( nameof ( PyObject_SetAttr ) , GetUnmanagedDll ( _PythonDll ) ) ;
2330
2312
PyObject_GetItem = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > ) GetFunctionByName ( nameof ( PyObject_GetItem ) , GetUnmanagedDll ( _PythonDll ) ) ;
@@ -2382,7 +2364,7 @@ static Delegates()
2382
2364
PyLong_FromVoidPtr = ( delegate * unmanaged[ Cdecl] < IntPtr , NewReference > ) GetFunctionByName ( nameof ( PyLong_FromVoidPtr ) , GetUnmanagedDll ( _PythonDll ) ) ;
2383
2365
PyLong_AsVoidPtr = ( delegate * unmanaged[ Cdecl] < BorrowedReference , IntPtr > ) GetFunctionByName ( nameof ( PyLong_AsVoidPtr ) , GetUnmanagedDll ( _PythonDll ) ) ;
2384
2366
PyFloat_FromDouble = ( delegate * unmanaged[ Cdecl] < double , IntPtr > ) GetFunctionByName ( nameof ( PyFloat_FromDouble ) , GetUnmanagedDll ( _PythonDll ) ) ;
2385
- PyFloat_FromString = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > ) GetFunctionByName ( nameof ( PyFloat_FromString ) , GetUnmanagedDll ( _PythonDll ) ) ;
2367
+ PyFloat_FromString = ( delegate * unmanaged[ Cdecl] < BorrowedReference , NewReference > ) GetFunctionByName ( nameof ( PyFloat_FromString ) , GetUnmanagedDll ( _PythonDll ) ) ;
2386
2368
PyFloat_AsDouble = ( delegate * unmanaged[ Cdecl] < IntPtr , double > ) GetFunctionByName ( nameof ( PyFloat_AsDouble ) , GetUnmanagedDll ( _PythonDll ) ) ;
2387
2369
PyNumber_Add = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > ) GetFunctionByName ( nameof ( PyNumber_Add ) , GetUnmanagedDll ( _PythonDll ) ) ;
2388
2370
PyNumber_Subtract = ( delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > ) GetFunctionByName ( nameof ( PyNumber_Subtract ) , GetUnmanagedDll ( _PythonDll ) ) ;
@@ -2594,9 +2576,9 @@ static Delegates()
2594
2576
internal static delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr , IntPtr > PyCFunction_Call { get ; }
2595
2577
internal static delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr , IntPtr > PyMethod_New { get ; }
2596
2578
internal static delegate * unmanaged[ Cdecl] < BorrowedReference , StrPtr , int > PyObject_HasAttrString { get ; }
2597
- internal static delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > PyObject_GetAttrString { get ; }
2579
+ internal static delegate * unmanaged[ Cdecl] < IntPtr , StrPtr , IntPtr > PyObject_GetAttrString { get ; }
2598
2580
internal static delegate * unmanaged[ Cdecl] < IntPtr , StrPtr , IntPtr , int > PyObject_SetAttrString { get ; }
2599
- internal static delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , int > PyObject_HasAttr { get ; }
2581
+ internal static delegate * unmanaged[ Cdecl] < BorrowedReference , BorrowedReference , int > PyObject_HasAttr { get ; }
2600
2582
internal static delegate * unmanaged[ Cdecl] < BorrowedReference , BorrowedReference , NewReference > PyObject_GetAttr { get ; }
2601
2583
internal static delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr , int > PyObject_SetAttr { get ; }
2602
2584
internal static delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > PyObject_GetItem { get ; }
@@ -2647,7 +2629,7 @@ static Delegates()
2647
2629
internal static delegate * unmanaged[ Cdecl] < IntPtr , NewReference > PyLong_FromVoidPtr { get ; }
2648
2630
internal static delegate * unmanaged[ Cdecl] < BorrowedReference , IntPtr > PyLong_AsVoidPtr { get ; }
2649
2631
internal static delegate * unmanaged[ Cdecl] < double , IntPtr > PyFloat_FromDouble { get ; }
2650
- internal static delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > PyFloat_FromString { get ; }
2632
+ internal static delegate * unmanaged[ Cdecl] < BorrowedReference , NewReference > PyFloat_FromString { get ; }
2651
2633
internal static delegate * unmanaged[ Cdecl] < IntPtr , double > PyFloat_AsDouble { get ; }
2652
2634
internal static delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > PyNumber_Add { get ; }
2653
2635
internal static delegate * unmanaged[ Cdecl] < IntPtr , IntPtr , IntPtr > PyNumber_Subtract { get ; }
0 commit comments