Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ArgIterator.cs
Go to the documentation of this file.
2
3namespace System;
4
5public ref struct ArgIterator
6{
8
9 private IntPtr sigPtr;
10
12
13 private IntPtr ArgPtr;
14
15 private int RemainingArgs;
16
17 [MethodImpl(MethodImplOptions.InternalCall)]
18 private extern ArgIterator(IntPtr arglist);
19
21 : this(arglist.Value)
22 {
23 }
24
25 [MethodImpl(MethodImplOptions.InternalCall)]
26 private unsafe extern ArgIterator(IntPtr arglist, void* ptr);
27
28 [CLSCompliant(false)]
29 public unsafe ArgIterator(RuntimeArgumentHandle arglist, void* ptr)
30 : this(arglist.Value, ptr)
31 {
32 }
33
34 [CLSCompliant(false)]
35 public unsafe TypedReference GetNextArg()
36 {
37 TypedReference result = default(TypedReference);
38 FCallGetNextArg(&result);
39 return result;
40 }
41
42 [MethodImpl(MethodImplOptions.InternalCall)]
43 private unsafe extern void FCallGetNextArg(void* result);
44
45 [CLSCompliant(false)]
47 {
48 if (sigPtr != IntPtr.Zero)
49 {
50 return GetNextArg();
51 }
52 if (ArgPtr == IntPtr.Zero)
53 {
54 throw new ArgumentNullException();
55 }
56 TypedReference result = default(TypedReference);
57 InternalGetNextArg(&result, rth.GetRuntimeType());
58 return result;
59 }
60
61 [MethodImpl(MethodImplOptions.InternalCall)]
62 private unsafe extern void InternalGetNextArg(void* result, RuntimeType rt);
63
64 public void End()
65 {
66 }
67
68 [MethodImpl(MethodImplOptions.InternalCall)]
69 public extern int GetRemainingCount();
70
71 [MethodImpl(MethodImplOptions.InternalCall)]
72 private unsafe extern void* _GetNextArgType();
73
78
79 public override int GetHashCode()
80 {
82 }
83
84 public override bool Equals(object? o)
85 {
87 }
88}
static string NotSupported_NYI
Definition SR.cs:1698
Definition SR.cs:7
static RuntimeType GetTypeFromHandleUnsafe(IntPtr handle)
static int GetHashCodeOfPtr(IntPtr ptr)
unsafe void InternalGetNextArg(void *result, RuntimeType rt)
unsafe TypedReference GetNextArg()
ArgIterator(RuntimeArgumentHandle arglist)
unsafe void FCallGetNextArg(void *result)
unsafe ArgIterator(IntPtr arglist, void *ptr)
unsafe void * _GetNextArgType()
unsafe RuntimeTypeHandle GetNextArgType()
override int GetHashCode()
override bool Equals(object? o)
unsafe ArgIterator(RuntimeArgumentHandle arglist, void *ptr)
ArgIterator(IntPtr arglist)
unsafe TypedReference GetNextArg(RuntimeTypeHandle rth)
static readonly IntPtr Zero
Definition IntPtr.cs:18