diff options
Diffstat (limited to 'src/coreclr/tools/Common/TypeSystem/Interop/IL/Marshaller.cs')
-rw-r--r-- | src/coreclr/tools/Common/TypeSystem/Interop/IL/Marshaller.cs | 54 |
1 files changed, 23 insertions, 31 deletions
diff --git a/src/coreclr/tools/Common/TypeSystem/Interop/IL/Marshaller.cs b/src/coreclr/tools/Common/TypeSystem/Interop/IL/Marshaller.cs index 06d839390d1..a7d62d1c422 100644 --- a/src/coreclr/tools/Common/TypeSystem/Interop/IL/Marshaller.cs +++ b/src/coreclr/tools/Common/TypeSystem/Interop/IL/Marshaller.cs @@ -20,7 +20,7 @@ namespace Internal.TypeSystem.Interop // Each type of marshaller knows how to generate the marshalling code for the argument it marshals. // Marshallers contain method related marshalling information (which is common to all the Marshallers) // and also argument specific marshalling information. - abstract partial class Marshaller + internal abstract partial class Marshaller { #region Instance state information public TypeSystemContext Context; @@ -111,7 +111,7 @@ namespace Internal.TypeSystem.Interop protected Home _nativeHome; #endregion - enum HomeType + private enum HomeType { Arg, Local, @@ -122,7 +122,7 @@ namespace Internal.TypeSystem.Interop /// <summary> /// Abstraction for handling by-ref and non-by-ref locals/arguments /// </summary> - internal class Home + internal sealed class Home { public Home(ILLocalVariable var, TypeDesc type, bool isByRef) { @@ -203,10 +203,10 @@ namespace Internal.TypeSystem.Interop } } - HomeType _homeType; - TypeDesc _type; - ILLocalVariable _var; - int _argIndex; + private HomeType _homeType; + private TypeDesc _type; + private ILLocalVariable _var; + private int _argIndex; } #region Creation of marshallers @@ -489,7 +489,6 @@ namespace Internal.TypeSystem.Interop protected virtual void EmitMarshalReturnValueManagedToNative() { - ILEmitter emitter = _ilCodeStreams.Emitter; SetupArgumentsForReturnValueMarshalling(); StoreNativeValue(_ilCodeStreams.ReturnValueMarshallingCodeStream); @@ -757,7 +756,6 @@ namespace Internal.TypeSystem.Interop protected virtual void EmitMarshalReturnValueNativeToManaged() { - ILEmitter emitter = _ilCodeStreams.Emitter; SetupArgumentsForReturnValueMarshalling(); StoreManagedValue(_ilCodeStreams.ReturnValueMarshallingCodeStream); @@ -805,7 +803,6 @@ namespace Internal.TypeSystem.Interop protected virtual void EmitMarshalElementManagedToNative() { - ILEmitter emitter = _ilCodeStreams.Emitter; ILCodeStream codeStream = _ilCodeStreams.MarshallingCodeStream; Debug.Assert(codeStream != null); @@ -821,7 +818,6 @@ namespace Internal.TypeSystem.Interop protected virtual void EmitMarshalElementNativeToManaged() { - ILEmitter emitter = _ilCodeStreams.Emitter; ILCodeStream codeStream = _ilCodeStreams.MarshallingCodeStream; Debug.Assert(codeStream != null); @@ -836,7 +832,6 @@ namespace Internal.TypeSystem.Interop protected virtual void EmitMarshalFieldManagedToNative() { - ILEmitter emitter = _ilCodeStreams.Emitter; ILCodeStream marshallingCodeStream = _ilCodeStreams.MarshallingCodeStream; SetupArgumentsForFieldMarshalling(); @@ -854,7 +849,6 @@ namespace Internal.TypeSystem.Interop protected virtual void EmitMarshalFieldNativeToManaged() { - ILEmitter emitter = _ilCodeStreams.Emitter; ILCodeStream codeStream = _ilCodeStreams.MarshallingCodeStream; SetupArgumentsForFieldMarshalling(); @@ -879,7 +873,7 @@ namespace Internal.TypeSystem.Interop } } - class NotSupportedMarshaller : Marshaller + internal sealed class NotSupportedMarshaller : Marshaller { public override void EmitMarshallingIL(PInvokeILCodeStreams pInvokeILCodeStreams) { @@ -887,7 +881,7 @@ namespace Internal.TypeSystem.Interop } } - class VoidReturnMarshaller : Marshaller + internal sealed class VoidReturnMarshaller : Marshaller { protected override void EmitMarshalReturnValueManagedToNative() { @@ -901,7 +895,7 @@ namespace Internal.TypeSystem.Interop } } - class BlittableValueMarshaller : Marshaller + internal sealed class BlittableValueMarshaller : Marshaller { protected override void EmitMarshalArgumentManagedToNative() { @@ -944,7 +938,7 @@ namespace Internal.TypeSystem.Interop } } - class BlittableStructPtrMarshaller : Marshaller + internal sealed class BlittableStructPtrMarshaller : Marshaller { protected override void TransformManagedToNative(ILCodeStream codeStream) { @@ -967,7 +961,7 @@ namespace Internal.TypeSystem.Interop } } - class ArrayMarshaller : Marshaller + internal class ArrayMarshaller : Marshaller { private Marshaller _elementMarshaller; @@ -1039,8 +1033,8 @@ namespace Internal.TypeSystem.Interop else { - uint? sizeParamIndex = MarshalAsDescriptor != null ? MarshalAsDescriptor.SizeParamIndex : null; - uint? sizeConst = MarshalAsDescriptor != null ? MarshalAsDescriptor.SizeConst : null; + uint? sizeParamIndex = MarshalAsDescriptor?.SizeParamIndex; + uint? sizeConst = MarshalAsDescriptor?.SizeConst; if (sizeConst.HasValue) { @@ -1350,7 +1344,7 @@ namespace Internal.TypeSystem.Interop } } - class BlittableArrayMarshaller : ArrayMarshaller + internal sealed class BlittableArrayMarshaller : ArrayMarshaller { protected override void AllocAndTransformManagedToNative(ILCodeStream codeStream) { @@ -1419,7 +1413,7 @@ namespace Internal.TypeSystem.Interop } } - class BooleanMarshaller : Marshaller + internal sealed class BooleanMarshaller : Marshaller { private int _trueValue; public BooleanMarshaller(int trueValue = 1) @@ -1467,7 +1461,7 @@ namespace Internal.TypeSystem.Interop } } - class UnicodeStringMarshaller : Marshaller + internal sealed class UnicodeStringMarshaller : Marshaller { private bool ShouldBePinned { @@ -1587,7 +1581,7 @@ namespace Internal.TypeSystem.Interop } } - class AnsiStringMarshaller : Marshaller + internal sealed class AnsiStringMarshaller : Marshaller { internal override bool CleanupRequired @@ -1648,11 +1642,11 @@ namespace Internal.TypeSystem.Interop } } - class UTF8StringMarshaller : Marshaller + internal sealed class UTF8StringMarshaller : Marshaller { private const int LocalBufferLength = 0x100; - private ILLocalVariable? _marshallerInstance = null; + private ILLocalVariable? _marshallerInstance; private MetadataType Marshaller => Context.SystemModule.GetKnownType("System.Runtime.InteropServices.Marshalling", "Utf8StringMarshaller"); @@ -1680,8 +1674,7 @@ namespace Internal.TypeSystem.Interop { TypeDesc marshallerIn = MarshallerIn; - if (_marshallerInstance == null) - _marshallerInstance = emitter.NewLocal(marshallerIn); + _marshallerInstance ??= emitter.NewLocal(marshallerIn); var vBuffer = emitter.NewLocal(Context.GetWellKnownType(WellKnownType.IntPtr)); codeStream.EmitLdc(LocalBufferLength); @@ -1744,7 +1737,7 @@ namespace Internal.TypeSystem.Interop } } - class SafeHandleMarshaller : Marshaller + internal sealed class SafeHandleMarshaller : Marshaller { private void AllocSafeHandle(ILCodeStream codeStream) { @@ -1787,7 +1780,6 @@ namespace Internal.TypeSystem.Interop ILEmitter emitter = _ilCodeStreams.Emitter; ILCodeStream marshallingCodeStream = _ilCodeStreams.MarshallingCodeStream; ILCodeStream callsiteCodeStream = _ilCodeStreams.CallsiteSetupCodeStream; - ILCodeStream unmarshallingCodeStream = _ilCodeStreams.UnmarshallingCodestream; ILCodeStream cleanupCodeStream = _ilCodeStreams.CleanupCodeStream; SetupArguments(); @@ -1905,7 +1897,7 @@ namespace Internal.TypeSystem.Interop } } - class DelegateMarshaller : Marshaller + internal sealed class DelegateMarshaller : Marshaller { protected override void AllocAndTransformManagedToNative(ILCodeStream codeStream) { |