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)
42MarshallerKind kind, 43MarshallerKind elementMarshallerKind, 59case MarshallerKind.BlittableValue: 88case MarshallerKind.Bool: 91case MarshallerKind.CBool: 94case MarshallerKind.VariantBool: 97case MarshallerKind.Enum: 98case MarshallerKind.BlittableStruct: 99case MarshallerKind.Decimal: 100case MarshallerKind.VoidReturn: 110case MarshallerKind.BlittableStructPtr: 113case MarshallerKind.HandleRef: 116case MarshallerKind.UnicodeChar: 122case MarshallerKind.OleDateTime: 125case MarshallerKind.FailedTypeLoad: 128case MarshallerKind.SafeHandle: 129case MarshallerKind.CriticalHandle: 132case MarshallerKind.BSTRString: 133case MarshallerKind.UnicodeString: 134case MarshallerKind.UnicodeStringBuilder: 137case MarshallerKind.AnsiBSTRString: 138case MarshallerKind.AnsiString: 139case MarshallerKind.AnsiStringBuilder: 140case MarshallerKind.UTF8String: 143case MarshallerKind.BlittableArray: 144case MarshallerKind.Array: 145case MarshallerKind.AnsiCharArray: 156MarshallerKind.Unknown, 166case MarshallerKind.AnsiChar: 169case MarshallerKind.FunctionPointer: 192case MarshallerKind.LayoutClassPtr: 193case MarshallerKind.AsAnyA: 194case MarshallerKind.AsAnyW: 195case MarshallerKind.ComInterface: 196case MarshallerKind.CustomMarshaler: 197case MarshallerKind.BlittableValueClassByRefReturn: 205case MarshallerKind.OleCurrency: 208case MarshallerKind.Unknown: 243internal static MarshallerKind GetMarshallerKind( 251out MarshallerKind elementMarshallerKind) 253elementMarshallerKind = MarshallerKind.Invalid; 270return MarshallerKind.BlittableValueClassWithCopyCtor; 281return MarshallerKind.BlittableValueClassByRefReturn; 283return MarshallerKind.Invalid; 290return MarshallerKind.FailedTypeLoad; 292return MarshallerKind.CustomMarshaler; 303return MarshallerKind.VoidReturn; 310return MarshallerKind.Bool; 314return MarshallerKind.CBool; 318return MarshallerKind.VariantBool; 320return MarshallerKind.Invalid; 323return MarshallerKind.Invalid; 331return MarshallerKind.AnsiChar; 335return MarshallerKind.UnicodeChar; 339return MarshallerKind.AnsiChar; 341return MarshallerKind.UnicodeChar; 343return MarshallerKind.Invalid; 349return MarshallerKind.BlittableValue; 351return MarshallerKind.Invalid; 356return MarshallerKind.BlittableValue; 358return MarshallerKind.Invalid; 363return MarshallerKind.BlittableValue; 365return MarshallerKind.Invalid; 370return MarshallerKind.BlittableValue; 372return MarshallerKind.Invalid; 377return MarshallerKind.BlittableValue; 379return MarshallerKind.Invalid; 383return MarshallerKind.BlittableValue; 385return MarshallerKind.Invalid; 389return MarshallerKind.BlittableValue; 391return MarshallerKind.Invalid; 394return MarshallerKind.Invalid; 400return MarshallerKind.Enum; 406return MarshallerKind.OleDateTime; 408return MarshallerKind.Invalid; 413return MarshallerKind.HandleRef; 415return MarshallerKind.Invalid; 420return MarshallerKind.Decimal; 422return MarshallerKind.BlittableStructPtr; 424return MarshallerKind.OleCurrency; 426return MarshallerKind.Invalid; 431return MarshallerKind.BlittableStruct; 433return MarshallerKind.BlittableStructPtr; 435return MarshallerKind.Invalid; 440return MarshallerKind.Invalid; 446return MarshallerKind.Invalid; 452return MarshallerKind.Invalid; 458return MarshallerKind.Invalid; 464return MarshallerKind.Invalid; 470return MarshallerKind.Invalid; 472return MarshallerKind.BlittableStruct; 477return MarshallerKind.Invalid; 479return MarshallerKind.Struct; 483return MarshallerKind.Invalid; 496return MarshallerKind.FailedTypeLoad; 506if (elementMarshallerKind == MarshallerKind.Invalid) 507return MarshallerKind.Invalid; 509if (elementMarshallerKind == MarshallerKind.AnsiChar) 510return MarshallerKind.AnsiCharArray; 511else if (elementMarshallerKind == MarshallerKind.UnicodeChar // Arrays of unicode char should be marshalled as blittable arrays 512|| elementMarshallerKind == MarshallerKind.Enum 513|| elementMarshallerKind == MarshallerKind.BlittableValue) 514return MarshallerKind.BlittableArray; 516return MarshallerKind.Array; 528if (elementMarshallerKind == MarshallerKind.Invalid) 529return MarshallerKind.Invalid; 531if (elementMarshallerKind == MarshallerKind.AnsiChar) 532return MarshallerKind.ByValAnsiCharArray; 534return MarshallerKind.ByValArray; 538return MarshallerKind.Invalid; 548return MarshallerKind.BlittableValueClassWithCopyCtor; 552return MarshallerKind.BlittableValue; 554return MarshallerKind.Invalid; 559return MarshallerKind.BlittableValue; 561return MarshallerKind.Invalid; 568return MarshallerKind.Invalid; 572return MarshallerKind.FunctionPointer; 574return MarshallerKind.Invalid; 581return MarshallerKind.UnicodeString; 584return MarshallerKind.AnsiString; 587return MarshallerKind.UTF8String; 590return MarshallerKind.UnicodeString; 595elementMarshallerKind = MarshallerKind.AnsiChar; 596return MarshallerKind.ByValAnsiString; 600elementMarshallerKind = MarshallerKind.UnicodeChar; 601return MarshallerKind.ByValUnicodeString; 606return MarshallerKind.BSTRString; 609return MarshallerKind.AnsiBSTRString; 612return MarshallerKind.CustomMarshaler; 616return MarshallerKind.AnsiString; 618return MarshallerKind.UnicodeString; 621return MarshallerKind.Invalid; 627return MarshallerKind.FailedTypeLoad; 629return isAnsi ? MarshallerKind.AsAnyA : MarshallerKind.AsAnyW; 636return MarshallerKind.ComInterface; 638return MarshallerKind.Variant; 641return MarshallerKind.Invalid; 650return MarshallerKind.AnsiStringBuilder; 654return MarshallerKind.UnicodeStringBuilder; 658return MarshallerKind.AnsiStringBuilder; 661return MarshallerKind.UnicodeStringBuilder; 663return MarshallerKind.Invalid; 669return MarshallerKind.SafeHandle; 671return MarshallerKind.Invalid; 676return MarshallerKind.CriticalHandle; 678return MarshallerKind.Invalid; 685return MarshallerKind.Invalid; 689return MarshallerKind.LayoutClassPtr; 691return MarshallerKind.LayoutClass; 693return MarshallerKind.Invalid; 700return MarshallerKind.Invalid; 704return MarshallerKind.ComInterface; 706return MarshallerKind.Invalid; 710return MarshallerKind.Invalid; 714private static MarshallerKind GetArrayElementMarshallerKind( 735return MarshallerKind.AnsiChar; 738return MarshallerKind.UnicodeChar; 741return MarshallerKind.AnsiChar; 743return MarshallerKind.UnicodeChar; 750return MarshallerKind.Bool; 753return MarshallerKind.CBool; 756return MarshallerKind.Bool; 760return MarshallerKind.BlittableValue; 763return MarshallerKind.Invalid; 775return MarshallerKind.BlittableValue; 777return MarshallerKind.Invalid; 783return MarshallerKind.Enum; 791return MarshallerKind.Decimal; 794return MarshallerKind.BlittableStructPtr; 797return MarshallerKind.Invalid; 806return MarshallerKind.BlittableValue; 809return MarshallerKind.BlittableStructPtr; 812return MarshallerKind.Invalid; 820return MarshallerKind.OleDateTime; 824return MarshallerKind.Invalid; 830return MarshallerKind.HandleRef; 832return MarshallerKind.Invalid; 842return MarshallerKind.BlittableStruct; 845return MarshallerKind.Invalid; 851return MarshallerKind.Struct; 858return MarshallerKind.BlittableValue; 860return MarshallerKind.Invalid; 868return MarshallerKind.AnsiString; 870return MarshallerKind.UnicodeString; 872return MarshallerKind.AnsiString; 874return MarshallerKind.UnicodeString; 876return MarshallerKind.UTF8String; 879return MarshallerKind.BSTRString; 881return MarshallerKind.AnsiBSTRString; 883return MarshallerKind.CustomMarshaler; 885return MarshallerKind.Invalid; 897return MarshallerKind.Invalid; 937internal static MarshallerKind GetDisabledMarshallerKind( 945return MarshallerKind.VoidReturn; 950return MarshallerKind.Invalid; 954return MarshallerKind.BlittableValue; 958return MarshallerKind.BlittableValue; 969return MarshallerKind.BlittableValue; 972return 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)