226 references to MarshallerKind
ILCompiler.ReadyToRun (226)
Interop\IL\Marshaller.ReadyToRun.cs (6)
8protected static Marshaller CreateMarshaller(MarshallerKind kind) 13case MarshallerKind.Enum: 14case MarshallerKind.BlittableValue: 15case MarshallerKind.BlittableStruct: 16case MarshallerKind.UnicodeChar: 18case MarshallerKind.VoidReturn:
parent\parent\Common\TypeSystem\Interop\IL\MarshalHelpers.cs (200)
14MarshallerKind kind, 15MarshallerKind elementMarshallerKind, 31case MarshallerKind.BlittableValue: 60case MarshallerKind.Bool: 63case MarshallerKind.CBool: 66case MarshallerKind.VariantBool: 69case MarshallerKind.Enum: 70case MarshallerKind.BlittableStruct: 71case MarshallerKind.Decimal: 72case MarshallerKind.VoidReturn: 82case MarshallerKind.BlittableStructPtr: 85case MarshallerKind.HandleRef: 88case MarshallerKind.UnicodeChar: 94case MarshallerKind.OleDateTime: 97case MarshallerKind.FailedTypeLoad: 100case MarshallerKind.SafeHandle: 101case MarshallerKind.CriticalHandle: 104case MarshallerKind.BSTRString: 105case MarshallerKind.UnicodeString: 106case MarshallerKind.UnicodeStringBuilder: 109case MarshallerKind.AnsiBSTRString: 110case MarshallerKind.AnsiString: 111case MarshallerKind.AnsiStringBuilder: 112case MarshallerKind.UTF8String: 115case MarshallerKind.BlittableArray: 116case MarshallerKind.Array: 117case MarshallerKind.AnsiCharArray: 128MarshallerKind.Unknown, 138case MarshallerKind.AnsiChar: 141case MarshallerKind.FunctionPointer: 164case MarshallerKind.LayoutClassPtr: 165case MarshallerKind.AsAnyA: 166case MarshallerKind.AsAnyW: 167case MarshallerKind.ComInterface: 168case MarshallerKind.CustomMarshaler: 169case MarshallerKind.BlittableValueClassByRefReturn: 177case MarshallerKind.OleCurrency: 180case MarshallerKind.Unknown: 215internal static MarshallerKind GetMarshallerKind( 223out MarshallerKind elementMarshallerKind) 225elementMarshallerKind = MarshallerKind.Invalid; 242return MarshallerKind.BlittableValueClassWithCopyCtor; 253return MarshallerKind.BlittableValueClassByRefReturn; 255return MarshallerKind.Invalid; 262return MarshallerKind.FailedTypeLoad; 264return MarshallerKind.CustomMarshaler; 275return MarshallerKind.VoidReturn; 282return MarshallerKind.Bool; 286return MarshallerKind.CBool; 290return MarshallerKind.VariantBool; 292return MarshallerKind.Invalid; 295return MarshallerKind.Invalid; 303return MarshallerKind.AnsiChar; 307return MarshallerKind.UnicodeChar; 311return MarshallerKind.AnsiChar; 313return MarshallerKind.UnicodeChar; 315return MarshallerKind.Invalid; 321return MarshallerKind.BlittableValue; 323return MarshallerKind.Invalid; 328return MarshallerKind.BlittableValue; 330return MarshallerKind.Invalid; 335return MarshallerKind.BlittableValue; 337return MarshallerKind.Invalid; 342return MarshallerKind.BlittableValue; 344return MarshallerKind.Invalid; 349return MarshallerKind.BlittableValue; 351return MarshallerKind.Invalid; 355return MarshallerKind.BlittableValue; 357return MarshallerKind.Invalid; 361return MarshallerKind.BlittableValue; 363return MarshallerKind.Invalid; 366return MarshallerKind.Invalid; 372return MarshallerKind.Enum; 378return MarshallerKind.OleDateTime; 380return MarshallerKind.Invalid; 385return MarshallerKind.HandleRef; 387return MarshallerKind.Invalid; 392return MarshallerKind.Decimal; 394return MarshallerKind.BlittableStructPtr; 396return MarshallerKind.OleCurrency; 398return MarshallerKind.Invalid; 403return MarshallerKind.BlittableStruct; 405return MarshallerKind.BlittableStructPtr; 407return MarshallerKind.Invalid; 412return MarshallerKind.Invalid; 418return MarshallerKind.Invalid; 424return MarshallerKind.Invalid; 430return MarshallerKind.Invalid; 436return MarshallerKind.Invalid; 442return MarshallerKind.Invalid; 444return MarshallerKind.BlittableStruct; 449return MarshallerKind.Invalid; 451return MarshallerKind.Struct; 455return MarshallerKind.Invalid; 468return MarshallerKind.FailedTypeLoad; 478if (elementMarshallerKind == MarshallerKind.Invalid) 479return MarshallerKind.Invalid; 481if (elementMarshallerKind == MarshallerKind.AnsiChar) 482return MarshallerKind.AnsiCharArray; 483else if (elementMarshallerKind == MarshallerKind.UnicodeChar // Arrays of unicode char should be marshalled as blittable arrays 484|| elementMarshallerKind == MarshallerKind.Enum 485|| elementMarshallerKind == MarshallerKind.BlittableValue) 486return MarshallerKind.BlittableArray; 488return MarshallerKind.Array; 500if (elementMarshallerKind == MarshallerKind.Invalid) 501return MarshallerKind.Invalid; 503if (elementMarshallerKind == MarshallerKind.AnsiChar) 504return MarshallerKind.ByValAnsiCharArray; 506return MarshallerKind.ByValArray; 510return MarshallerKind.Invalid; 520return MarshallerKind.BlittableValueClassWithCopyCtor; 524return MarshallerKind.BlittableValue; 526return MarshallerKind.Invalid; 531return MarshallerKind.BlittableValue; 533return MarshallerKind.Invalid; 540return MarshallerKind.Invalid; 544return MarshallerKind.FunctionPointer; 546return MarshallerKind.Invalid; 553return MarshallerKind.UnicodeString; 556return MarshallerKind.AnsiString; 559return MarshallerKind.UTF8String; 562return MarshallerKind.UnicodeString; 567elementMarshallerKind = MarshallerKind.AnsiChar; 568return MarshallerKind.ByValAnsiString; 572elementMarshallerKind = MarshallerKind.UnicodeChar; 573return MarshallerKind.ByValUnicodeString; 578return MarshallerKind.BSTRString; 581return MarshallerKind.AnsiBSTRString; 584return MarshallerKind.CustomMarshaler; 588return MarshallerKind.AnsiString; 590return MarshallerKind.UnicodeString; 593return MarshallerKind.Invalid; 599return MarshallerKind.FailedTypeLoad; 601return isAnsi ? MarshallerKind.AsAnyA : MarshallerKind.AsAnyW; 608return MarshallerKind.ComInterface; 610return MarshallerKind.Variant; 613return MarshallerKind.Invalid; 622return MarshallerKind.AnsiStringBuilder; 626return MarshallerKind.UnicodeStringBuilder; 630return MarshallerKind.AnsiStringBuilder; 633return MarshallerKind.UnicodeStringBuilder; 635return MarshallerKind.Invalid; 641return MarshallerKind.SafeHandle; 643return MarshallerKind.Invalid; 648return MarshallerKind.CriticalHandle; 650return MarshallerKind.Invalid; 657return MarshallerKind.Invalid; 661return MarshallerKind.LayoutClassPtr; 663return MarshallerKind.LayoutClass; 665return MarshallerKind.Invalid; 672return MarshallerKind.Invalid; 676return MarshallerKind.ComInterface; 678return MarshallerKind.Invalid; 682return MarshallerKind.Invalid; 686private static MarshallerKind GetArrayElementMarshallerKind( 707return MarshallerKind.AnsiChar; 710return MarshallerKind.UnicodeChar; 713return MarshallerKind.AnsiChar; 715return MarshallerKind.UnicodeChar; 722return MarshallerKind.Bool; 725return MarshallerKind.CBool; 728return MarshallerKind.Bool; 732return MarshallerKind.BlittableValue; 735return MarshallerKind.Invalid; 747return MarshallerKind.BlittableValue; 749return MarshallerKind.Invalid; 755return MarshallerKind.Enum; 763return MarshallerKind.Decimal; 766return MarshallerKind.BlittableStructPtr; 769return MarshallerKind.Invalid; 778return MarshallerKind.BlittableValue; 781return MarshallerKind.BlittableStructPtr; 784return MarshallerKind.Invalid; 792return MarshallerKind.OleDateTime; 796return MarshallerKind.Invalid; 802return MarshallerKind.HandleRef; 804return MarshallerKind.Invalid; 814return MarshallerKind.BlittableStruct; 817return MarshallerKind.Invalid; 823return MarshallerKind.Struct; 830return MarshallerKind.BlittableValue; 832return MarshallerKind.Invalid; 840return MarshallerKind.AnsiString; 842return MarshallerKind.UnicodeString; 844return MarshallerKind.AnsiString; 846return MarshallerKind.UnicodeString; 848return MarshallerKind.UTF8String; 851return MarshallerKind.BSTRString; 853return MarshallerKind.AnsiBSTRString; 855return MarshallerKind.CustomMarshaler; 857return MarshallerKind.Invalid; 869return MarshallerKind.Invalid; 909internal static MarshallerKind GetDisabledMarshallerKind( 917return MarshallerKind.VoidReturn; 922return MarshallerKind.Invalid; 926return MarshallerKind.BlittableValue; 930return MarshallerKind.BlittableValue; 941return MarshallerKind.BlittableValue; 944return MarshallerKind.Invalid;
parent\parent\Common\TypeSystem\Interop\IL\Marshaller.cs (14)
30public MarshallerKind MarshallerKind; 33public MarshallerKind ElementMarshallerKind; 251MarshallerKind marshallerKind = MarshalHelpers.GetMarshallerKind(parameterType, 258out MarshallerKind elementMarshallerKind); 326if (marshaller.MarshallerKind == MarshallerKind.AnsiString || marshaller.MarshallerKind == MarshallerKind.UnicodeString) 346MarshallerKind marshallerKind = MarshalHelpers.GetDisabledMarshallerKind(parameterType, marshallerType is MarshallerType.Field); 354marshaller.ElementMarshallerKind = MarshallerKind.Unknown; 373private static bool IsMarshallingRequired(MarshallerKind kind) 377case MarshallerKind.Enum: 378case MarshallerKind.BlittableValue: 379case MarshallerKind.BlittableStruct: 380case MarshallerKind.UnicodeChar: 381case MarshallerKind.VoidReturn:
parent\parent\Common\TypeSystem\Interop\IL\MarshalUtils.cs (6)
49MarshallerKind marshallerKind = MarshalHelpers.GetMarshallerKind( 57elementMarshallerKind: out var _); 59if (marshallerKind != MarshallerKind.Enum 60&& marshallerKind != MarshallerKind.BlittableValue 61&& marshallerKind != MarshallerKind.BlittableStruct 62&& marshallerKind != MarshallerKind.UnicodeChar)