diff options
Diffstat (limited to 'src/mscorlib/src/System/ArgIterator.cs')
-rw-r--r-- | src/mscorlib/src/System/ArgIterator.cs | 69 |
1 files changed, 59 insertions, 10 deletions
diff --git a/src/mscorlib/src/System/ArgIterator.cs b/src/mscorlib/src/System/ArgIterator.cs index c5bc379505..83a60b95e1 100644 --- a/src/mscorlib/src/System/ArgIterator.cs +++ b/src/mscorlib/src/System/ArgIterator.cs @@ -16,6 +16,19 @@ namespace System { [StructLayout(LayoutKind.Sequential)] public struct ArgIterator { + private IntPtr ArgCookie; // Cookie from the EE. + + // The SigPointer structure consists of the following members. (Note: this is an inline native SigPointer data type) + private IntPtr sigPtr; // Pointer to remaining signature. + private IntPtr sigPtrLen; // Remaining length of the pointer + + // Note, sigPtrLen is actually a DWORD, but on 64bit systems this structure becomes + // 8-byte aligned, which requires us to pad it. + + private IntPtr ArgPtr; // Pointer to remaining args. + private int RemainingArgs; // # of remaining args. + +#if VARARGS_ENABLED //The JIT doesn't support Varargs calling convention. [MethodImplAttribute(MethodImplOptions.InternalCall)] private extern ArgIterator(IntPtr arglist); @@ -34,7 +47,6 @@ namespace System { // This is much like the C va_start macro [CLSCompliant(false)] - public unsafe ArgIterator(RuntimeArgumentHandle arglist, void* ptr) : this(arglist.Value, ptr) { } @@ -121,17 +133,54 @@ namespace System { { throw new NotSupportedException(Environment.GetResourceString("NotSupported_NYI")); } +#else + public ArgIterator(RuntimeArgumentHandle arglist) + { + throw new PlatformNotSupportedException(); //The JIT requires work to enable ArgIterator see: https://github.com/dotnet/coreclr/issues/9204. + } - private IntPtr ArgCookie; // Cookie from the EE. + [CLSCompliant(false)] + public unsafe ArgIterator(RuntimeArgumentHandle arglist, void* ptr) + { + throw new PlatformNotSupportedException(); //The JIT requires work to enable ArgIterator see: https://github.com/dotnet/coreclr/issues/9204. + } - // The SigPointer structure consists of the following members. (Note: this is an inline native SigPointer data type) - private IntPtr sigPtr; // Pointer to remaining signature. - private IntPtr sigPtrLen; // Remaining length of the pointer + public void End() + { + throw new PlatformNotSupportedException(); //The JIT requires work to enable ArgIterator see: https://github.com/dotnet/coreclr/issues/9204. + } - // Note, sigPtrLen is actually a DWORD, but on 64bit systems this structure becomes - // 8-byte aligned, which requires us to pad it. - - private IntPtr ArgPtr; // Pointer to remaining args. - private int RemainingArgs; // # of remaining args. + public override bool Equals(Object o) + { + throw new PlatformNotSupportedException(); //The JIT requires work to enable ArgIterator see: https://github.com/dotnet/coreclr/issues/9204. + } + + public override int GetHashCode() + { + throw new PlatformNotSupportedException(); //The JIT requires work to enable ArgIterator see: https://github.com/dotnet/coreclr/issues/9204. + } + + [System.CLSCompliantAttribute(false)] + public System.TypedReference GetNextArg() + { + throw new PlatformNotSupportedException(); //The JIT requires work to enable ArgIterator see: https://github.com/dotnet/coreclr/issues/9204. + } + + [System.CLSCompliantAttribute(false)] + public System.TypedReference GetNextArg(System.RuntimeTypeHandle rth) + { + throw new PlatformNotSupportedException(); //The JIT requires work to enable ArgIterator see: https://github.com/dotnet/coreclr/issues/9204. + } + + public unsafe System.RuntimeTypeHandle GetNextArgType() + { + throw new PlatformNotSupportedException(); //The JIT requires work to enable ArgIterator see: https://github.com/dotnet/coreclr/issues/9204. + } + + public int GetRemainingCount() + { + throw new PlatformNotSupportedException(); //The JIT requires work to enable ArgIterator see: https://github.com/dotnet/coreclr/issues/9204. + } +#endif //VARARGS_ENABLED } } |