[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/pythonnet/pythonnet/v3.0.1/src/runtime/Native/NativeCall.cs [Back]  [Original]

using System;

namespace Python.Runtime
{
    /// 
    /// Provides support for calling native code indirectly through
    /// function pointers. Most of the important parts of the Python
    /// C API can just be wrapped with p/invoke, but there are some
    /// situations (specifically, calling functions through Python
    /// type structures) where we need to call functions indirectly.
    /// 
    internal unsafe class NativeCall
    {
        public static void CallDealloc(IntPtr fp, StolenReference a1)
        {
            var d = (delegate* unmanaged[Cdecl])fp;
            d(a1);
        }

        public static NewReference Call_3(IntPtr fp, BorrowedReference a1, BorrowedReference a2, BorrowedReference a3)
        {
            var d = (delegate* unmanaged[Cdecl])fp;
            return d(a1, a2, a3);
        }


        public static int Int_Call_3(IntPtr fp, BorrowedReference a1, BorrowedReference a2, BorrowedReference a3)
        {
            var d = (delegate* unmanaged[Cdecl])fp;
            return d(a1, a2, a3);
        }
    }
}

Web Proxy Viewer  |  New URL  |  Original Page