public unsafe static IntPtr MakeThunk(ThunkKind thunkKind,
                                       IntPtr targetPointer,
                                       IntPtr instantiatingArg,
                                       bool hasThis, RuntimeTypeHandle[] parameters,
                                       bool[] byRefParameters,
                                       bool[] paramsByRefForced)
 {
     throw new NotImplementedException();
 }
示例#2
0
 internal static unsafe IntPtr MakeThunk(ThunkKind thunkKind, IntPtr targetPointer, IntPtr instantiatingArg, ArgIteratorData argIteratorData, bool[] paramsByRefForced)
 {
     int callConversionInfo = CallConversionInfo.RegisterCallConversionInfo(thunkKind, targetPointer, instantiatingArg, argIteratorData, paramsByRefForced);
     return FindExistingOrAllocateThunk(callConversionInfo);
 }
示例#3
0
 public static unsafe IntPtr MakeThunk(ThunkKind thunkKind, IntPtr targetPointer, RuntimeMethodSignature methodSignature, IntPtr instantiatingArg, RuntimeTypeHandle[] typeArgs, RuntimeTypeHandle[] methodArgs)
 {
     int callConversionInfo = CallConversionInfo.RegisterCallConversionInfo(thunkKind, targetPointer, methodSignature, instantiatingArg, typeArgs, methodArgs);
     return FindExistingOrAllocateThunk(callConversionInfo);
 }
示例#4
0
        public static unsafe IntPtr MakeThunk(ThunkKind thunkKind,
                                              IntPtr targetPointer,
                                              IntPtr instantiatingArg,
                                              bool hasThis, RuntimeTypeHandle[] parameters,
                                              bool[] byRefParameters,
                                              bool[] paramsByRefForced)
        {
            // Build thunk data
            TypeHandle thReturnType = new TypeHandle(GetByRefIndicatorAtIndex(0, byRefParameters), parameters[0]);
            TypeHandle[] thParameters = null;
            if (parameters.Length > 1)
            {
                thParameters = new TypeHandle[parameters.Length - 1];
                for (int i = 1; i < parameters.Length; i++)
                {
                    thParameters[i - 1] = new TypeHandle(GetByRefIndicatorAtIndex(i, byRefParameters), parameters[i]);
                }
            }

            int callConversionInfo = CallConversionInfo.RegisterCallConversionInfo(thunkKind, targetPointer, instantiatingArg, hasThis, thReturnType, thParameters, paramsByRefForced);
            return FindExistingOrAllocateThunk(callConversionInfo);
        }
 public unsafe static IntPtr MakeThunk(ThunkKind thunkKind,
                                       IntPtr targetPointer,
                                       IntPtr instantiatingArg,
                                       bool hasThis, RuntimeTypeHandle[] parameters,
                                       bool[] byRefParameters,
                                       bool[] paramsByRefForced)
 {
     throw new NotImplementedException();
 }