From dc6356fa02b579c7e632716ad829873451aec023 Mon Sep 17 00:00:00 2001 From: Jackson Schuster Date: Thu, 15 Jun 2023 16:34:53 -0700 Subject: [PATCH 01/20] Fully qualify return type on UnreachableException methods --- .../gen/ComInterfaceGenerator/ComMethodContext.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComMethodContext.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComMethodContext.cs index f46d5aa608159..331f9c545ed14 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComMethodContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComMethodContext.cs @@ -105,6 +105,7 @@ private MethodDeclarationSyntax CreateUnreachableExceptionStub() { // DeclarationCopiedFromBaseDeclaration() => throw new UnreachableException("This method should not be reached"); return MethodInfo.Syntax + .WithReturnType(GenerationContext.SignatureContext.StubReturnType) .WithModifiers(TokenList()) .WithAttributeLists(List()) .WithExplicitInterfaceSpecifier(ExplicitInterfaceSpecifier( From ed7cd716e91a3f3e1e4d866a1badff516f1e6dd5 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Wed, 5 Jul 2023 11:25:09 -0700 Subject: [PATCH 02/20] wip --- .../ICustomTypeMarshallingStrategy.cs | 32 ++++++++++++++++--- .../StatelessMarshallingStrategy.cs | 17 +++------- .../ArrayTests.cs | 14 ++++---- .../TestAssets/SharedTypes/NonBlittable.cs | 5 +-- 4 files changed, 40 insertions(+), 28 deletions(-) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs index f9da5d32b3977..44a36363637ba 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs @@ -7,16 +7,18 @@ namespace Microsoft.Interop { /// - /// The base interface for implementing various aspects of the custom native type and collection marshalling specs. + /// Provides methods for generating code for each stage of the marshalling pipeline. + /// The stages are outlined in runtime/docs/design/libraries/LibraryImportGenerator/Pipeline.md /// - internal interface ICustomTypeMarshallingStrategy + internal interface IMarshallingStagesGenerator { - ManagedTypeInfo AsNativeType(TypePositionInfo info); - IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context); IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context); + /// + /// Conversion of managed data to native data + /// IEnumerable GenerateMarshalStatements(TypePositionInfo info, StubCodeContext context); IEnumerable GenerateNotifyForSuccessfulInvokeStatements(TypePositionInfo info, StubCodeContext context); @@ -25,11 +27,33 @@ internal interface ICustomTypeMarshallingStrategy IEnumerable GeneratePinStatements(TypePositionInfo info, StubCodeContext context); + /// + /// Initialization that happens before marshalling any data + /// IEnumerable GenerateSetupStatements(TypePositionInfo info, StubCodeContext context); + /// + /// Generate statements to capture any out parameters or return values into local variables that can be used in the cleanup stage if marshalling fails + /// IEnumerable GenerateUnmarshalCaptureStatements(TypePositionInfo info, StubCodeContext context); + /// + /// Generate statements to unmarshal the native data to managed representations and store them in a local variable which gets assigned to any out parameters + /// IEnumerable GenerateUnmarshalStatements(TypePositionInfo info, StubCodeContext context); + } + + /// + /// The base interface for implementing various aspects of the custom native type and collection marshalling specs. + /// + internal interface ICustomTypeMarshallingStrategy : IMarshallingStagesGenerator + { + ManagedTypeInfo AsNativeType(TypePositionInfo info); + + /// + /// Generate assignment statements to assign the parameter a new value + /// + IEnumerable GenerateParameterOutAssignmentStatements(TypePositionInfo info, StubCodeContext context); bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context); } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs index 6c101345e726a..16b5e7be7dd6a 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs @@ -3,8 +3,6 @@ using System; using System.Collections.Generic; -using System.Linq; -using System.Linq.Expressions; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; @@ -295,10 +293,12 @@ public IEnumerable GenerateCleanupStatements(TypePositionInfo i public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.UsesNativeIdentifier(info, context); } + internal interface ISpaceMarshallingStrategy : IMarshallingStagesGenerator { } + /// /// Marshaller type that enables allocating space for marshalling a linear collection using a marshaller that implements the LinearCollection marshalling spec. /// - internal sealed class StatelessLinearCollectionSpaceAllocator : ICustomTypeMarshallingStrategy + internal sealed class StatelessLinearCollectionSpaceAllocator : ISpaceMarshallingStrategy { private readonly TypeSyntax _marshallerTypeSyntax; private readonly ManagedTypeInfo _unmanagedType; @@ -313,11 +313,6 @@ public StatelessLinearCollectionSpaceAllocator(TypeSyntax marshallerTypeSyntax, _numElementsExpression = numElementsExpression; } - public ManagedTypeInfo AsNativeType(TypePositionInfo info) - { - return _unmanagedType; - } - public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) => Array.Empty(); public IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context) @@ -436,8 +431,6 @@ public IEnumerable GenerateUnmarshalStatements(TypePositionInfo Argument(IdentifierName(numElementsIdentifier)) }))))); } - - public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true; } internal sealed class StatelessLinearCollectionSource : IElementsMarshallingCollectionSource @@ -517,14 +510,14 @@ public InvocationExpressionSyntax GetManagedValuesDestination(TypePositionInfo i /// internal sealed class StatelessLinearCollectionMarshalling : ICustomTypeMarshallingStrategy { - private readonly ICustomTypeMarshallingStrategy _spaceMarshallingStrategy; + private readonly ISpaceMarshallingStrategy _spaceMarshallingStrategy; private readonly ElementsMarshalling _elementsMarshalling; private readonly ManagedTypeInfo _unmanagedType; private readonly MarshallerShape _shape; private readonly bool _cleanupElementsAndSpace; public StatelessLinearCollectionMarshalling( - ICustomTypeMarshallingStrategy spaceMarshallingStrategy, + ISpaceMarshallingStrategy spaceMarshallingStrategy, ElementsMarshalling elementsMarshalling, ManagedTypeInfo unmanagedType, MarshallerShape shape, diff --git a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/ArrayTests.cs b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/ArrayTests.cs index bbf9f7ef307bd..e082fc4b25417 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/ArrayTests.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/ArrayTests.cs @@ -1,14 +1,12 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using SharedTypes; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Runtime.InteropServices.Marshalling; -using System.Text; - +using SharedTypes; using Xunit; namespace LibraryImportGenerator.IntegrationTests @@ -30,7 +28,7 @@ public partial class Arrays public static partial void Duplicate([MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] ref int[] values, int numValues); [LibraryImport(NativeExportsNE_Binary, EntryPoint = "create_range_array")] - [return:MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] + [return: MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] public static partial int[] CreateRange(int start, int end, out int numValues); [LibraryImport(NativeExportsNE_Binary, EntryPoint = "create_range_array_out")] @@ -59,7 +57,7 @@ public partial class Arrays public static partial void ReverseStrings_Out([MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr)] string[] strArray, out int numElements, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr, SizeParamIndex = 1)] out string[] res); [LibraryImport(NativeExportsNE_Binary, EntryPoint = "get_long_bytes")] - [return:MarshalAs(UnmanagedType.LPArray, SizeConst = sizeof(long))] + [return: MarshalAs(UnmanagedType.LPArray, SizeConst = sizeof(long))] public static partial byte[] GetLongBytes(long l); [LibraryImport(NativeExportsNE_Binary, EntryPoint = "append_int_to_array")] @@ -285,7 +283,7 @@ public unsafe void PointerArray_Return() private static string[] GetStringArray() { - return new [] + return new[] { "ABCdef 123$%^", "\uD83C\uDF5C !! \uD83C\uDF5C !!", @@ -362,11 +360,11 @@ public void ConstantSizeArray() [Fact] public void DynamicSizedArrayWithConstantComponent() { - var array = new [] { 1, 5, 79, 165, 32, 3 }; + var array = new[] { 1, 5, 79, 165, 32, 3 }; int newValue = 42; var newArray = array; NativeExportsNE.Arrays.Append(ref newArray, array.Length, newValue); - Assert.Equal(array.Concat(new [] { newValue }), newArray); + Assert.Equal(array.Concat(new[] { newValue }), newArray); } [Fact] diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/NonBlittable.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/NonBlittable.cs index 88e594d9f6a2d..b7fa6a1e74e31 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/NonBlittable.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/NonBlittable.cs @@ -4,12 +4,9 @@ using System; using System.Buffers.Binary; using System.Collections.Generic; -using System.Diagnostics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.InteropServices.Marshalling; -using System.Text; -using static SharedTypes.IntWrapperWithNotificationMarshaller; namespace SharedTypes { @@ -343,7 +340,7 @@ public struct Marshaller { private IntWrapperWithNotification _managed; - public void FromManaged(IntWrapperWithNotification managed) =>_managed = managed; + public void FromManaged(IntWrapperWithNotification managed) => _managed = managed; public int ToUnmanaged() => _managed.Value; From 788c862ee323bb0a56b48030325738eba008b35c Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Thu, 13 Jul 2023 14:51:30 -0700 Subject: [PATCH 03/20] wip --- .../Marshalling/ICustomTypeMarshallingStrategy.cs | 7 +++---- .../Marshalling/StatelessMarshallingStrategy.cs | 10 +++++----- .../StubCodeContext.cs | 13 +++++++++++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs index 44a36363637ba..38bf4c057883c 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs @@ -50,10 +50,9 @@ internal interface ICustomTypeMarshallingStrategy : IMarshallingStagesGenerator { ManagedTypeInfo AsNativeType(TypePositionInfo info); - /// - /// Generate assignment statements to assign the parameter a new value - /// - IEnumerable GenerateParameterOutAssignmentStatements(TypePositionInfo info, StubCodeContext context); + IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context); + + IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context); bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context); } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs index fa85e3bc2812f..24cfcca03df60 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs @@ -293,12 +293,10 @@ public IEnumerable GenerateCleanupStatements(TypePositionInfo i public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.UsesNativeIdentifier(info, context); } - internal interface ISpaceMarshallingStrategy : IMarshallingStagesGenerator { } - /// /// Marshaller type that enables allocating space for marshalling a linear collection using a marshaller that implements the LinearCollection marshalling spec. /// - internal sealed class StatelessLinearCollectionSpaceAllocator : ISpaceMarshallingStrategy + internal sealed class StatelessLinearCollectionSpaceAllocator : ICustomTypeMarshallingStrategy { private readonly TypeSyntax _marshallerTypeSyntax; private readonly ManagedTypeInfo _unmanagedType; @@ -450,6 +448,8 @@ public IEnumerable GenerateUnmarshalStatements(TypePositionInfo Argument(IdentifierName(numElementsIdentifier)) }))))); } + + public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true; } internal sealed class StatelessLinearCollectionSource : IElementsMarshallingCollectionSource @@ -529,7 +529,7 @@ public InvocationExpressionSyntax GetManagedValuesDestination(TypePositionInfo i /// internal sealed class StatelessLinearCollectionMarshalling : ICustomTypeMarshallingStrategy { - private readonly ISpaceMarshallingStrategy _spaceMarshallingStrategy; + private readonly ICustomTypeMarshallingStrategy _spaceMarshallingStrategy; private readonly ElementsMarshalling _elementsMarshalling; private readonly ManagedTypeInfo _unmanagedType; private readonly MarshallerShape _shape; @@ -537,7 +537,7 @@ internal sealed class StatelessLinearCollectionMarshalling : ICustomTypeMarshall private readonly bool _cleanupElementsAndSpace; public StatelessLinearCollectionMarshalling( - ISpaceMarshallingStrategy spaceMarshallingStrategy, + ICustomTypeMarshallingStrategy spaceMarshallingStrategy, ElementsMarshalling elementsMarshalling, ManagedTypeInfo unmanagedType, MarshallerShape shape, diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs index 35e07f1f7dc47..18dc4d397266b 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Collections.Generic; namespace Microsoft.Interop { @@ -125,7 +124,17 @@ public enum Stage /// Managed and native identifiers public virtual (string managed, string native) GetIdentifiers(TypePositionInfo info) { - return (info.InstanceIdentifier, $"__{info.InstanceIdentifier.TrimStart('@')}{GeneratedNativeIdentifierSuffix}"); + return ($"__{info.InstanceIdentifier}_managed", $"__{info.InstanceIdentifier.TrimStart('@')}{GeneratedNativeIdentifierSuffix}"); + } + + public virtual (string local, string parameter) GetAssignInOutIdentifiers(TypePositionInfo info) + { + return Direction switch + { + MarshalDirection.ManagedToUnmanaged => (GetIdentifiers(info).managed, info.InstanceIdentifier), + MarshalDirection.UnmanagedToManaged => (GetIdentifiers(info).native, info.InstanceIdentifier), + _ => throw new NotImplementedException(), + }; } /// From 1e1345bee698d4d0126117a4d69665a2f72f6191 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Mon, 17 Jul 2023 12:28:29 -0700 Subject: [PATCH 04/20] wip --- .../ComInterfaceDispatchMarshallerFactory.cs | 8 + .../ObjectUnwrapperMarshallerFactory.cs | 10 +- .../VirtualMethodPointerStubGenerator.cs | 8 +- ...ributedMarshallingModelGeneratorFactory.cs | 40 ++-- .../Marshalling/BlittableMarshaller.cs | 6 + .../CustomTypeMarshallingGenerator.cs | 3 +- .../Marshalling/ElementsMarshalling.cs | 2 +- .../Marshalling/MarshallerHelpers.cs | 20 ++ .../MarshallingGeneratorExtensions.cs | 8 +- .../StatefulMarshallingStrategy.cs | 86 ++++++++ .../StatelessMarshallingStrategy.cs | 191 +++++++++++++++++- ...nagedToManagedOwnershipTrackingStrategy.cs | 6 +- .../NativeToManagedStubCodeContext.cs | 6 +- .../StubCodeContext.cs | 8 +- .../VariableDeclarations.cs | 17 +- .../SharedTypes/ComInterfaces/IRefStrings.cs | 18 ++ 16 files changed, 393 insertions(+), 44 deletions(-) create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IRefStrings.cs diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ComInterfaceDispatchMarshallerFactory.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ComInterfaceDispatchMarshallerFactory.cs index 15a3ce6533cb4..1c4aba60c061c 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ComInterfaceDispatchMarshallerFactory.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ComInterfaceDispatchMarshallerFactory.cs @@ -34,6 +34,14 @@ public ManagedTypeInfo AsNativeType(TypePositionInfo info) => IsFunctionPointer: false); public IEnumerable Generate(TypePositionInfo info, StubCodeContext context) { + if (context.CurrentStage == StubCodeContext.Stage.Setup) + { + var (local, param) = context.GetAssignInOutIdentifiers(info); + yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, + IdentifierName(local), + IdentifierName(param))); + yield break; + } if (context.CurrentStage != StubCodeContext.Stage.Unmarshal) { yield break; diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ObjectUnwrapperMarshallerFactory.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ObjectUnwrapperMarshallerFactory.cs index c04a3a7ccfbb1..b848ef0b55725 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ObjectUnwrapperMarshallerFactory.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ObjectUnwrapperMarshallerFactory.cs @@ -29,11 +29,19 @@ private sealed class Marshaller : IMarshallingGenerator public IEnumerable Generate(TypePositionInfo info, StubCodeContext context) { Debug.Assert(info.MarshallingAttributeInfo is ObjectUnwrapperInfo); - TypeSyntax unwrapperType = ((ObjectUnwrapperInfo)info.MarshallingAttributeInfo).UnwrapperType; + if (context.CurrentStage == StubCodeContext.Stage.Setup) + { + var (local, param) = context.GetAssignInOutIdentifiers(info); + yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, + IdentifierName(local), + IdentifierName(param))); + yield break; + } if (context.CurrentStage != StubCodeContext.Stage.Unmarshal) { yield break; } + TypeSyntax unwrapperType = ((ObjectUnwrapperInfo)info.MarshallingAttributeInfo).UnwrapperType; (string managedIdentifier, string nativeIdentifier) = context.GetIdentifiers(info); diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VirtualMethodPointerStubGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VirtualMethodPointerStubGenerator.cs index fe931a812bf34..9f511fec25b5c 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VirtualMethodPointerStubGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VirtualMethodPointerStubGenerator.cs @@ -4,12 +4,12 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; +using System.Diagnostics; using System.Linq; -using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; -using Microsoft.CodeAnalysis; -using System.Diagnostics; namespace Microsoft.Interop { @@ -79,7 +79,7 @@ public static (MethodDeclarationSyntax, ImmutableArray) Generate BlockSyntax code = stubGenerator.GenerateStubBody( MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - IdentifierName(ThisParameterIdentifier), + IdentifierName("__this_managed"), IdentifierName(methodStub.StubMethodSyntaxTemplate.Identifier))); (ParameterListSyntax unmanagedParameterList, TypeSyntax returnType, _) = stubGenerator.GenerateAbiMethodSignatureData(); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs index 73b8cd8eb901a..774cb550765b3 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs @@ -278,20 +278,20 @@ private ResolvedGenerator CreateCustomNativeTypeMarshaller(TypePositionInfo info FreeStrategy freeStrategy = GetFreeStrategy(info, context); - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); + //} if (freeStrategy != FreeStrategy.NoFree && marshallerData.Shape.HasFlag(MarshallerShape.Free)) { marshallingStrategy = new StatelessFreeMarshalling(marshallingStrategy, marshallerData.MarshallerType.Syntax); } - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); + //} } IMarshallingGenerator marshallingGenerator = new CustomTypeMarshallingGenerator(marshallingStrategy, ByValueMarshalKindSupportDescriptor.Default, marshallerData.Shape.HasFlag(MarshallerShape.StatelessPinnableReference)); @@ -373,17 +373,17 @@ private ResolvedGenerator CreateNativeCollectionMarshaller( IElementsMarshallingCollectionSource collectionSource = new StatefulLinearCollectionSource(); ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource); - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); + //} marshallingStrategy = new StatefulLinearCollectionMarshalling(marshallingStrategy, marshallerData.Shape, numElementsExpression, elementsMarshalling, freeStrategy != FreeStrategy.NoFree); - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); + //} if (marshallerData.Shape.HasFlag(MarshallerShape.Free)) { @@ -392,19 +392,15 @@ private ResolvedGenerator CreateNativeCollectionMarshaller( } else { - marshallingStrategy = new StatelessLinearCollectionSpaceAllocator(marshallerTypeSyntax, nativeType, marshallerData.Shape, numElementsExpression); + var spaceAllocator = new StatelessLinearCollectionSpaceAllocator(marshallerTypeSyntax, nativeType, marshallerData.Shape, numElementsExpression); var freeStrategy = GetFreeStrategy(info, context); IElementsMarshallingCollectionSource collectionSource = new StatelessLinearCollectionSource(marshallerTypeSyntax); - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); - } ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource); - marshallingStrategy = new StatelessLinearCollectionMarshalling(marshallingStrategy, elementsMarshalling, nativeType, marshallerData.Shape, numElementsExpression, freeStrategy != FreeStrategy.NoFree); + marshallingStrategy = new StatelessLinearCollectionMarshalling(spaceAllocator, elementsMarshalling, nativeType, marshallerData.Shape, numElementsExpression, freeStrategy != FreeStrategy.NoFree); if (marshallerData.Shape.HasFlag(MarshallerShape.CallerAllocatedBuffer)) { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs index ef2542dd87bc8..6df5253ee72e9 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs @@ -69,6 +69,12 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont switch (context.CurrentStage) { case StubCodeContext.Stage.Setup: + var (local, param) = context.GetAssignInOutIdentifiers(info); + yield return ExpressionStatement( + AssignmentExpression( + SyntaxKind.SimpleAssignmentExpression, + IdentifierName(local), + IdentifierName(param))); break; case StubCodeContext.Stage.Marshal: if (elementMarshalling is MarshalDirection.ManagedToUnmanaged or MarshalDirection.Bidirectional && info.IsByRef) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs index 7873781e475df..c347e38f1761c 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs @@ -108,8 +108,7 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont private bool ShouldGenerateByValueOutMarshalling(TypePositionInfo info, StubCodeContext context) { - return - info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) + return info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) && _byValueContentsMarshallingSupport.GetSupport(info.ByValueContentsMarshalKind, info, context, out _) == ByValueMarshalKindSupport.Supported && !info.IsByRef && !_isPinned; diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs index c11e670e9a7d8..bba0c7bf243a8 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs @@ -20,7 +20,7 @@ internal interface IElementsMarshallingCollectionSource internal abstract class ElementsMarshalling { - protected IElementsMarshallingCollectionSource CollectionSource { get; } + internal IElementsMarshallingCollectionSource CollectionSource { get; } protected ElementsMarshalling(IElementsMarshallingCollectionSource collectionSource) { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs index 86275796f208e..1d511e1e6ffb0 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs @@ -44,6 +44,26 @@ public static ForStatementSyntax GetForLoop(ExpressionSyntax lengthExpression, s IdentifierName(indexerIdentifier)))); } + public static LocalDeclarationStatementSyntax DeclareWithModifiers(TypePositionInfo typeSyntax, string identifier, ExpressionSyntax? initializer = null) + { + VariableDeclaratorSyntax decl = VariableDeclarator(identifier); + if (initializer is not null) + { + decl = decl.WithInitializer( + EqualsValueClause( + initializer)); + } + + // ; + // or + // = ; + return LocalDeclarationStatement( + typeSyntax.IsByRef ? TokenList(Token(SyntaxKind.RefKeyword)) : TokenList(), + VariableDeclaration( + typeSyntax.ManagedType.Syntax, + SingletonSeparatedList(decl))); + } + public static LocalDeclarationStatementSyntax Declare(TypeSyntax typeSyntax, string identifier, bool initializeToDefault) { return Declare(typeSyntax, identifier, initializeToDefault ? LiteralExpression(SyntaxKind.DefaultLiteralExpression) : null); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs index 2c11351959b03..3ca815976091f 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs @@ -60,7 +60,7 @@ public static ParameterSyntax AsParameter(this IMarshallingGenerator generator, SignatureBehavior behavior = generator.GetNativeSignatureBehavior(info); if (behavior == SignatureBehavior.ManagedTypeAndAttributes) { - return GenerateForwardingParameter(info, context.GetIdentifiers(info).managed); + return GenerateForwardingParameter(info, info.InstanceIdentifier); } string identifierName; if (context.Direction == MarshalDirection.ManagedToUnmanaged) @@ -91,6 +91,10 @@ public static ParameterSyntax AsParameter(this IMarshallingGenerator generator, { throw new ArgumentException("Context direction must be ManagedToUnmanaged or UnmanagedToManaged"); } + if (!info.IsManagedReturnPosition) + { + identifierName = info.InstanceIdentifier; + } return Parameter(Identifier(identifierName)) .WithType(behavior switch { @@ -155,7 +159,7 @@ private static bool TryRehydrateMarshalAsAttribute(TypePositionInfo info, out At CustomTypeMarshallerData defaultMarshallerData = collectionMarshalling.Marshallers.GetModeOrDefault(MarshalMode.Default); if ((defaultMarshallerData.MarshallerType.FullTypeName.StartsWith($"{TypeNames.System_Runtime_InteropServices_ArrayMarshaller}<") || defaultMarshallerData.MarshallerType.FullTypeName.StartsWith($"{TypeNames.System_Runtime_InteropServices_PointerArrayMarshaller}<")) - && defaultMarshallerData.CollectionElementMarshallingInfo is NoMarshallingInfo or MarshalAsInfo { UnmanagedType: not UnmanagedType.CustomMarshaler }) + && defaultMarshallerData.CollectionElementMarshallingInfo is NoMarshallingInfo or MarshalAsInfo { UnmanagedType: not UnmanagedType.CustomMarshaler }) { countInfo = collectionMarshalling.ElementCountInfo; elementMarshallingInfo = defaultMarshallerData.CollectionElementMarshallingInfo; diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs index 03a906f888159..47a1c5da12e76 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs @@ -190,6 +190,30 @@ public static string GetMarshallerIdentifier(TypePositionInfo info, StubCodeCont { return context.GetAdditionalIdentifier(info, MarshallerIdentifier); } + + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) + { + var ids = context.GetAssignInOutIdentifiers(info); + var assignment = AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter)); + if (_unmanagedType is PointerTypeInfo pointer) + { + var rewriter = new PointerNativeTypeAssignmentRewriter(assignment.Right.ToString(), (PointerTypeSyntax)pointer.Syntax); + assignment = (AssignmentExpressionSyntax)rewriter.Visit(assignment); + } + yield return ExpressionStatement(assignment); + } + + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) + { + var ids = context.GetAssignInOutIdentifiers(info); + var assignment = AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.parameter), IdentifierName(ids.local)); + if (_unmanagedType is PointerTypeInfo pointer) + { + var rewriter = new PointerNativeTypeAssignmentRewriter(assignment.Right.ToString(), (PointerTypeSyntax)pointer.Syntax); + assignment = (AssignmentExpressionSyntax)rewriter.Visit(assignment); + } + yield return ExpressionStatement(assignment); + } } /// @@ -284,6 +308,8 @@ public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) public IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateGuaranteedUnmarshalStatements(info, context); public IEnumerable GenerateNotifyForSuccessfulInvokeStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(info, context); + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterIn(info, context); + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterOut(info, context); } internal sealed class StatefulLinearCollectionSource : IElementsMarshallingCollectionSource @@ -488,6 +514,50 @@ public IEnumerable GenerateUnmarshalStatements(TypePositionInfo public IEnumerable GenerateUnmarshalCaptureStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateUnmarshalCaptureStatements(info, context); public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true; + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) + { + // If we need to marshal the contents back out, we should make a copy of the elements in a new array + if (!info.IsByRef && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) + { + //TODO: Allocate space to hold the temporary contents + if (context.Direction == MarshalDirection.ManagedToUnmanaged) + { + //TODO: copy the contents + yield break; + } + else if (context.Direction == MarshalDirection.UnmanagedToManaged) + { + //TODO: copy the contents + yield break; + } + throw new UnreachableException(); + } + + // Otherwise, we can just assign the native identifier to be the parameter + var ids = context.GetAssignInOutIdentifiers(info); + yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter))); + } + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) + { + if (!info.IsByRef && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) + { + if (context.Direction == MarshalDirection.ManagedToUnmanaged) + { + //TODO: copy the contents + yield break; + } + else if (context.Direction == MarshalDirection.UnmanagedToManaged) + { + //TODO: copy the contents + yield break; + } + throw new UnreachableException(); + } + + // Otherwise, we can just assign the native identifier to be the parameter + var ids = context.GetAssignInOutIdentifiers(info); + yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter))); + } } /// @@ -504,6 +574,22 @@ public StatefulFreeMarshalling(ICustomTypeMarshallingStrategy innerMarshaller) public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) + => _innerMarshaller.GenerateAssignParameterIn(info, context); + + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) + { + List statements = new List(); + // In unmanaged to managed, we take ownership of the parameter and should clean up + if (context.Direction == MarshalDirection.UnmanagedToManaged) + { + statements.AddRange(GenerateCleanupStatements(info, new NativeIdIsParameterContext(context))); + } + statements.AddRange(_innerMarshaller.GenerateAssignParameterOut(info, context)); + return statements; + } + + public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { foreach (var statement in _innerMarshaller.GenerateCleanupStatements(info, context)) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs index 24cfcca03df60..8246d3a794603 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs @@ -138,6 +138,29 @@ public IEnumerable GenerateNotifyForSuccessfulInvokeStatements( { return Array.Empty(); } + + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) + { + var ids = context.GetAssignInOutIdentifiers(info); + var assignment = AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter)); + if (_unmanagedType is PointerTypeInfo pointer) + { + var rewriter = new PointerNativeTypeAssignmentRewriter(assignment.Right.ToString(), (PointerTypeSyntax)pointer.Syntax); + assignment = (AssignmentExpressionSyntax)rewriter.Visit(assignment); + } + yield return ExpressionStatement(assignment); + } + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) + { + var ids = context.GetAssignInOutIdentifiers(info); + var assignment = AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.parameter), IdentifierName(ids.local)); + if (_unmanagedType is PointerTypeInfo pointer) + { + var rewriter = new PointerNativeTypeAssignmentRewriter(assignment.Right.ToString(), (PointerTypeSyntax)pointer.Syntax); + assignment = (AssignmentExpressionSyntax)rewriter.Visit(assignment); + } + yield return ExpressionStatement(assignment); + } } /// @@ -251,6 +274,8 @@ IEnumerable GenerateCallerAllocatedBufferMarshalStatements() public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.UsesNativeIdentifier(info, context); public IEnumerable GenerateNotifyForSuccessfulInvokeStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(info, context); + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterIn(info, context); + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterOut(info, context); } internal sealed class StatelessFreeMarshalling : ICustomTypeMarshallingStrategy @@ -266,6 +291,21 @@ public StatelessFreeMarshalling(ICustomTypeMarshallingStrategy innerMarshaller, public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) + => _innerMarshaller.GenerateAssignParameterIn(info, context); + + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) + { + List statements = new List(); + // In unmanaged to managed, we take ownership of the parameter and should clean up + if (context.Direction == MarshalDirection.UnmanagedToManaged) + { + statements.AddRange(GenerateCleanupStatements(info, new NativeIdIsParameterContext(context))); + } + statements.AddRange(_innerMarshaller.GenerateAssignParameterOut(info, context)); + return statements; + } + public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { foreach (StatementSyntax statement in _innerMarshaller.GenerateCleanupStatements(info, context)) @@ -293,10 +333,16 @@ public IEnumerable GenerateCleanupStatements(TypePositionInfo i public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.UsesNativeIdentifier(info, context); } + + internal interface ILinearCollectionSpaceAllocator : ICustomTypeMarshallingStrategy + { + + } + /// /// Marshaller type that enables allocating space for marshalling a linear collection using a marshaller that implements the LinearCollection marshalling spec. /// - internal sealed class StatelessLinearCollectionSpaceAllocator : ICustomTypeMarshallingStrategy + internal sealed class StatelessLinearCollectionSpaceAllocator : ILinearCollectionSpaceAllocator { private readonly TypeSyntax _marshallerTypeSyntax; private readonly ManagedTypeInfo _unmanagedType; @@ -311,11 +357,80 @@ public StatelessLinearCollectionSpaceAllocator(TypeSyntax marshallerTypeSyntax, _numElementsExpression = numElementsExpression; } + /// + /// = .AllocateContainerForUnmanagedElements(, out ); + /// + private ExpressionStatementSyntax GetAllocateContainerForUnmanagedElements(string nativeIdentifier, string managedIdentifier, string numElementsIdentifier) + { + // = .AllocateContainerForUnmanagedElements(, out ); + return ExpressionStatement( + AssignmentExpression( + SyntaxKind.SimpleAssignmentExpression, + IdentifierName(nativeIdentifier), + InvocationExpression( + MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + _marshallerTypeSyntax, + IdentifierName(ShapeMemberNames.LinearCollection.Stateless.AllocateContainerForUnmanagedElements)), + ArgumentList(SeparatedList(new ArgumentSyntax[] + { + Argument(IdentifierName(managedIdentifier)), + Argument(IdentifierName(numElementsIdentifier)) + .WithRefOrOutKeyword(Token(SyntaxKind.OutKeyword)) + }))))); + + } + /// + /// = .AllocateContainerForManagedElements(, ); + /// + private ExpressionStatementSyntax GetAllocateContainerForManagedElements(string managedIdentifier, string nativeIdentifier, string numElementsIdentifier) + { + // = .AllocateContainerForManagedElements(, ); + return ExpressionStatement( + AssignmentExpression( + SyntaxKind.SimpleAssignmentExpression, + IdentifierName(managedIdentifier), + InvocationExpression( + MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + _marshallerTypeSyntax, + IdentifierName(ShapeMemberNames.LinearCollection.Stateless.AllocateContainerForManagedElements)), + ArgumentList(SeparatedList(new ArgumentSyntax[] + { + Argument(IdentifierName(nativeIdentifier)), + Argument(IdentifierName(numElementsIdentifier)) + }))))); + } + public ManagedTypeInfo AsNativeType(TypePositionInfo info) { return _unmanagedType; } + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) + { + // For ByValue arrays, we need to allocate a container to copy the array contents + var ids = context.GetIdentifiers(info); + string numElementsIdentifier = MarshallerHelpers.GetNumElementsIdentifier(info, context); + switch (context.Direction) + { + case MarshalDirection.UnmanagedToManaged: + var allocateStatement = GetAllocateContainerForUnmanagedElements(ids.native, ids.managed, numElementsIdentifier); + yield return allocateStatement; + yield break; + case MarshalDirection.ManagedToUnmanaged: + var allocatestatement = GetAllocateContainerForManagedElements(ids.managed, ids.native, numElementsIdentifier); + yield return allocatestatement; + yield break; + default: + throw new NotImplementedException(); + } + } + + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) + { + // We shouldn't need to allocate for assign out, the marshal / unmarshal has already allocated + yield break; + } + public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { if (MarshallerHelpers.GetMarshalDirection(info, context) == MarshalDirection.ManagedToUnmanaged) @@ -529,7 +644,7 @@ public InvocationExpressionSyntax GetManagedValuesDestination(TypePositionInfo i /// internal sealed class StatelessLinearCollectionMarshalling : ICustomTypeMarshallingStrategy { - private readonly ICustomTypeMarshallingStrategy _spaceMarshallingStrategy; + private readonly ILinearCollectionSpaceAllocator _spaceMarshallingStrategy; private readonly ElementsMarshalling _elementsMarshalling; private readonly ManagedTypeInfo _unmanagedType; private readonly MarshallerShape _shape; @@ -537,7 +652,7 @@ internal sealed class StatelessLinearCollectionMarshalling : ICustomTypeMarshall private readonly bool _cleanupElementsAndSpace; public StatelessLinearCollectionMarshalling( - ICustomTypeMarshallingStrategy spaceMarshallingStrategy, + ILinearCollectionSpaceAllocator spaceMarshallingStrategy, ElementsMarshalling elementsMarshalling, ManagedTypeInfo unmanagedType, MarshallerShape shape, @@ -553,6 +668,50 @@ public StatelessLinearCollectionMarshalling( } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _unmanagedType; + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) + { + // If we need to marshal the contents back out, we should make a copy of the elements in a new array. Otherwise they won't be modified. + if (!info.IsByRef && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) + { + _spaceMarshallingStrategy.GenerateAssignParameterIn(info, context); + if (context.Direction == MarshalDirection.ManagedToUnmanaged) + { + //TODO: copy the contents + yield break; + } + else if (context.Direction == MarshalDirection.UnmanagedToManaged) + { + //TODO: copy the contents + yield break; + } + throw new UnreachableException(); + } + + // Otherwise, we can just assign the native identifier to be the parameter + var ids = context.GetAssignInOutIdentifiers(info); + yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter))); + } + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) + { + if (!info.IsByRef && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) + { + if (context.Direction == MarshalDirection.ManagedToUnmanaged) + { + //TODO: copy the contents + yield break; + } + else if (context.Direction == MarshalDirection.UnmanagedToManaged) + { + //TODO: copy the contents + yield break; + } + throw new UnreachableException(); + } + + // Otherwise, we can just assign the native identifier to be the parameter + var ids = context.GetAssignInOutIdentifiers(info); + yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter))); + } public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { @@ -666,4 +825,30 @@ public IEnumerable GenerateUnmarshalStatements(TypePositionInfo public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true; } + + /// + /// Context that treats the parameter identifier as the "native" identifier. Used to make GenerateCleanupStatements clean the value passed in. + /// + /// + internal sealed record NativeIdIsParameterContext(StubCodeContext inner) : StubCodeContext + { + public override bool SingleFrameSpansNativeContext => inner.SingleFrameSpansNativeContext; + + public override bool AdditionalTemporaryStateLivesAcrossStages => inner.AdditionalTemporaryStateLivesAcrossStages; + + public override (TargetFramework framework, Version version) GetTargetFramework() => inner.GetTargetFramework(); + + public override (string managed, string native) GetIdentifiers(TypePositionInfo info) => (inner.GetIdentifiers(info).managed, inner.GetAssignInOutIdentifiers(info).parameter); + } + + internal sealed record ManagedIdIsParameterContext(StubCodeContext inner) : StubCodeContext + { + public override bool SingleFrameSpansNativeContext => inner.SingleFrameSpansNativeContext; + + public override bool AdditionalTemporaryStateLivesAcrossStages => inner.AdditionalTemporaryStateLivesAcrossStages; + + public override (TargetFramework framework, Version version) GetTargetFramework() => inner.GetTargetFramework(); + + public override (string managed, string native) GetIdentifiers(TypePositionInfo info) => (inner.GetAssignInOutIdentifiers(info).parameter, inner.GetIdentifiers(info).native); + } } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs index 5b9d0866f743c..9ba56086b4460 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; @@ -24,7 +23,8 @@ public UnmanagedToManagedOwnershipTrackingStrategy(ICustomTypeMarshallingStrateg } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); - + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterIn(info, context); + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterOut(info, context); public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateCleanupStatements(info, context); public IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateGuaranteedUnmarshalStatements(info, context); @@ -90,6 +90,8 @@ public CleanupOwnedOriginalValueMarshalling(ICustomTypeMarshallingStrategy inner } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); + public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterIn(info, context); + public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterOut(info, context); public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/NativeToManagedStubCodeContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/NativeToManagedStubCodeContext.cs index 7940f6a15fd23..32f197c71bda8 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/NativeToManagedStubCodeContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/NativeToManagedStubCodeContext.cs @@ -2,8 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Diagnostics; -using Microsoft.CodeAnalysis.CSharp.Syntax; namespace Microsoft.Interop { @@ -35,7 +33,7 @@ public NativeToManagedStubCodeContext( } public override (TargetFramework framework, Version version) GetTargetFramework() - => (_framework, _frameworkVersion); + => (_framework, _frameworkVersion); public override (string managed, string native) GetIdentifiers(TypePositionInfo info) { @@ -49,7 +47,7 @@ public override (string managed, string native) GetIdentifiers(TypePositionInfo // the name of the exception variable specified in the catch clause. if (info.IsManagedExceptionPosition) { - return (info.InstanceIdentifier, _nativeReturnIdentifier); + return (base.GetIdentifiers(info).managed, _nativeReturnIdentifier); } return (_returnIdentifier, _nativeReturnIdentifier); } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs index 18dc4d397266b..2825dcb361cf7 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs @@ -117,6 +117,11 @@ public enum Stage /// public const string GeneratedNativeIdentifierSuffix = "_native"; + /// + /// Suffix for all generated managed identifiers. + /// + public const string GeneratedManagedIdentifierSuffix = "_managed"; + /// /// Get managed and native instance identifiers for the /// @@ -124,7 +129,8 @@ public enum Stage /// Managed and native identifiers public virtual (string managed, string native) GetIdentifiers(TypePositionInfo info) { - return ($"__{info.InstanceIdentifier}_managed", $"__{info.InstanceIdentifier.TrimStart('@')}{GeneratedNativeIdentifierSuffix}"); + return ($"__{info.InstanceIdentifier.TrimStart('@')}{GeneratedManagedIdentifierSuffix}", + $"__{info.InstanceIdentifier.TrimStart('@')}{GeneratedNativeIdentifierSuffix}"); } public virtual (string local, string parameter) GetAssignInOutIdentifiers(TypePositionInfo info) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs index c791ec1f268a0..8d97c832aca2a 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs @@ -22,6 +22,10 @@ public static VariableDeclarations GenerateDeclarationsForManagedToUnmanaged(Bou TypePositionInfo info = marshaller.TypeInfo; if (info.IsManagedReturnPosition) continue; + initializations.Add(MarshallerHelpers.DeclareWithModifiers( + info, + context.GetIdentifiers(info).managed, + LiteralExpression(CodeAnalysis.CSharp.SyntaxKind.DefaultLiteralExpression))); if (info.RefKind == RefKind.Out) { @@ -80,6 +84,15 @@ public static VariableDeclarations GenerateDeclarationsForUnmanagedToManaged(Bou ImmutableArray.Builder initializations = ImmutableArray.CreateBuilder(); ImmutableArray.Builder variables = ImmutableArray.CreateBuilder(); + foreach (var marshaller in marshallers.SignatureMarshallers) + { + TypePositionInfo info = marshaller.TypeInfo; + if (info.IsNativeReturnPosition || info.IsManagedReturnPosition) + continue; + // Initialize _native + TypeSyntax localType = marshaller.Generator.AsNativeType(marshaller.TypeInfo).Syntax; + initializations.Add(MarshallerHelpers.Declare(localType, context.GetIdentifiers(info).native, true)); + } foreach (BoundGenerator marshaller in marshallers.NativeParameterMarshallers) { TypePositionInfo info = marshaller.TypeInfo; @@ -152,10 +165,10 @@ static void AppendVariableDeclarations(ImmutableArray Date: Tue, 18 Jul 2023 10:05:43 -0700 Subject: [PATCH 05/20] builds the interop sln. repo build failing --- eng/CodeAnalysis.src.globalconfig | 6 - eng/CodeAnalysis.test.globalconfig | 6 - eng/pipelines/common/global-build-job.yml | 6 +- eng/pipelines/common/platform-matrix.yml | 40 +- .../templates/runtimes/build-test-job.yml | 4 - .../templates/runtimes/test-variables.yml | 4 - eng/pipelines/common/variables.yml | 8 +- eng/pipelines/common/xplat-setup.yml | 1 - eng/pipelines/coreclr/perf-non-wasm-jobs.yml | 8 +- .../templates/build-perf-sample-apps.yml | 4 +- eng/pipelines/coreclr/templates/perf-job.yml | 2 +- .../coreclr/templates/run-scenarios-job.yml | 4 - .../runtime-extra-platforms-ioslike.yml | 187 +- ...ntime-extra-platforms-ioslikesimulator.yml | 42 - eng/pipelines/runtime.yml | 2 +- eng/testing/ProvisioningVersions.props | 2 +- .../Reflection/Emit/RuntimeEnumBuilder.cs | 29 + src/coreclr/debug/daccess/task.cpp | 4 +- src/coreclr/debug/di/rsfunction.cpp | 90 - src/coreclr/debug/di/rspriv.h | 9 +- src/coreclr/debug/ee/debugger.cpp | 199 - src/coreclr/debug/ee/debugger.h | 9 - src/coreclr/debug/ee/functioninfo.cpp | 6 +- src/coreclr/debug/inc/dbgipcevents.h | 11 - src/coreclr/debug/inc/dbgipceventtypes.h | 8 +- .../debug/shared/dbgtransportsession.cpp | 11 - src/coreclr/gc/dac_gcheap_fields.h | 21 +- src/coreclr/gc/gc.cpp | 55 +- src/coreclr/gc/gcinterface.dac.h | 24 +- src/coreclr/gc/gcinterface.dacvars.def | 23 +- src/coreclr/gc/gcinterface.h | 2 +- src/coreclr/inc/CrstTypes.def | 4 +- src/coreclr/inc/cordebug.idl | 92 +- src/coreclr/inc/corinfo.h | 1 - src/coreclr/inc/corprof.idl | 1 - src/coreclr/inc/crsttypes_generated.h | 40 +- src/coreclr/inc/jiteeversionguid.h | 10 +- src/coreclr/inc/jithelpers.h | 1 - src/coreclr/inc/stresslog.h | 4 +- src/coreclr/jit/codegencommon.cpp | 10 - src/coreclr/jit/fginline.cpp | 2 +- src/coreclr/jit/promotion.cpp | 8 - .../Microsoft.NETCore.Native.Publish.targets | 4 +- .../src/System/Runtime/ThunkPool.cs | 30 +- src/coreclr/nativeaot/Runtime/CommonMacros.h | 24 +- src/coreclr/nativeaot/Runtime/PalRedhawk.h | 1 - .../nativeaot/Runtime/ThunksMapping.cpp | 5 +- src/coreclr/nativeaot/Runtime/allocheap.cpp | 4 +- src/coreclr/nativeaot/Runtime/allocheap.h | 2 + .../nativeaot/Runtime/amd64/MiscStubs.S | 6 +- .../nativeaot/Runtime/amd64/MiscStubs.asm | 6 +- src/coreclr/nativeaot/Runtime/arm/MiscStubs.S | 8 +- .../nativeaot/Runtime/eventpipe/ep-rt-aot.cpp | 95 +- .../nativeaot/Runtime/i386/MiscStubs.S | 6 +- .../nativeaot/Runtime/i386/MiscStubs.asm | 6 +- .../nativeaot/Runtime/unix/PalRedhawkInline.h | 14 - .../nativeaot/Runtime/unix/PalRedhawkUnix.cpp | 23 +- .../Runtime/windows/PalRedhawkInline.h | 5 - ...EnvironmentImplementation.MappingTables.cs | 70 +- ...System.Private.Reflection.Execution.csproj | 3 - src/coreclr/nativeaot/docs/optimizing.md | 35 +- src/coreclr/pal/prebuilt/idl/cordebug_i.cpp | 2 - src/coreclr/pal/prebuilt/inc/cordebug.h | 16089 +++++++--------- src/coreclr/pal/prebuilt/inc/corprof.h | 3 +- .../Common/Compiler/NativeAotNameMangler.cs | 15 +- .../Common/JitInterface/CorInfoHelpFunc.cs | 1 - .../tools/StressLogAnalyzer/StressLogDump.cpp | 29 +- .../StressLogAnalyzer/StressLogPlugin.cpp | 61 +- src/coreclr/tools/SuperFileCheck/Program.cs | 6 +- .../IBC/IBCProfileData.cs | 5 +- src/coreclr/utilcode/stresslog.cpp | 2 +- src/coreclr/vm/codeversion.cpp | 37 +- src/coreclr/vm/codeversion.h | 7 +- src/coreclr/vm/dbginterface.h | 5 - src/coreclr/vm/dllimport.h | 3 - src/coreclr/vm/eedbginterfaceimpl.cpp | 1 + src/coreclr/vm/gcheaputilities.cpp | 2 - src/coreclr/vm/genericdict.cpp | 102 +- src/coreclr/vm/ilstubcache.cpp | 45 - src/coreclr/vm/ilstubcache.h | 6 - src/coreclr/vm/inlinetracking.cpp | 78 +- src/coreclr/vm/inlinetracking.h | 26 +- src/coreclr/vm/jithelpers.cpp | 32 - src/coreclr/vm/jitinterface.cpp | 30 +- src/coreclr/vm/method.cpp | 28 - src/coreclr/vm/method.hpp | 15 - src/coreclr/vm/methoddescbackpatchinfo.h | 2 +- src/coreclr/vm/prestub.cpp | 9 - src/coreclr/vm/rejit.cpp | 88 +- src/coreclr/vm/rejit.h | 24 + src/coreclr/vm/stubgen.cpp | 5 - src/coreclr/vm/stubgen.h | 1 - src/coreclr/vm/stublink.h | 4 +- src/coreclr/vm/threadstatics.cpp | 2 +- src/coreclr/vm/tieredcompilation.cpp | 3 +- src/coreclr/vm/tieredcompilation.h | 5 - .../Cryptography/SP800108HmacCounterKdf.cs | 24 +- .../tests/TestUtilities/TestUtilities.csproj | 79 +- .../ref/Microsoft.Extensions.Http.cs | 20 - .../src/DefaultHttpClientFactory.cs | 6 - .../DefaultHttpClientBuilder.cs | 11 +- .../HttpClientBuilderExtensions.cs | 54 +- ...lientFactoryServiceCollectionExtensions.cs | 24 - .../src/HttpClientFactoryOptions.cs | 3 - .../LoggingHttpMessageHandlerBuilderFilter.cs | 9 +- ...tFactoryServiceCollectionExtensionsTest.cs | 134 +- .../Logging/LoggingUriOutputTests.cs | 14 + .../src/LoggerFilterConfigureOptions.cs | 4 +- ...ft.Extensions.Logging.Configuration.csproj | 2 +- .../src/ConsoleFormatterOptions.cs | 18 +- .../src/ConsoleLoggerConfigureOptions.cs | 2 +- .../src/ConsoleLoggerExtensions.Obsolete.cs | 6 +- .../src/ConsoleLoggerOptions.cs | 143 + .../src/JsonConsoleFormatterOptions.cs | 27 +- ...icrosoft.Extensions.Logging.Console.csproj | 31 +- .../src/SimpleConsoleFormatterOptions.cs | 15 +- .../ImplicitMachineConfigHost.cs | 2 - .../ImplicitMachineConfigTests.cs | 26 - .../tests/System/Configuration/TestData.cs | 18 - .../Diagnostics/Metrics/AggregationManager.cs | 3 +- .../Diagnostics/ProcessManager.Windows.cs | 3 +- .../AccountManagement/AD/ADDNLinkedAttrSet.cs | 3 +- .../src/System/IO/FileSystemWatcher.Linux.cs | 2 +- .../System.Net.Http/ref/System.Net.Http.cs | 16 - .../src/System.Net.Http.csproj | 6 +- .../BrowserHttpHandler/BrowserHttpHandler.cs | 1 + .../BrowserHttpHandler/SocketsHttpHandler.cs | 8 - .../src/System/Net/Http/DiagnosticsHandler.cs | 1 + .../Net/Http/HttpClientHandler.AnyMobile.cs | 65 +- .../src/System/Net/Http/HttpClientHandler.cs | 85 +- .../src/System/Net/Http/HttpMessageInvoker.cs | 3 + .../src/System/Net/Http/HttpRequestMessage.cs | 2 +- .../HttpConnectionSettings.cs | 3 - .../SocketsHttpHandler/SocketsHttpHandler.cs | 23 - .../System.Net.Http.Functional.Tests.csproj | 2 - .../src/Resources/Strings.resx | 2 +- .../src/System/Net/IPAddress.cs | 2 +- .../src/System/Net/IPNetwork.cs | 4 +- .../src/Resources/Strings.resx | 2 +- .../src/Resources/Strings.resx | 2 +- .../System/Net/WebSockets/ManagedWebSocket.cs | 4 +- .../src/Resources/Strings.resx | 7 +- .../System/Buffers/Text/Base64Validator.cs | 10 +- .../Utf8Formatter/Utf8Formatter.Boolean.cs | 4 +- .../Text/Utf8Formatter/Utf8Formatter.Date.cs | 8 +- .../Utf8Formatter/Utf8Formatter.Decimal.cs | 4 +- .../Text/Utf8Formatter/Utf8Formatter.Float.cs | 8 +- .../Text/Utf8Formatter/Utf8Formatter.Guid.cs | 4 +- .../Utf8Formatter/Utf8Formatter.Integer.cs | 32 +- .../Utf8Formatter/Utf8Formatter.TimeSpan.cs | 4 +- .../src/System/Convert.Base64.cs | 2 +- .../Tracing/TraceLogging/FieldMetadata.cs | 2 +- .../src/System/Double.cs | 42 +- .../System.Private.CoreLib/src/System/Half.cs | 40 +- .../src/System/IUtf8SpanFormattable.cs | 4 +- .../src/System/Number.Formatting.cs | 2 +- .../src/System/Numerics/INumberBase.cs | 59 +- .../Numerics/ITrigonometricFunctions.cs | 67 - .../src/System/Reflection/Emit/EnumBuilder.cs | 23 - .../Runtime/InteropServices/MemoryMarshal.cs | 4 +- .../System/Runtime/InteropServices/NFloat.cs | 18 - .../src/System/Single.cs | 40 +- .../src/System/Text/Unicode/Utf8.cs | 16 +- .../src/System/ThrowHelper.cs | 6 - .../src/System/TimeZoneInfo.Unix.cs | 2 +- .../src/System/Version.cs | 4 +- .../src/Resources/Strings.resx | 6 +- .../src/System/Xml/Schema/XNodeValidator.cs | 5 +- .../src/System/Xml/Schema/DtdParser.cs | 10 +- .../src/System/Xml/Schema/DtdParserAsync.cs | 10 +- .../Xml/Schema/SchemaCollectionCompiler.cs | 5 +- .../src/System/Xml/Schema/SchemaInfo.cs | 15 +- .../System/Xml/Schema/SchemaSetCompiler.cs | 5 +- .../src/System/Xml/Schema/XdrBuilder.cs | 6 +- .../System.Reflection.Emit.sln | 4 +- .../src/Resources/Strings.resx | 12 - .../src/System.Reflection.Emit.csproj | 4 +- .../Reflection/Emit/FieldBuilderImpl.cs | 57 +- .../Reflection/Emit/ModuleBuilderImpl.cs | 25 +- .../System/Reflection/Emit/TypeBuilderImpl.cs | 39 +- .../AssemblySaveCustomAttributeTests.cs | 78 +- .../AssemblySaveWithVariousMembersTests.cs | 525 + .../AssemblyTools.cs | 212 + .../tests/System.Reflection.Emit.Tests.csproj | 5 +- .../src/Resources/Strings.resx | 2 +- .../Internal/Utilities/MemoryBlock.cs | 10 +- .../System/Reflection/Metadata/BlobBuilder.cs | 12 +- .../System/Reflection/Metadata/BlobReader.cs | 6 +- .../System/Reflection/Metadata/BlobWriter.cs | 12 +- .../Metadata/Ecma335/MetadataBuilder.Heaps.cs | 6 +- .../Metadata/Ecma335/MetadataRootBuilder.cs | 2 +- .../Reflection/Metadata/MetadataReader.cs | 2 +- .../PortableExecutable/PEBinaryReader.cs | 4 +- .../JSImportGenerator/JSExportGenerator.cs | 2 +- .../JSImportGenerator/JSImportGenerator.cs | 2 +- .../ComInterfaceGenerator.cs | 3 +- .../ComInterfaceDispatchMarshallerFactory.cs | 8 - .../ObjectUnwrapperMarshallerFactory.cs | 10 +- .../UnmanagedToManagedStubGenerator.cs | 2 +- .../VirtualMethodPointerStubGenerator.cs | 8 +- .../VtableIndexStubGenerator.cs | 2 +- .../LibraryImportGenerator.cs | 2 +- .../ContainingSyntaxContext.cs | 20 +- .../GeneratedStatements.cs | 8 +- ...ributedMarshallingModelGeneratorFactory.cs | 40 +- .../Marshalling/BlittableMarshaller.cs | 6 - .../CustomTypeMarshallingGenerator.cs | 3 +- .../Marshalling/ElementsMarshalling.cs | 2 +- .../ICustomTypeMarshallingStrategy.cs | 31 +- .../Marshalling/MarshalToLocalContext.cs | 19 + .../Marshalling/MarshallerHelpers.cs | 32 +- .../MarshallingGeneratorExtensions.cs | 6 +- .../StatefulMarshallingStrategy.cs | 86 - .../StatelessMarshallingStrategy.cs | 191 +- ...nagedToManagedOwnershipTrackingStrategy.cs | 6 +- .../NativeToManagedStubCodeContext.cs | 6 +- .../StubCodeContext.cs | 19 +- .../VariableDeclarations.cs | 77 +- .../ref/System.Runtime.InteropServices.cs | 2 - .../CompileFails.cs | 53 +- .../NFloatTests.GenericMath.cs | 2 +- .../Runtime/InteropServices/NFloatTests.cs | 120 - .../NativeExports/NativeExports.csproj | 7 + .../TestAssets/SharedTypes/NonBlittable.cs | 5 +- .../TestAssets/SharedTypes/SharedTypes.csproj | 9 +- .../System.Runtime/ref/System.Runtime.cs | 11 +- .../tests/System/DoubleTests.GenericMath.cs | 2 +- .../tests/System/DoubleTests.cs | 60 - .../tests/System/HalfTests.GenericMath.cs | 2 +- .../System.Runtime/tests/System/HalfTests.cs | 70 - .../tests/System/SingleTests.GenericMath.cs | 2 +- .../tests/System/SingleTests.cs | 60 - .../tests/System/TimeZoneInfoTests.cs | 22 - .../Rfc2898DeriveBytes.OneShot.cs | 12 +- .../JsonSourceGenerationOptionsAttribute.cs | 83 - .../gen/JsonSourceGenerator.Emitter.cs | 172 +- .../gen/JsonSourceGenerator.Parser.cs | 211 +- .../gen/Model/ContextGenerationSpec.cs | 12 +- .../gen/Model/PropertyGenerationSpec.cs | 13 +- .../gen/Resources/xlf/Strings.cs.xlf | 4 +- .../gen/Resources/xlf/Strings.de.xlf | 4 +- .../gen/Resources/xlf/Strings.es.xlf | 4 +- .../gen/Resources/xlf/Strings.fr.xlf | 4 +- .../gen/Resources/xlf/Strings.it.xlf | 4 +- .../gen/Resources/xlf/Strings.ja.xlf | 4 +- .../gen/Resources/xlf/Strings.ko.xlf | 4 +- .../gen/Resources/xlf/Strings.pl.xlf | 4 +- .../gen/Resources/xlf/Strings.pt-BR.xlf | 4 +- .../gen/Resources/xlf/Strings.ru.xlf | 4 +- .../gen/Resources/xlf/Strings.tr.xlf | 4 +- .../gen/Resources/xlf/Strings.zh-Hans.xlf | 4 +- .../gen/Resources/xlf/Strings.zh-Hant.xlf | 4 +- .../System.Text.Json.SourceGeneration.targets | 4 - .../System.Text.Json/ref/System.Text.Json.cs | 12 - .../src/System.Text.Json.csproj | 6 +- .../Text/Json/Document/JsonDocument.Parse.cs | 8 +- .../System/Text/Json/JsonCommentHandling.cs | 28 + .../System/Text/Json/Nodes/JsonNode.Parse.cs | 2 +- .../Serialization/JsonSerializerContext.cs | 11 +- .../Serialization/JsonSerializerDefaults.cs | 26 + .../Serialization/JsonSerializerOptions.cs | 2 - .../Serialization/JsonUnknownTypeHandling.cs | 20 + .../tests/Common/JsonTestHelper.cs | 36 - ...m.Text.Json.SourceGeneration.Tests.targets | 1 - .../Serialization/OptionsTests.cs | 43 +- .../Text/RegularExpressions/RegexParser.cs | 209 +- .../Emit/RuntimeEnumBuilder.Mono.cs | 23 + src/mono/mono/component/debugger-agent.c | 208 +- src/mono/mono/component/debugger-protocol.h | 2 +- src/mono/mono/component/mini-wasm-debugger.c | 22 + src/mono/mono/metadata/CMakeLists.txt | 2 - src/mono/mono/metadata/class-internals.h | 3 - src/mono/mono/metadata/custom-attrs.c | 57 - src/mono/mono/metadata/loader-internals.h | 1 - src/mono/mono/metadata/loader.c | 42 +- src/mono/mono/metadata/marshal-lightweight.c | 75 - src/mono/mono/metadata/marshal.c | 91 - src/mono/mono/metadata/marshal.h | 16 +- src/mono/mono/metadata/reflection-internals.h | 2 - src/mono/mono/mini/aot-compiler.c | 32 - src/mono/mono/mini/aot-runtime.c | 9 - src/mono/mono/mini/interp/transform.c | 7 - src/mono/mono/mini/mini-runtime.c | 16 - .../msbuild/apple/build/AppleBuild.targets | 2 - src/mono/sample/iOS-NativeAOT/Makefile | 10 +- src/mono/sample/iOS-NativeAOT/Program.csproj | 8 +- src/mono/sample/iOS/Makefile | 4 +- .../Wasm.Browser.WebPack.Sample.csproj | 17 +- .../wasm/browser-webpack/package-lock.json | 5105 +++-- .../sample/wasm/browser-webpack/package.json | 4 +- .../Wasm.Console.Node.TS.Sample.csproj | 1 - .../wasm/console-node-ts/package-lock.json | 34 +- .../sample/wasm/console-node-ts/package.json | 4 +- .../debugger/BrowserDebugProxy/DebugStore.cs | 244 +- .../debugger/BrowserDebugProxy/MonoProxy.cs | 3 +- .../BrowserDebugProxy/MonoSDBHelper.cs | 84 +- .../DebuggerTestSuite/HotReloadTests.cs | 26 - .../MethodBody1.cs | 86 +- .../MethodBody1_v1.cs | 32 +- .../MethodBody1_v2.cs | 33 +- src/mono/wasm/runtime/http.ts | 14 +- .../wasm/runtime/jiterpreter-interp-entry.ts | 2 +- src/mono/wasm/runtime/jiterpreter-jit-call.ts | 2 +- src/mono/wasm/runtime/jiterpreter-support.ts | 10 +- src/mono/wasm/runtime/jiterpreter.ts | 2 +- src/mono/wasm/runtime/loader/index.ts | 3 - src/mono/wasm/runtime/loader/polyfills.ts | 17 - src/mono/wasm/runtime/loader/run.ts | 4 +- src/mono/wasm/runtime/loader/worker.ts | 3 - src/mono/wasm/runtime/package-lock.json | 213 +- src/mono/wasm/runtime/package.json | 20 +- src/mono/wasm/runtime/web-socket.ts | 15 +- src/tasks/AppleAppBuilder/AppleAppBuilder.cs | 2 +- .../AppleAppBuilder/Templates/main-simple.m | 1 + .../ComputeWasmPublishAssets.cs | 2 - src/tests/Common/CLRTest.Execute.Bash.targets | 2 +- .../Common/CoreCLRTestLibrary/Utilities.cs | 4 - src/tests/Directory.Build.props | 13 +- src/tests/Directory.Build.targets | 2 +- .../mono-embedding-api-test.c | 3 +- .../UnsafeAccessors/UnsafeAccessorsTests.cs | 19 +- src/tests/build.proj | 73 +- src/tests/issues.targets | 3 - .../SmokeTests/UnitTests/Delegates.cs | 7 +- .../diagnosticport/diagnosticport.cs | 7 +- .../eventpipe/processinfo/processinfo.cs | 4 +- .../eventpipe/processinfo/processinfo.csproj | 1 - .../eventpipe/processinfo2/processinfo2.cs | 4 +- .../processinfo2/processinfo2.csproj | 1 - .../UnnecessaryFieldsAssignmentAnalyzer.cs | 4 +- .../DynamicDependencyMethod.cs | 4 - 331 files changed, 12590 insertions(+), 16682 deletions(-) create mode 100644 src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveWithVariousMembersTests.cs create mode 100644 src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblyTools.cs create mode 100644 src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs create mode 100644 src/libraries/System.Text.Json/src/System/Text/Json/JsonCommentHandling.cs create mode 100644 src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerDefaults.cs create mode 100644 src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonUnknownTypeHandling.cs diff --git a/eng/CodeAnalysis.src.globalconfig b/eng/CodeAnalysis.src.globalconfig index 36a3ff9f2eb14..f7b055d9c7503 100644 --- a/eng/CodeAnalysis.src.globalconfig +++ b/eng/CodeAnalysis.src.globalconfig @@ -474,12 +474,6 @@ dotnet_diagnostic.CA1860.severity = warning # CA1861: Avoid constant arrays as arguments dotnet_diagnostic.CA1861.severity = warning -# CA1862: Prefer using 'StringComparer'/'StringComparison' to perform case-insensitive string comparisons -dotnet_diagnostic.CA1862.severity = warning - -# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method -dotnet_diagnostic.CA1864.severity = warning - # CA2000: Dispose objects before losing scope dotnet_diagnostic.CA2000.severity = none diff --git a/eng/CodeAnalysis.test.globalconfig b/eng/CodeAnalysis.test.globalconfig index d884d9f4efc1e..fa3d2593e530f 100644 --- a/eng/CodeAnalysis.test.globalconfig +++ b/eng/CodeAnalysis.test.globalconfig @@ -471,12 +471,6 @@ dotnet_diagnostic.CA1860.severity = none # CA1861: Avoid constant arrays as arguments dotnet_diagnostic.CA1861.severity = none -# CA1862: Prefer using 'StringComparer'/'StringComparison' to perform case-insensitive string comparisons -dotnet_diagnostic.CA1862.severity = none - -# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method -dotnet_diagnostic.CA1864.severity = none - # CA2000: Dispose objects before losing scope dotnet_diagnostic.CA2000.severity = none diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml index 3ac90ee3387b4..ccf969e5b5764 100644 --- a/eng/pipelines/common/global-build-job.yml +++ b/eng/pipelines/common/global-build-job.yml @@ -70,8 +70,6 @@ jobs: - name: _osParameter value: -os ${{ parameters.osGroup }} - - name: _archParameter - value: -arch ${{ parameters.archType }} - ${{ if and(eq(parameters.osGroup, 'linux'), eq(parameters.osSubGroup, '_bionic')) }}: - name: _osParameter @@ -144,7 +142,7 @@ jobs: clean: true fetchDepth: $(checkoutFetchDepth) - - ${{ if and(eq(parameters.isOfficialBuild, true), notin(parameters.osGroup, 'osx', 'maccatalyst', 'ios', 'iossimulator', 'tvos', 'tvossimulator')) }}: + - ${{ if eq(parameters.isOfficialBuild, true) }}: - template: /eng/pipelines/common/restore-internal-tools.yml - ${{ each monoCrossAOTTargetOS in parameters.monoCrossAOTTargetOS }}: @@ -186,7 +184,7 @@ jobs: - task: CodeQL3000Init@0 displayName: Initialize CodeQL (manually-injected) - - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci $(_archParameter) $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) + - script: $(Build.SourcesDirectory)$(dir)build$(scriptExt) -ci -arch ${{ parameters.archType }} $(_osParameter) $(crossArg) ${{ parameters.buildArgs }} $(_officialBuildParameter) $(_buildDarwinFrameworksParameter) $(_overrideTestScriptWindowsCmdParameter) displayName: Build product ${{ if eq(parameters.useContinueOnErrorDuringBuild, true) }}: continueOnError: ${{ parameters.shouldContinueOnError }} diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 8399c82ecd769..bae79645c0c6d 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -674,10 +674,7 @@ jobs: platform: maccatalyst_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, '') }}: - runtimeFlavor: mono - ${{ else }}: - runtimeFlavor: ${{ parameters.runtimeFlavor }} + runtimeFlavor: mono buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -696,10 +693,7 @@ jobs: platform: maccatalyst_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, '') }}: - runtimeFlavor: mono - ${{ else }}: - runtimeFlavor: ${{ parameters.runtimeFlavor }} + runtimeFlavor: mono buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -718,10 +712,7 @@ jobs: platform: tvos_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, '') }}: - runtimeFlavor: mono - ${{ else }}: - runtimeFlavor: ${{ parameters.runtimeFlavor }} + runtimeFlavor: mono buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -740,10 +731,7 @@ jobs: platform: tvossimulator_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, '') }}: - runtimeFlavor: mono - ${{ else }}: - runtimeFlavor: ${{ parameters.runtimeFlavor }} + runtimeFlavor: mono buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -762,10 +750,7 @@ jobs: platform: tvossimulator_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, '') }}: - runtimeFlavor: mono - ${{ else }}: - runtimeFlavor: ${{ parameters.runtimeFlavor }} + runtimeFlavor: mono buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -784,10 +769,7 @@ jobs: platform: ios_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, '') }}: - runtimeFlavor: mono - ${{ else }}: - runtimeFlavor: ${{ parameters.runtimeFlavor }} + runtimeFlavor: mono buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -806,10 +788,7 @@ jobs: platform: iossimulator_x64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, '') }}: - runtimeFlavor: mono - ${{ else }}: - runtimeFlavor: ${{ parameters.runtimeFlavor }} + runtimeFlavor: mono buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} @@ -828,10 +807,7 @@ jobs: platform: iossimulator_arm64 shouldContinueOnError: ${{ parameters.shouldContinueOnError }} jobParameters: - ${{ if eq(parameters.runtimeFlavor, '') }}: - runtimeFlavor: mono - ${{ else }}: - runtimeFlavor: ${{ parameters.runtimeFlavor }} + runtimeFlavor: mono buildConfig: ${{ parameters.buildConfig }} helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml index 567c1e5f99714..2813c45915c5e 100644 --- a/eng/pipelines/common/templates/runtimes/build-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml @@ -80,10 +80,6 @@ jobs: - name: runtimeFlavorArgs value: '-mono' - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}: - - name: runtimeFlavorArgs - value: '-nativeaot' - - name: testTreeFilterArg value: '' diff --git a/eng/pipelines/common/templates/runtimes/test-variables.yml b/eng/pipelines/common/templates/runtimes/test-variables.yml index d3eb48f309df7..108b9f03ddb13 100644 --- a/eng/pipelines/common/templates/runtimes/test-variables.yml +++ b/eng/pipelines/common/templates/runtimes/test-variables.yml @@ -79,10 +79,6 @@ variables: - name: runtimeFlavorArgs value: '-mono' - - ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), in(parameters.osGroup, 'ios', 'iossimulator', 'tvos', 'tvossimulator', 'maccatalyst')) }}: - - name: runtimeFlavorArgs - value: '-nativeaot' - - name: runtimeVariantArg value: '' diff --git a/eng/pipelines/common/variables.yml b/eng/pipelines/common/variables.yml index 9e2a73794ff89..2a757f82572ad 100644 --- a/eng/pipelines/common/variables.yml +++ b/eng/pipelines/common/variables.yml @@ -20,7 +20,7 @@ variables: - name: isWasmOnlyBuild value: ${{ in(variables['Build.DefinitionName'], 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-wasm-dbgtests', 'runtime-wasm-optional') }} - name: isiOSLikeOnlyBuild - value: ${{ in(variables['Build.DefinitionName'], 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr') }} + value: ${{ in(variables['Build.DefinitionName'], 'runtime-ioslike') }} - name: isiOSLikeSimulatorOnlyBuild value: ${{ in(variables['Build.DefinitionName'], 'runtime-ioslikesimulator') }} - name: isAndroidOnlyBuild @@ -32,14 +32,14 @@ variables: - name: isLinuxBionicOnlyBuild value: ${{ in(variables['Build.DefinitionName'], 'runtime-linuxbionic') }} - name: isRunSmokeTestsOnly - value: ${{ notin(variables['Build.DefinitionName'], 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }} + value: ${{ notin(variables['Build.DefinitionName'], 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }} - name: isNotSpecificPlatformOnlyBuild - value: ${{ notin(variables['Build.DefinitionName'], 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }} + value: ${{ notin(variables['Build.DefinitionName'], 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic') }} # We only run evaluate paths on runtime and runtime-community pipelines on PRs # keep in sync with /eng/pipelines/common/xplat-setup.yml - name: dependOnEvaluatePaths - value: ${{ and(eq(variables['Build.Reason'], 'PullRequest'), in(variables['Build.DefinitionName'], 'runtime', 'runtime-community', 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslike-mono', 'runtime-ioslike-coreclr', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic', 'dotnet-linker-tests', 'runtime-dev-innerloop', 'runtime-coreclr superpmi-replay', 'runtime-coreclr superpmi-diffs')) }} + value: ${{ and(eq(variables['Build.Reason'], 'PullRequest'), in(variables['Build.DefinitionName'], 'runtime', 'runtime-community', 'runtime-extra-platforms', 'runtime-wasm', 'runtime-wasm-libtests', 'runtime-wasm-non-libtests', 'runtime-ioslike', 'runtime-ioslikesimulator', 'runtime-android', 'runtime-androidemulator', 'runtime-maccatalyst', 'runtime-linuxbionic', 'dotnet-linker-tests', 'runtime-dev-innerloop', 'runtime-coreclr superpmi-replay', 'runtime-coreclr superpmi-diffs')) }} - name: debugOnPrReleaseOnRolling ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: value: Release diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index b56f65ef76ce5..d6b8d260f95e7 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -1,7 +1,6 @@ parameters: jobTemplate: '' hostedOs: '' - hostedArch: '' osGroup: '' osSubgroup: '' archType: '' diff --git a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml index 332492974d95b..6fac2057131eb 100644 --- a/eng/pipelines/coreclr/perf-non-wasm-jobs.yml +++ b/eng/pipelines/coreclr/perf-non-wasm-jobs.yml @@ -107,11 +107,11 @@ jobs: parameters: jobTemplate: /eng/pipelines/common/global-build-job.yml buildConfig: release - runtimeFlavor: coreclr + runtimeFlavor: mono platforms: - ios_arm64 jobParameters: - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) + buildArgs: -s clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) nameSuffix: iOSNativeAOT isOfficialBuild: false extraStepsTemplate: /eng/pipelines/coreclr/templates/build-perf-sample-apps.yml @@ -223,7 +223,7 @@ jobs: parameters: jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml buildConfig: release - runtimeFlavor: coreclr + runtimeFlavor: mono platforms: - osx_x64 jobParameters: @@ -239,7 +239,7 @@ jobs: parameters: jobTemplate: /eng/pipelines/coreclr/templates/perf-job.yml buildConfig: release - runtimeFlavor: coreclr + runtimeFlavor: mono platforms: - osx_x64 jobParameters: diff --git a/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml b/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml index b74f22d62690a..de6e5137ce715 100644 --- a/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml +++ b/eng/pipelines/coreclr/templates/build-perf-sample-apps.yml @@ -137,7 +137,7 @@ steps: artifactName: ${{ parameters.artifactName }} - template: /eng/pipelines/common/upload-artifact-step.yml parameters: - rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app + rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/publish/app/HelloiOS/Release-iphoneos/HelloiOS.app includeRootFolder: true displayName: iOS Sample App Symbols artifactName: iOSSampleAppSymbols @@ -159,7 +159,7 @@ steps: artifactName: ${{ parameters.artifactName }} - template: /eng/pipelines/common/upload-artifact-step.yml parameters: - rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app + rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/publish/app/HelloiOS/Release-iphoneos/HelloiOS.app includeRootFolder: true displayName: iOS Sample App NoSymbols artifactName: iOSSampleAppNoSymbols diff --git a/eng/pipelines/coreclr/templates/perf-job.yml b/eng/pipelines/coreclr/templates/perf-job.yml index 28d3b8ef75188..d0bc486d4b404 100644 --- a/eng/pipelines/coreclr/templates/perf-job.yml +++ b/eng/pipelines/coreclr/templates/perf-job.yml @@ -279,7 +279,7 @@ jobs: # Create Core_Root - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(buildConfig) $(archType) generatelayoutonly $(librariesOverrideArg) $(_crossBuildPropertyArg) displayName: Create Core_Root - condition: and(succeeded(), ne(variables.runtimeFlavorName, 'Mono'), ne('${{ parameters.runtimeType }}', 'wasm'), not(in('${{ parameters.runtimeType }}', 'AndroidMono', 'iOSMono', 'iOSNativeAOT'))) + condition: and(succeeded(), ne(variables.runtimeFlavorName, 'Mono'), ne('${{ parameters.runtimeType }}', 'wasm')) # Copy the runtime directory into the testhost folder to include OOBs. - script: "build.cmd -subset libs.pretest -configuration release -ci -arch $(archType) -testscope innerloop /p:RuntimeArtifactsPath=$(librariesDownloadDir)\\bin\\mono\\$(osGroup).$(archType).$(buildConfigUpper) /p:RuntimeFlavor=mono;xcopy $(Build.SourcesDirectory)\\artifacts\\bin\\runtime\\net8.0-$(osGroup)-$(buildConfigUpper)-$(archType)\\* $(Build.SourcesDirectory)\\artifacts\\bin\\testhost\\net8.0-$(osGroup)-$(buildConfigUpper)-$(archType)\\shared\\Microsoft.NETCore.App\\$(productVersion) /E /I /Y;xcopy $(Build.SourcesDirectory)\\artifacts\\bin\\testhost\\net8.0-$(osGroup)-$(buildConfigUpper)-$(archType)\\* $(Build.SourcesDirectory)\\.dotnet-mono /E /I /Y;copy $(Build.SourcesDirectory)\\artifacts\\bin\\coreclr\\$(osGroup).$(archType).$(buildConfigUpper)\\corerun.exe $(Build.SourcesDirectory)\\.dotnet-mono\\shared\\Microsoft.NETCore.App\\$(productVersion)\\corerun.exe" diff --git a/eng/pipelines/coreclr/templates/run-scenarios-job.yml b/eng/pipelines/coreclr/templates/run-scenarios-job.yml index 9b8c93711aab6..bc142530cc52d 100644 --- a/eng/pipelines/coreclr/templates/run-scenarios-job.yml +++ b/eng/pipelines/coreclr/templates/run-scenarios-job.yml @@ -153,10 +153,6 @@ jobs: - script: cp -r $(PerformanceDirectory)/scripts $(WorkItemDirectory)/scripts/ && cp -r $(PerformanceDirectory)/src/scenarios/shared $(WorkItemDirectory)/shared/ && cp -r $(PerformanceDirectory)/src/scenarios/staticdeps/ $(WorkItemDirectory)/staticdeps/ displayName: Copy scenario support files (Linux/MAC) condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) - - powershell: | - Write-Host "##vso[task.setvariable variable=DOTNET_ROOT;]$(PayloadDirectory)/dotnet" - Write-Host "Set DOTNET_ROOT to $(PayloadDirectory)/dotnet" - displayName: Explicitly set DOTNET_ROOT # build Startup - script: $(PayloadDirectory)\dotnet\dotnet.exe publish -c Release -o $(WorkItemDirectory)\Startup -f net7.0 -r win-$(Architecture) $(PerformanceDirectory)\src\tools\ScenarioMeasurement\Startup\Startup.csproj -p:DisableTransitiveFrameworkReferenceDownloads=true displayName: Build Startup tool (Windows) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 6145d3ed0c71f..f856d6211df25 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -7,120 +7,81 @@ parameters: isExtraPlatformsBuild: false isiOSLikeOnlyBuild: false isRollingBuild: false - isMonoOnlyBuild: false - isCoreclrOnlyBuild: false jobs: -- ${{ if eq(parameters.isCoreclrOnlyBuild, false) }}: - # - # iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size - # Build the whole product using Mono and run libraries tests - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} - platforms: - - ios_arm64 - - tvos_arm64 - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }} - buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true /p:IsManualOrRollingBuild=true - timeoutInMinutes: 180 - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true +# +# iOS/tvOS devices - Full AOT + AggressiveTrimming to reduce size +# Build the whole product using Mono and run libraries tests +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - ios_arm64 + - tvos_arm64 + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }} + buildArgs: -s mono+libs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=true /p:BuildDarwinFrameworks=true /p:IsManualOrRollingBuild=true + timeoutInMinutes: 180 + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true - # - # Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} - platforms: - - ios_arm64 - - tvos_arm64 - variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 240 - # extra steps, run tests - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254 - testBuildArgs: tree tracing/eventpipe - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - -- ${{ if eq(parameters.isMonoOnlyBuild, false) }}: - # - # Build the whole product using NativeAOT for iOS/tvOS and run runtime tests with iOS/tvOS devices - # - - template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: coreclr - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} - platforms: - - ios_arm64 - - tvos_arm64 - variables: - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_NativeAOT_RuntimeTests - timeoutInMinutes: 240 - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) - # extra steps, run tests - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: tree nativeaot/SmokeTests/UnitTests /p:BuildNativeAOTRuntimePack=true - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) +# +# Build the whole product using Mono for iOS/tvOS and run runtime tests with iOS/tvOS devices +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} + isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} + platforms: + - ios_arm64 + - tvos_arm64 + variables: + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_RuntimeTests + buildArgs: -s mono+libs -c $(_BuildConfig) + timeoutInMinutes: 240 + # extra steps, run tests + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + parameters: + testGroup: innerloop + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + extraStepsParameters: + creator: dotnet-bot + # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254 + testBuildArgs: tree tracing/eventpipe + testRunNamePrefixSuffix: Mono_$(_BuildConfig) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index d7643974c4e3c..308fbd384e943 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -88,45 +88,3 @@ jobs: # FIXME: Currently, tracing/eventpipe tests are only enabled on iOS platforms. It should be expanded to include all runtime tests. Tracking issue: https://github.com/dotnet/runtime/issues/84254 testBuildArgs: tree tracing/eventpipe testRunNamePrefixSuffix: Mono_$(_BuildConfig) - -# -# Build the whole product using Native AOT for iOSSimulator/tvOSSimulator and run runtime tests with iOS/tvOS simulators -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: coreclr - isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} - isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} - platforms: - - iossimulator_x64 - - tvossimulator_x64 - - iossimulator_arm64 - variables: - - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: pr/dotnet/runtime/$(Build.SourceBranch) - - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - - name: _HelixSource - value: ci/dotnet/runtime/$(Build.SourceBranch) - - name: timeoutPerTestInMinutes - value: 60 - - name: timeoutPerTestCollectionInMinutes - value: 180 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_NativeAOT_RuntimeTests - timeoutInMinutes: 240 - buildArgs: --cross -s clr.alljits+clr.tools+clr.nativeaotruntime+clr.nativeaotlibs+libs -c $(_BuildConfig) - # extra steps, run tests - extraVariablesTemplates: - - template: /eng/pipelines/common/templates/runtimes/test-variables.yml - parameters: - testGroup: innerloop - extraStepsTemplate: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml - extraStepsParameters: - creator: dotnet-bot - testBuildArgs: tree nativeaot/SmokeTests/UnitTests /p:BuildNativeAOTRuntimePack=true - testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 4d75c6feeec7a..65769749869b4 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -248,7 +248,7 @@ extends: extraStepsTemplate: /eng/pipelines/coreclr/nativeaot-post-build-steps.yml extraStepsParameters: creator: dotnet-bot - testBuildArgs: 'nativeaot tree ";nativeaot;Loader;Interop;tracing/eventpipe/config;tracing/eventpipe/diagnosticport;tracing/eventpipe/reverse;tracing/eventpipe/processenvironment;tracing/eventpipe/simpleruntimeeventvalidation;tracing/eventpipe/processinfo2;" test tracing/eventcounter/runtimecounters.csproj /p:BuildNativeAotFrameworkObjects=true' + testBuildArgs: 'nativeaot tree ";nativeaot;Loader;Interop;tracing/eventpipe/config;tracing/eventpipe/diagnosticport;tracing/eventpipe/reverse;tracing/eventpipe/processenvironment;tracing/eventpipe/simpleruntimeeventvalidation;" test tracing/eventcounter/runtimecounters.csproj /p:BuildNativeAotFrameworkObjects=true' liveLibrariesBuildConfig: Release testRunNamePrefixSuffix: NativeAOT_$(_BuildConfig) extraVariablesTemplates: diff --git a/eng/testing/ProvisioningVersions.props b/eng/testing/ProvisioningVersions.props index 6ecfe719ad035..7f555c06db3bc 100644 --- a/eng/testing/ProvisioningVersions.props +++ b/eng/testing/ProvisioningVersions.props @@ -44,7 +44,7 @@ - + false diff --git a/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.cs index c54ded37c10e9..1d0703dc51c02 100644 --- a/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.cs +++ b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.cs @@ -292,6 +292,35 @@ public override bool IsDefined(Type attributeType, bool inherit) return m_typeBuilder.IsDefined(attributeType, inherit); } + /***************************************************** + * + * private/protected functions + * + */ + + public override Type MakePointerType() + { + return SymbolType.FormCompoundType("*", this, 0)!; + } + + public override Type MakeByRefType() + { + return SymbolType.FormCompoundType("&", this, 0)!; + } + + [RequiresDynamicCode("The code for an array of the specified type might not be available.")] + public override Type MakeArrayType() + { + return SymbolType.FormCompoundType("[]", this, 0)!; + } + + [RequiresDynamicCode("The code for an array of the specified type might not be available.")] + public override Type MakeArrayType(int rank) + { + string s = GetRankString(rank); + return SymbolType.FormCompoundType(s, this, 0)!; + } + // Constructs a EnumBuilder. // EnumBuilder can only be a top-level (not nested) enum type. [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2064:UnrecognizedReflectionPattern", diff --git a/src/coreclr/debug/daccess/task.cpp b/src/coreclr/debug/daccess/task.cpp index ea351e3a047b8..d0187b33c2d99 100644 --- a/src/coreclr/debug/daccess/task.cpp +++ b/src/coreclr/debug/daccess/task.cpp @@ -5225,7 +5225,7 @@ EnumMethodInstances::Next(ClrDataAccess* dac, } } - if (!m_methodIter.Current()->HasNativeCodeReJITAware()) + if (!m_methodIter.Current()->HasNativeCode()) { goto NextMethod; } @@ -5243,7 +5243,7 @@ EnumMethodInstances::CdStart(MethodDesc* methodDesc, CLRDATA_ENUM* handle) { if (!methodDesc->HasClassOrMethodInstantiation() && - !methodDesc->HasNativeCodeReJITAware()) + !methodDesc->HasNativeCode()) { *handle = 0; return S_FALSE; diff --git a/src/coreclr/debug/di/rsfunction.cpp b/src/coreclr/debug/di/rsfunction.cpp index 87a6594bff842..597b7ce2f7536 100644 --- a/src/coreclr/debug/di/rsfunction.cpp +++ b/src/coreclr/debug/di/rsfunction.cpp @@ -136,10 +136,6 @@ HRESULT CordbFunction::QueryInterface(REFIID id, void **pInterface) { *pInterface = static_cast(this); } - else if (id == IID_ICorDebugFunction5) - { - *pInterface = static_cast(this); - } else if (id == IID_IUnknown) { *pInterface = static_cast(static_cast(this)); @@ -610,92 +606,6 @@ HRESULT CordbFunction::CreateNativeBreakpoint(ICorDebugFunctionBreakpoint **ppBr return hr; } -//----------------------------------------------------------------------------- -// CordbFunction::DisableOptimizations -// Public method for ICorDebugFunction5::DisableOptimizations. -// Triggers a new JIT so the next time the function is called, it will be unoptimized. -// -// Parameters -// -// -// Returns: -// S_OK on success. -//----------------------------------------------------------------------------- -HRESULT CordbFunction::DisableOptimizations() -{ - PUBLIC_API_ENTRY(this); - FAIL_IF_NEUTERED(this); - ATT_REQUIRE_STOPPED_MAY_FAIL(GetProcess()); - - HRESULT hr = S_OK; - - CordbProcess * pProcess = GetProcess(); - RSLockHolder lockHolder(pProcess->GetProcessLock()); - - DebuggerIPCEvent event; - CordbAppDomain * pAppDomain = GetAppDomain(); - _ASSERTE (pAppDomain != NULL); - - pProcess->InitIPCEvent(&event, DB_IPCE_DISABLE_OPTS, true, pAppDomain->GetADToken()); - event.DisableOptData.funcMetadataToken = m_MDToken; - event.DisableOptData.pModule = m_pModule->GetRuntimeModule(); - - lockHolder.Release(); - hr = pProcess->m_cordb->SendIPCEvent(pProcess, &event, sizeof(DebuggerIPCEvent)); - lockHolder.Acquire(); - - _ASSERTE(event.type == DB_IPCE_DISABLE_OPTS_RESULT); - - return event.hr; -} - -//----------------------------------------------------------------------------- -// CordbFunction::AreOptimizationsDisabled -// Public method for ICorDebugFunction5::AreOptimizationsDisabled. -// Indicates whether this method had optimizations disabled already. -// -// Parameters: -// BOOL *pOptimizationsDisabled -// -// -// Returns: -// S_OK on success. -//----------------------------------------------------------------------------- -HRESULT CordbFunction::AreOptimizationsDisabled(BOOL *pOptimizationsDisabled) -{ - PUBLIC_API_ENTRY(this); - FAIL_IF_NEUTERED(this); - ATT_REQUIRE_STOPPED_MAY_FAIL(GetProcess()); - - HRESULT hr = S_OK; - - if (pOptimizationsDisabled == NULL) - { - return E_INVALIDARG; - } - - CordbProcess * pProcess = GetProcess(); - RSLockHolder lockHolder(pProcess->GetProcessLock()); - - DebuggerIPCEvent event; - CordbAppDomain * pAppDomain = GetAppDomain(); - _ASSERTE (pAppDomain != NULL); - - pProcess->InitIPCEvent(&event, DB_IPCE_IS_OPTS_DISABLED, true, pAppDomain->GetADToken()); - event.DisableOptData.funcMetadataToken = m_MDToken; - event.DisableOptData.pModule = m_pModule->GetRuntimeModule(); - - lockHolder.Release(); - hr = pProcess->m_cordb->SendIPCEvent(pProcess, &event, sizeof(DebuggerIPCEvent)); - lockHolder.Acquire(); - - _ASSERTE(event.type == DB_IPCE_IS_OPTS_DISABLED_RESULT); - - *pOptimizationsDisabled = event.IsOptsDisabledData.value; - - return event.hr;; -} - // determine whether we have a native-only implementation // Arguments: // Input: none (we use information in various data members of this instance of CordbFunction: m_isNativeImpl, diff --git a/src/coreclr/debug/di/rspriv.h b/src/coreclr/debug/di/rspriv.h index 4f55cea3ee3b8..8ead72b678d57 100644 --- a/src/coreclr/debug/di/rspriv.h +++ b/src/coreclr/debug/di/rspriv.h @@ -5349,8 +5349,7 @@ class CordbFunction : public CordbBase, public ICorDebugFunction, public ICorDebugFunction2, public ICorDebugFunction3, - public ICorDebugFunction4, - public ICorDebugFunction5 + public ICorDebugFunction4 { public: //----------------------------------------------------------- @@ -5413,12 +5412,6 @@ class CordbFunction : public CordbBase, //----------------------------------------------------------- COM_METHOD CreateNativeBreakpoint(ICorDebugFunctionBreakpoint **ppBreakpoint); - //----------------------------------------------------------- - // ICorDebugFunction5 - //----------------------------------------------------------- - COM_METHOD AreOptimizationsDisabled(BOOL *pOptimizationsDisabled); - COM_METHOD DisableOptimizations(); - //----------------------------------------------------------- // Internal members //----------------------------------------------------------- diff --git a/src/coreclr/debug/ee/debugger.cpp b/src/coreclr/debug/ee/debugger.cpp index d0610e1ac91bf..b94e3258e1b23 100644 --- a/src/coreclr/debug/ee/debugger.cpp +++ b/src/coreclr/debug/ee/debugger.cpp @@ -10442,60 +10442,6 @@ bool Debugger::HandleIPCEvent(DebuggerIPCEvent * pEvent) break; } - case DB_IPCE_DISABLE_OPTS: - { - Module *pModule = pEvent->DisableOptData.pModule.GetRawPtr(); - mdToken methodDef = pEvent->DisableOptData.funcMetadataToken; - _ASSERTE(TypeFromToken(methodDef) == mdtMethodDef); - - HRESULT hr = E_INVALIDARG; - EX_TRY - { - hr = DeoptimizeMethod(pModule, methodDef); - } - EX_CATCH_HRESULT(hr); - - DebuggerIPCEvent * pIPCResult = m_pRCThread->GetIPCEventReceiveBuffer(); - - InitIPCEvent(pIPCResult, - DB_IPCE_DISABLE_OPTS_RESULT, - g_pEEInterface->GetThread(), - pEvent->vmAppDomain); - - pIPCResult->hr = hr; - - m_pRCThread->SendIPCReply(); - } - break; - - case DB_IPCE_IS_OPTS_DISABLED: - { - Module *pModule = pEvent->DisableOptData.pModule.GetRawPtr(); - mdToken methodDef = pEvent->DisableOptData.funcMetadataToken; - _ASSERTE(TypeFromToken(methodDef) == mdtMethodDef); - - HRESULT hr = E_INVALIDARG; - BOOL deoptimized = FALSE; - EX_TRY - { - hr = IsMethodDeoptimized(pModule, methodDef, &deoptimized); - } - EX_CATCH_HRESULT(hr); - - DebuggerIPCEvent * pIPCResult = m_pRCThread->GetIPCEventReceiveBuffer(); - - InitIPCEvent(pIPCResult, - DB_IPCE_IS_OPTS_DISABLED_RESULT, - g_pEEInterface->GetThread(), - pEvent->vmAppDomain); - - pIPCResult->IsOptsDisabledData.value = deoptimized; - pIPCResult->hr = hr; - - m_pRCThread->SendIPCReply(); - } - break; - case DB_IPCE_BREAKPOINT_ADD: { @@ -12265,151 +12211,6 @@ HRESULT Debugger::ReleaseRemoteBuffer(void *pBuffer, bool removeFromBlobList) return S_OK; } -#ifndef DACCESS_COMPILE -HRESULT Debugger::DeoptimizeMethodHelper(Module* pModule, mdMethodDef methodDef) -{ - CONTRACTL - { - THROWS; - CAN_TAKE_LOCK; - GC_NOTRIGGER; - } - CONTRACTL_END; - - _ASSERTE(!CodeVersionManager::IsLockOwnedByCurrentThread()); - HRESULT hr = S_OK; - ILCodeVersion ilCodeVersion; - CodeVersionManager *pCodeVersionManager = pModule->GetCodeVersionManager(); - - { - CodeVersionManager::LockHolder codeVersioningLockHolder; - if (FAILED(hr = pCodeVersionManager->AddILCodeVersion(pModule, methodDef, &ilCodeVersion, TRUE))) - { - LOG((LF_TIEREDCOMPILATION, LL_INFO100, "TieredCompilationManager::DeOptimizeMethodHelper Module=0x%x Method=0x%x, AddILCodeVersion returned hr 0x%x\n", - pModule, methodDef, - hr)); - return hr; - } - - // We are using the profiler ReJIT infrastructure to trigger a new jit. We don't want to modify the IL or - // call back in to anything so set it all here to match the original IL and debug codegen flags - ilCodeVersion.SetIL(ILCodeVersion(pModule, methodDef).GetIL()); - ilCodeVersion.SetJitFlags(COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS | COR_PRF_CODEGEN_DEBUG_INFO); - ilCodeVersion.SetRejitState(ILCodeVersion::kStateActive); - ilCodeVersion.SetEnableReJITCallback(false); - } - - _ASSERTE(!ilCodeVersion.IsNull()); - { - if (FAILED(hr = pCodeVersionManager->SetActiveILCodeVersions(&ilCodeVersion, 1, NULL))) - { - LOG((LF_TIEREDCOMPILATION, LL_INFO100, "TieredCompilationManager::DeOptimizeMethodHelper Module=0x%x Method=0x%x, SetActiveILCodeVersions returned hr 0x%x\n", - pModule, methodDef, - hr)); - return hr; - } - } - - return hr; -} - -HRESULT Debugger::DeoptimizeMethod(Module* pModule, mdMethodDef methodDef) -{ - CONTRACTL - { - THROWS; - GC_NOTRIGGER; - } - CONTRACTL_END; - - // First deoptimize the method itself - HRESULT hr = DeoptimizeMethodHelper(pModule, methodDef); - if (FAILED(hr)) - { - LOG((LF_TIEREDCOMPILATION, LL_INFO100, "TieredCompilationManager::DeOptimizeMethod Module=0x%x Method=0x%x,, initial ReJIT returned hr 0x%x, aborting\n", - pModule, methodDef, hr)); - return hr; - } - - // Now deoptimize anything that has inlined it in a R2R method - AppDomain::AssemblyIterator domainAssemblyIterator = SystemDomain::System()->DefaultDomain()->IterateAssembliesEx((AssemblyIterationFlags) (kIncludeLoaded | kIncludeExecution)); - CollectibleAssemblyHolder pDomainAssembly; - NativeImageInliningIterator inlinerIter; - while (domainAssemblyIterator.Next(pDomainAssembly.This())) - { - Module *pCandidateModule = pDomainAssembly->GetModule(); - if (pCandidateModule->HasReadyToRunInlineTrackingMap()) - { - inlinerIter.Reset(pCandidateModule, MethodInModule(pModule, methodDef)); - - while (inlinerIter.Next()) - { - MethodInModule inliner = inlinerIter.GetMethod(); - _ASSERTE(TypeFromToken(inliner.m_methodDef) == mdtMethodDef); - DeoptimizeMethodHelper(inliner.m_module, inliner.m_methodDef); - } - } - } - - // Next any JIT methods - MethodDesc *pMethodDesc = pModule->LookupMethodDef(methodDef); - if (pMethodDesc != NULL && pModule->HasJitInlineTrackingMap()) - { - InlineSArray inliners; - auto lambda = [&inliners](MethodDesc *inliner, MethodDesc *inlinee) - { - _ASSERTE(!inliner->IsNoMetadata()); - - if (inliner->IsIL()) - { - inliners.Append(inliner); - } - - // Keep going - return true; - }; - - JITInlineTrackingMap *pMap = pModule->GetJitInlineTrackingMap(); - pMap->VisitInliners(pMethodDesc, lambda); - - for (auto it = inliners.Begin(); it != inliners.End(); ++it) - { - Module *inlinerModule = (*it)->GetModule(); - mdMethodDef inlinerMethodDef = (*it)->GetMemberDef(); - _ASSERTE(TypeFromToken(inlinerMethodDef) == mdtMethodDef); - DeoptimizeMethodHelper(inlinerModule, inlinerMethodDef); - } - } - - return hr; -} -#endif //DACCESS_COMPILE - -HRESULT Debugger::IsMethodDeoptimized(Module *pModule, mdMethodDef methodDef, BOOL *pResult) -{ - CONTRACTL - { - NOTHROW; - CAN_TAKE_LOCK; - GC_NOTRIGGER; - } - CONTRACTL_END; - - if (pModule == NULL || pResult == NULL || TypeFromToken(methodDef) != mdtMethodDef) - { - return E_INVALIDARG; - } - - { - CodeVersionManager::LockHolder codeVersioningLockHolder; - CodeVersionManager *pCodeVersionManager = pModule->GetCodeVersionManager(); - ILCodeVersion activeILVersion = pCodeVersionManager->GetActiveILCodeVersion(pModule, methodDef); - *pResult = activeILVersion.IsDeoptimized(); - } - - return S_OK; -} - // // UnrecoverableError causes the Left Side to enter a state where no more // debugging can occur and we leave around enough information for the diff --git a/src/coreclr/debug/ee/debugger.h b/src/coreclr/debug/ee/debugger.h index 26edd26a96140..a116c802e1ae3 100644 --- a/src/coreclr/debug/ee/debugger.h +++ b/src/coreclr/debug/ee/debugger.h @@ -2212,15 +2212,6 @@ class Debugger : public DebugInterface return m_trappingRuntimeThreads; } -#ifndef DACCESS_COMPILE -private: - HRESULT DeoptimizeMethodHelper(Module* pModule, mdMethodDef methodDef); - -public: - HRESULT DeoptimizeMethod(Module* pModule, mdMethodDef methodDef); -#endif //DACCESS_COMPILE - HRESULT IsMethodDeoptimized(Module *pModule, mdMethodDef methodDef, BOOL *pResult); - // // The debugger mutex is used to protect any "global" Left Side // data structures. The RCThread takes it when handling a Right diff --git a/src/coreclr/debug/ee/functioninfo.cpp b/src/coreclr/debug/ee/functioninfo.cpp index 76d4be3ab232f..9621b00aaa398 100644 --- a/src/coreclr/debug/ee/functioninfo.cpp +++ b/src/coreclr/debug/ee/functioninfo.cpp @@ -1580,11 +1580,7 @@ DebuggerJitInfo *DebuggerMethodInfo::FindOrCreateInitAndAddJitInfo(MethodDesc* f startAddr = g_pEEInterface->GetFunctionAddress(fd); if (startAddr == NULL) { - startAddr = fd->GetNativeCodeReJITAware(); - if (startAddr == NULL) - { - return NULL; - } + return NULL; } } else diff --git a/src/coreclr/debug/inc/dbgipcevents.h b/src/coreclr/debug/inc/dbgipcevents.h index 4c56df797ab98..8511d1a4b923c 100644 --- a/src/coreclr/debug/inc/dbgipcevents.h +++ b/src/coreclr/debug/inc/dbgipcevents.h @@ -2013,17 +2013,6 @@ struct MSLAYOUT DebuggerIPCEvent LSPTR_METHODDESC nativeCodeMethodDescToken; // points to the MethodDesc if !isIL } BreakpointData; - struct MSLAYOUT - { - mdMethodDef funcMetadataToken; - VMPTR_Module pModule; - } DisableOptData; - - struct MSLAYOUT - { - BOOL value; - } IsOptsDisabledData; - struct MSLAYOUT { LSPTR_BREAKPOINT breakpointToken; diff --git a/src/coreclr/debug/inc/dbgipceventtypes.h b/src/coreclr/debug/inc/dbgipceventtypes.h index 9e99e16d44b27..e538f63e4c2de 100644 --- a/src/coreclr/debug/inc/dbgipceventtypes.h +++ b/src/coreclr/debug/inc/dbgipceventtypes.h @@ -92,9 +92,7 @@ IPC_EVENT_TYPE1(DB_IPCE_RESOLVE_UPDATE_METADATA_2_RESULT,0x015F) IPC_EVENT_TYPE1(DB_IPCE_DATA_BREAKPOINT ,0x0160) IPC_EVENT_TYPE1(DB_IPCE_BEFORE_GARBAGE_COLLECTION ,0x0161) IPC_EVENT_TYPE1(DB_IPCE_AFTER_GARBAGE_COLLECTION ,0x0162) -IPC_EVENT_TYPE1(DB_IPCE_DISABLE_OPTS_RESULT ,0x0163) -IPC_EVENT_TYPE1(DB_IPCE_IS_OPTS_DISABLED_RESULT ,0x0164) -IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_LAST ,0x0165) // The last event from runtime +IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_LAST ,0x0163) // The last event from runtime @@ -143,7 +141,5 @@ IPC_EVENT_TYPE2(DB_IPCE_DEBUGGER_INVALID ,0x0249) // An invalid ev IPC_EVENT_TYPE2(DB_IPCE_GET_GCHANDLE_INFO ,0x0251) IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_1 ,0x0256) IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_2 ,0x0257) -IPC_EVENT_TYPE2(DB_IPCE_DISABLE_OPTS ,0x0258) -IPC_EVENT_TYPE2(DB_IPCE_IS_OPTS_DISABLED ,0x0259) -IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_LAST ,0x025A) // The last event from the debugger +IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_LAST ,0x0258) // The last event from the debugger diff --git a/src/coreclr/debug/shared/dbgtransportsession.cpp b/src/coreclr/debug/shared/dbgtransportsession.cpp index 8c1ee39f99d0d..b1b4cee234038 100644 --- a/src/coreclr/debug/shared/dbgtransportsession.cpp +++ b/src/coreclr/debug/shared/dbgtransportsession.cpp @@ -2202,10 +2202,8 @@ DWORD DbgTransportSession::GetEventSize(DebuggerIPCEvent *pEvent) case DB_IPCE_CONTROL_C_EVENT_RESULT: case DB_IPCE_BEFORE_GARBAGE_COLLECTION: case DB_IPCE_AFTER_GARBAGE_COLLECTION: - case DB_IPCE_DISABLE_OPTS_RESULT: cbAdditionalSize = 0; break; - case DB_IPCE_DATA_BREAKPOINT: cbAdditionalSize = sizeof(pEvent->DataBreakpointData); break; @@ -2498,15 +2496,6 @@ DWORD DbgTransportSession::GetEventSize(DebuggerIPCEvent *pEvent) cbAdditionalSize = sizeof(pEvent->CustomNotification); break; - case DB_IPCE_DISABLE_OPTS: - case DB_IPCE_IS_OPTS_DISABLED: - cbAdditionalSize = sizeof(pEvent->DisableOptData); - break; - - case DB_IPCE_IS_OPTS_DISABLED_RESULT: - cbAdditionalSize = sizeof(pEvent->IsOptsDisabledData); - break; - default: printf("Unknown debugger event type: 0x%x\n", (pEvent->type & DB_IPCE_TYPE_MASK)); _ASSERTE(!"Unknown debugger event type"); diff --git a/src/coreclr/gc/dac_gcheap_fields.h b/src/coreclr/gc/dac_gcheap_fields.h index 39b2dca81008a..37b6389ff1ea1 100644 --- a/src/coreclr/gc/dac_gcheap_fields.h +++ b/src/coreclr/gc/dac_gcheap_fields.h @@ -1,7 +1,3 @@ -// Whenever we add field here, we need to bear in mind that we have a scenario for a new clrgc -// is used in an old runtime. In that case, the old runtime's DAC will have to interpret the -// fields the way it was. So fields should only be added at the end of the struct. - DEFINE_FIELD (alloc_allocated, uint8_t*) DEFINE_DPTR_FIELD (ephemeral_heap_segment, dac_heap_segment) DEFINE_DPTR_FIELD (finalize_queue, dac_finalize_queue) @@ -20,6 +16,8 @@ DEFINE_FIELD (mark_array, uint32_t*) DEFINE_FIELD (next_sweep_obj, uint8_t*) DEFINE_FIELD (background_saved_lowest_address, uint8_t*) DEFINE_FIELD (background_saved_highest_address, uint8_t*) +DEFINE_DPTR_FIELD (freeable_soh_segment, dac_heap_segment) +DEFINE_DPTR_FIELD (freeable_uoh_segment, dac_heap_segment) #if defined(ALL_FIELDS) || !defined(USE_REGIONS) DEFINE_DPTR_FIELD (saved_sweep_ephemeral_seg, dac_heap_segment) DEFINE_FIELD (saved_sweep_ephemeral_start, uint8_t*) @@ -32,21 +30,10 @@ DEFINE_MISSING_FIELD(mark_array) DEFINE_MISSING_FIELD(next_sweep_obj) DEFINE_MISSING_FIELD(background_saved_lowest_address) DEFINE_MISSING_FIELD(background_saved_highest_address) -DEFINE_MISSING_FIELD(saved_sweep_ephemeral_seg) -DEFINE_MISSING_FIELD(saved_sweep_ephemeral_start) -#endif // defined(ALL_FIELDS) || defined(BACKGROUND_GC) - -// This field is unused -DEFINE_FIELD(generation_table, void*) - -// Here is where v5.2 fields starts - -#if defined(ALL_FIELDS) || defined(BACKGROUND_GC) -DEFINE_DPTR_FIELD (freeable_soh_segment, dac_heap_segment) -DEFINE_DPTR_FIELD (freeable_uoh_segment, dac_heap_segment) -#else DEFINE_MISSING_FIELD(freeable_soh_segment) DEFINE_MISSING_FIELD(freeable_uoh_segment) +DEFINE_MISSING_FIELD(saved_sweep_ephemeral_seg) +DEFINE_MISSING_FIELD(saved_sweep_ephemeral_start) #endif // defined(ALL_FIELDS) || defined(BACKGROUND_GC) #if defined(ALL_FIELDS) || defined(USE_REGIONS) diff --git a/src/coreclr/gc/gc.cpp b/src/coreclr/gc/gc.cpp index 2650339ceb97c..14af5f3befaa8 100644 --- a/src/coreclr/gc/gc.cpp +++ b/src/coreclr/gc/gc.cpp @@ -7317,7 +7317,7 @@ bool gc_heap::virtual_decommit (void* address, size_t size, int bucket, int h_nu assert(0 <= bucket && bucket < recorded_committed_bucket_counts); assert(bucket < total_oh_count || h_number == -1); - bool decommit_succeeded_p = ((bucket != recorded_committed_bookkeeping_bucket) && use_large_pages_p) ? true : GCToOSInterface::VirtualDecommit (address, size); + bool decommit_succeeded_p = GCToOSInterface::VirtualDecommit (address, size); dprintf(3, ("commit-accounting: decommit in %d [%p, %p) for heap %d", bucket, address, ((uint8_t*)address + size), h_number)); @@ -43607,31 +43607,32 @@ bool gc_heap::decommit_step (uint64_t step_milliseconds) size_t gc_heap::decommit_region (heap_segment* region, int bucket, int h_number) { uint8_t* page_start = align_lower_page (get_region_start (region)); - uint8_t* decommit_end = heap_segment_committed (region); - size_t decommit_size = decommit_end - page_start; - bool decommit_succeeded_p = virtual_decommit (page_start, decommit_size, bucket, h_number); - bool require_clearing_memory_p = !decommit_succeeded_p || use_large_pages_p; + uint8_t* end = use_large_pages_p ? heap_segment_used (region) : heap_segment_committed (region); + size_t size = end - page_start; + bool decommit_succeeded_p = false; + if (!use_large_pages_p) + { + decommit_succeeded_p = virtual_decommit (page_start, size, bucket, h_number); + } dprintf (REGIONS_LOG, ("decommitted region %p(%p-%p) (%zu bytes) - success: %d", region, page_start, - decommit_end, - decommit_size, + end, + size, decommit_succeeded_p)); - if (require_clearing_memory_p) + if (decommit_succeeded_p) + { + heap_segment_committed (region) = heap_segment_mem (region); + } + else { - uint8_t* clear_end = use_large_pages_p ? heap_segment_used (region) : heap_segment_committed (region); - size_t clear_size = clear_end - page_start; - memclr (page_start, clear_size); + memclr (page_start, size); heap_segment_used (region) = heap_segment_mem (region); dprintf(REGIONS_LOG, ("cleared region %p(%p-%p) (%zu bytes)", region, page_start, - clear_end, - clear_size)); - } - else - { - heap_segment_committed (region) = heap_segment_mem (region); + end, + size)); } // Under USE_REGIONS, mark array is never partially committed. So we are only checking for this @@ -43660,7 +43661,7 @@ size_t gc_heap::decommit_region (heap_segment* region, int bucket, int h_number) assert ((region->flags & heap_segment_flags_ma_committed) == 0); global_region_allocator.delete_region (get_region_start (region)); - return decommit_size; + return size; } #endif //USE_REGIONS @@ -47179,6 +47180,7 @@ void gc_heap::verify_regions (bool can_verify_gen_num, bool concurrent_p) dprintf(3, ("commit-accounting: checkpoint for %d for heap %d", oh, heap_number)); total_committed = 0; } + } #endif //USE_REGIONS } @@ -51914,7 +51916,6 @@ bool GCHeap::IsConcurrentGCEnabled() void PopulateDacVars(GcDacVars *gcDacVars) { - bool v2 = gcDacVars->minor_version_number >= 2; #define DEFINE_FIELD(field_name, field_type) offsetof(CLASS_NAME, field_name), #define DEFINE_DPTR_FIELD(field_name, field_type) offsetof(CLASS_NAME, field_name), @@ -51926,7 +51927,10 @@ void PopulateDacVars(GcDacVars *gcDacVars) #define CLASS_NAME gc_heap #include "dac_gcheap_fields.h" #undef CLASS_NAME + + offsetof(gc_heap, generation_table) }; + static_assert(sizeof(gc_heap_field_offsets) == (GENERATION_TABLE_FIELD_INDEX + 1) * sizeof(int), "GENERATION_TABLE_INDEX mismatch"); #endif //MULTIPLE_HEAPS static int generation_field_offsets[] = { @@ -51941,6 +51945,7 @@ void PopulateDacVars(GcDacVars *gcDacVars) }; assert(gcDacVars != nullptr); + *gcDacVars = {}; // Note: These version numbers do not need to be checked in the .Net dac/SOS because // we always match the compiled dac and GC to the version used. NativeAOT's SOS may // work differently than .Net SOS. When making breaking changes here you may need to @@ -51979,11 +51984,8 @@ void PopulateDacVars(GcDacVars *gcDacVars) gcDacVars->mark_array = &gc_heap::mark_array; gcDacVars->background_saved_lowest_address = &gc_heap::background_saved_lowest_address; gcDacVars->background_saved_highest_address = &gc_heap::background_saved_highest_address; - if (v2) - { - gcDacVars->freeable_soh_segment = reinterpret_cast(&gc_heap::freeable_soh_segment); - gcDacVars->freeable_uoh_segment = reinterpret_cast(&gc_heap::freeable_uoh_segment); - } + gcDacVars->freeable_soh_segment = reinterpret_cast(&gc_heap::freeable_soh_segment); + gcDacVars->freeable_uoh_segment = reinterpret_cast(&gc_heap::freeable_uoh_segment); gcDacVars->next_sweep_obj = &gc_heap::next_sweep_obj; #ifdef USE_REGIONS gcDacVars->saved_sweep_ephemeral_seg = 0; @@ -52024,10 +52026,7 @@ void PopulateDacVars(GcDacVars *gcDacVars) gcDacVars->gc_heap_field_offsets = reinterpret_cast(&gc_heap_field_offsets); #endif // MULTIPLE_HEAPS gcDacVars->generation_field_offsets = reinterpret_cast(&generation_field_offsets); - if (v2) - { - gcDacVars->bookkeeping_start = &gc_heap::bookkeeping_start; - } + gcDacVars->bookkeeping_start = &gc_heap::bookkeeping_start; } int GCHeap::RefreshMemoryLimit() diff --git a/src/coreclr/gc/gcinterface.dac.h b/src/coreclr/gc/gcinterface.dac.h index b3be7b09cee60..3eb66a61a003a 100644 --- a/src/coreclr/gc/gcinterface.dac.h +++ b/src/coreclr/gc/gcinterface.dac.h @@ -190,9 +190,22 @@ class dac_gc_heap { #undef DEFINE_DPTR_FIELD #undef DEFINE_FIELD #undef ALL_FIELDS + + // The generation table must always be last, because the size of this array + // (stored inline in the gc_heap class) can vary. + // + // The size of the generation class is not part of the GC-DAC interface, + // despite being embedded by-value into the gc_heap class. The DAC variable + // "generation_size" stores the size of the generation class, so the DAC can + // use it and pointer arithmetic to calculate correct offsets into the generation + // table. (See "GenerationTableIndex" function in the DAC for details) + // + // Also note that this array has length 1 because the C++ standard doesn't allow + // for 0-length arrays, although every major compiler is willing to tolerate it. + dac_generation generation_table[1]; }; -#define GENERATION_TABLE_FIELD_INDEX 18 +#define GENERATION_TABLE_FIELD_INDEX 21 // Unlike other DACized structures, these types are loaded manually in the debugger. // To avoid misuse, pointers to them are explicitly casted to these unused type. @@ -229,7 +242,13 @@ struct unused_generation // this structure contains __DPtrs for every DAC variable that will marshal values // from the debugee process to the debugger process when dereferenced. struct GcDacVars { -#define GC_DAC_VAL(type, name) type name; + uint8_t major_version_number; + uint8_t minor_version_number; + size_t generation_size; + size_t total_generation_count; + int total_bookkeeping_elements; + int count_free_region_kinds; + size_t card_table_info_size; #ifdef DACCESS_COMPILE #define GC_DAC_VAR(type, name) DPTR(type) name; #define GC_DAC_PTR_VAR(type, name) DPTR(type*) name; @@ -238,7 +257,6 @@ struct GcDacVars { #define GC_DAC_VAR(type, name) type *name; #endif #include "gcinterface.dacvars.def" -#undef GC_DAC_VAL }; #endif // _GC_INTERFACE_DAC_H_ diff --git a/src/coreclr/gc/gcinterface.dacvars.def b/src/coreclr/gc/gcinterface.dacvars.def index a78b9d720930c..f9e0eb4be7e3b 100644 --- a/src/coreclr/gc/gcinterface.dacvars.def +++ b/src/coreclr/gc/gcinterface.dacvars.def @@ -19,15 +19,6 @@ // degraded debugging experience. // Major version mismatches are not tolerated by the DAC and will be rejected upon load. -// Whenever we add field here, we need to bear in mind that we have a scenario for a new clrgc -// is used in an old runtime. In that case, the old runtime's DAC will have to interpret the -// fields the way it was. So fields should only be added at the end of the struct, and their -// loading in PopulateDacVars need to be version checked against a bumped up minor version. - -#ifndef GC_DAC_VAL - #define GC_DAC_VAL(type, name) -#endif // GC_DAC_VAL - #ifndef GC_DAC_VAR #define GC_DAC_VAR(type, name) #endif // GC_DAC_VAR @@ -42,10 +33,6 @@ // This sequence of macros defines the specific variables that are exposed by the // GC to the DAC. -GC_DAC_VAL (uint8_t, major_version_number) -GC_DAC_VAL (uint8_t, minor_version_number) -GC_DAC_VAL (size_t, generation_size) -GC_DAC_VAL (size_t, total_generation_count) GC_DAC_VAR (uint8_t, build_variant) GC_DAC_VAR (bool, built_with_svr) GC_DAC_ARRAY_VAR (size_t, gc_global_mechanisms) @@ -55,6 +42,8 @@ GC_DAC_PTR_VAR (uint32_t, mark_array) GC_DAC_VAR (c_gc_state, current_c_gc_state) GC_DAC_PTR_VAR (dac_heap_segment, ephemeral_heap_segment) GC_DAC_PTR_VAR (dac_heap_segment, saved_sweep_ephemeral_seg) +GC_DAC_PTR_VAR (dac_heap_segment, freeable_soh_segment) +GC_DAC_PTR_VAR (dac_heap_segment, freeable_uoh_segment) GC_DAC_PTR_VAR (uint8_t, saved_sweep_ephemeral_start) GC_DAC_PTR_VAR (uint8_t, background_saved_lowest_address) GC_DAC_PTR_VAR (uint8_t, background_saved_highest_address) @@ -80,14 +69,6 @@ GC_DAC_ARRAY_VAR (dac_region_free_list, global_regions_to_decommit) GC_DAC_PTR_VAR (dac_region_free_list, global_free_huge_regions) GC_DAC_ARRAY_VAR (dac_region_free_list, free_regions) -// Here is where v5.2 fields starts - -GC_DAC_PTR_VAR (dac_heap_segment, freeable_soh_segment) -GC_DAC_PTR_VAR (dac_heap_segment, freeable_uoh_segment) -GC_DAC_VAL (int, total_bookkeeping_elements) -GC_DAC_VAL (int, count_free_region_kinds) -GC_DAC_VAL (size_t, card_table_info_size) - #undef GC_DAC_VAR #undef GC_DAC_ARRAY_VAR #undef GC_DAC_PTR_VAR diff --git a/src/coreclr/gc/gcinterface.h b/src/coreclr/gc/gcinterface.h index 666bc45c621a7..5f779a3611d79 100644 --- a/src/coreclr/gc/gcinterface.h +++ b/src/coreclr/gc/gcinterface.h @@ -11,7 +11,7 @@ // The minor version of the IGCHeap interface. Non-breaking changes are required // to bump the minor version number. GCs and EEs with minor version number // mismatches can still interoperate correctly, with some care. -#define GC_INTERFACE_MINOR_VERSION 2 +#define GC_INTERFACE_MINOR_VERSION 1 // The major version of the IGCToCLR interface. Breaking changes to this interface // require bumps in the major version number. diff --git a/src/coreclr/inc/CrstTypes.def b/src/coreclr/inc/CrstTypes.def index 3a1e81f84f868..9c92df1205d9e 100644 --- a/src/coreclr/inc/CrstTypes.def +++ b/src/coreclr/inc/CrstTypes.def @@ -159,7 +159,6 @@ End Crst DebuggerMutex AcquiredBefore AvailableParamTypes DynamicIL LoaderHeap ModuleLookupTable - MethodDescBackpatchInfoTracker JitInlineTrackingMap CodeVersioning // Disabled per bug 581892 // AcquiredBefore DebuggerController @@ -490,7 +489,6 @@ Crst ThreadStore DebuggerHeapLock DebuggerJitInfo DynamicIL ExecuteManRangeLock HandleTable IbcProfile JitGenericHandleCache JumpStubCache LoaderHeap ModuleLookupTable ProfilerGCRefDataFreeList SingleUseLock SyncBlockCache SystemDomainDelayedUnloadList ThreadIdDispenser DebuggerMutex - JitInlineTrackingMap End Crst TypeIDMap @@ -542,7 +540,7 @@ Crst InlineTrackingMap End Crst JitInlineTrackingMap - AcquiredBefore CodeVersioning MethodDescBackpatchInfoTracker + AcquiredBefore CodeVersioning ThreadStore MethodDescBackpatchInfoTracker End Crst EventPipe diff --git a/src/coreclr/inc/cordebug.idl b/src/coreclr/inc/cordebug.idl index 18a1865d5497a..5d8c5e1fa0c6d 100644 --- a/src/coreclr/inc/cordebug.idl +++ b/src/coreclr/inc/cordebug.idl @@ -286,8 +286,7 @@ interface ICorDebugDataTarget : IUnknown CORDB_PLATFORM_POSIX_X86, // Posix supporting OS on Intel x86 CORDB_PLATFORM_POSIX_ARM, // Posix supporting OS on ARM32 CORDB_PLATFORM_POSIX_ARM64, // Posix supporting OS on ARM64 - CORDB_PLATFORM_POSIX_LOONGARCH64, // Posix supporting OS on LoongArch64 - CORDB_PLATFORM_POSIX_RISCV64 // Posix supporting OS on RISC64 + CORDB_PLATFORM_POSIX_LOONGARCH64 // Posix supporting OS on LoongArch64 } CorDebugPlatform; HRESULT GetPlatform([out] CorDebugPlatform * pTargetPlatform); @@ -3986,72 +3985,6 @@ interface ICorDebugRegisterSet : IUnknown REGISTER_LOONGARCH64_F30, REGISTER_LOONGARCH64_F31, - REGISTER_RISCV64_PC = 0, - REGISTER_RISCV64_RA, - REGISTER_RISCV64_SP, - REGISTER_RISCV64_GP, - REGISTER_RISCV64_TP, - REGISTER_RISCV64_T0, - REGISTER_RISCV64_T1, - REGISTER_RISCV64_T2, - REGISTER_RISCV64_FP, - REGISTER_RISCV64_S1, - REGISTER_RISCV64_A0, - REGISTER_RISCV64_A1, - REGISTER_RISCV64_A2, - REGISTER_RISCV64_A3, - REGISTER_RISCV64_A4, - REGISTER_RISCV64_A5, - REGISTER_RISCV64_A6, - REGISTER_RISCV64_A7, - REGISTER_RISCV64_S2, - REGISTER_RISCV64_S3, - REGISTER_RISCV64_S4, - REGISTER_RISCV64_S5, - REGISTER_RISCV64_S6, - REGISTER_RISCV64_S7, - REGISTER_RISCV64_S8, - REGISTER_RISCV64_S9, - REGISTER_RISCV64_S10, - REGISTER_RISCV64_S11, - REGISTER_RISCV64_T3, - REGISTER_RISCV64_T4, - REGISTER_RISCV64_T5, - REGISTER_RISCV64_T6, - REGISTER_RISCV64_F0, - REGISTER_RISCV64_F1, - REGISTER_RISCV64_F2, - REGISTER_RISCV64_F3, - REGISTER_RISCV64_F4, - REGISTER_RISCV64_F5, - REGISTER_RISCV64_F6, - REGISTER_RISCV64_F7, - REGISTER_RISCV64_F8, - REGISTER_RISCV64_F9, - REGISTER_RISCV64_F10, - REGISTER_RISCV64_F11, - REGISTER_RISCV64_F12, - REGISTER_RISCV64_F13, - REGISTER_RISCV64_F14, - REGISTER_RISCV64_F15, - REGISTER_RISCV64_F16, - REGISTER_RISCV64_F17, - REGISTER_RISCV64_F18, - REGISTER_RISCV64_F19, - REGISTER_RISCV64_F20, - REGISTER_RISCV64_F21, - REGISTER_RISCV64_F22, - REGISTER_RISCV64_F23, - REGISTER_RISCV64_F24, - REGISTER_RISCV64_F25, - REGISTER_RISCV64_F26, - REGISTER_RISCV64_F27, - REGISTER_RISCV64_F28, - REGISTER_RISCV64_F29, - REGISTER_RISCV64_F30, - REGISTER_RISCV64_F31, - REGISTER_RISCV64_X0, // TODO-RISCV64-CQ: Add X0 for an use in debug. Need to check. - // other architectures here } CorDebugRegister; @@ -5773,29 +5706,6 @@ interface ICorDebugFunction4 : IUnknown HRESULT CreateNativeBreakpoint(ICorDebugFunctionBreakpoint **ppBreakpoint); }; -/* -ICorDebugFunction5 is a logical extension to ICorDebugFunction. -*/ -[ - object, - local, - uuid(9D4DAB7B-3401-4F37-BD08-CA09F3FDF10F), - pointer_default(unique) -] -interface ICorDebugFunction5 : IUnknown -{ - /* - * Triggers a new JIT so the next time the function is called, it will be unoptimized. Will - * trigger a JIT even for R2R code. - */ - HRESULT DisableOptimizations(); - - /* - * Indicates whether this method had optimizations disabled already. - */ - HRESULT AreOptimizationsDisabled(BOOL *pOptimizationsDisabled); -}; - /* ICorDebugCode represents an IL or native code blob. diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index 25634caea84e1..ea1e0c10ec954 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -633,7 +633,6 @@ enum CorInfoHelpFunc CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED, // throw PlatformNotSupportedException CORINFO_HELP_THROW_TYPE_NOT_SUPPORTED, // throw TypeNotSupportedException CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION, // throw AmbiguousResolutionException for failed static virtual method resolution - CORINFO_HELP_THROW_ENTRYPOINT_NOT_FOUND_EXCEPTION, // throw EntryPointNotFoundException for failed static virtual method resolution CORINFO_HELP_JIT_PINVOKE_BEGIN, // Transition to preemptive mode before a P/Invoke, frame is the first argument CORINFO_HELP_JIT_PINVOKE_END, // Transition to cooperative mode after a P/Invoke, frame is the first argument diff --git a/src/coreclr/inc/corprof.idl b/src/coreclr/inc/corprof.idl index b88a21aa707f1..e2cbfb6a638f7 100644 --- a/src/coreclr/inc/corprof.idl +++ b/src/coreclr/inc/corprof.idl @@ -2648,7 +2648,6 @@ typedef enum { COR_PRF_CODEGEN_DISABLE_INLINING = 0x0001, COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x0002, - COR_PRF_CODEGEN_DEBUG_INFO = 0x0003, } COR_PRF_CODEGEN_FLAGS; diff --git a/src/coreclr/inc/crsttypes_generated.h b/src/coreclr/inc/crsttypes_generated.h index 9710f65afcd39..630827961df30 100644 --- a/src/coreclr/inc/crsttypes_generated.h +++ b/src/coreclr/inc/crsttypes_generated.h @@ -149,12 +149,12 @@ int g_rgCrstLevelMap[] = 10, // CrstAppDomainCache 3, // CrstArgBasedStubCache 3, // CrstAssemblyList - 14, // CrstAssemblyLoader + 12, // CrstAssemblyLoader 4, // CrstAvailableClass 5, // CrstAvailableParamTypes 7, // CrstBaseDomain -1, // CrstCCompRC - 15, // CrstClassFactInfoHash + 13, // CrstClassFactInfoHash 11, // CrstClassInit -1, // CrstClrNotification 6, // CrstCodeFragmentHeap @@ -170,13 +170,13 @@ int g_rgCrstLevelMap[] = 0, // CrstDebuggerHeapExecMemLock 0, // CrstDebuggerHeapLock 4, // CrstDebuggerJitInfo - 13, // CrstDebuggerMutex + 10, // CrstDebuggerMutex 0, // CrstDelegateToFPtrHash - 18, // CrstDomainLocalBlock + 16, // CrstDomainLocalBlock 0, // CrstDynamicIL 3, // CrstDynamicMT 0, // CrstEtwTypeLogHash - 20, // CrstEventPipe + 18, // CrstEventPipe 0, // CrstEventStore 0, // CrstException 0, // CrstExecutableAllocatorLock @@ -187,55 +187,55 @@ int g_rgCrstLevelMap[] = 7, // CrstFuncPtrStubs 10, // CrstFusionAppCtx 10, // CrstGCCover - 17, // CrstGlobalStrLiteralMap + 15, // CrstGlobalStrLiteralMap 1, // CrstHandleTable 0, // CrstIbcProfile 8, // CrstIJWFixupData 0, // CrstIJWHash 7, // CrstILStubGen 3, // CrstInlineTrackingMap - 19, // CrstInstMethodHashTable - 22, // CrstInterop + 17, // CrstInstMethodHashTable + 20, // CrstInterop 10, // CrstInteropData 0, // CrstIsJMCMethod 7, // CrstISymUnmanagedReader 11, // CrstJit 0, // CrstJitGenericHandleCache - 12, // CrstJitInlineTrackingMap + 13, // CrstJitInlineTrackingMap 4, // CrstJitPatchpoint -1, // CrstJitPerf 6, // CrstJumpStubCache 0, // CrstLeafLock -1, // CrstListLock - 17, // CrstLoaderAllocator - 18, // CrstLoaderAllocatorReferences + 15, // CrstLoaderAllocator + 16, // CrstLoaderAllocatorReferences 3, // CrstLoaderHeap 3, // CrstManagedObjectWrapperMap 10, // CrstMethodDescBackpatchInfoTracker -1, // CrstMethodTableExposedObject 5, // CrstModule - 18, // CrstModuleFixup + 16, // CrstModuleFixup 4, // CrstModuleLookupTable 0, // CrstMulticoreJitHash - 15, // CrstMulticoreJitManager + 13, // CrstMulticoreJitManager 3, // CrstNativeImageEagerFixups 0, // CrstNativeImageLoad 0, // CrstNls 0, // CrstNotifyGdb 2, // CrstObjectList 5, // CrstPEImage - 21, // CrstPendingTypeLoadEntry + 19, // CrstPendingTypeLoadEntry 0, // CrstPerfMap 4, // CrstPgoData 0, // CrstPinnedByrefValidation - 16, // CrstPinnedHeapHandleTable + 14, // CrstPinnedHeapHandleTable 0, // CrstProfilerGCRefDataFreeList - 15, // CrstProfilingAPIStatus + 13, // CrstProfilingAPIStatus 4, // CrstRCWCache 0, // CrstRCWCleanupList 10, // CrstReadyToRunEntryPointToMethodDescMap 8, // CrstReflection - 16, // CrstReJITGlobalRequest + 14, // CrstReJITGlobalRequest 4, // CrstRetThunkCache 3, // CrstSavedExceptionInfo 0, // CrstSaveModuleProfileData @@ -244,7 +244,7 @@ int g_rgCrstLevelMap[] = 5, // CrstSingleUseLock 0, // CrstSpecialStatics 0, // CrstStackSampler - 15, // CrstStaticBoxInit + 13, // CrstStaticBoxInit -1, // CrstStressLog 5, // CrstStubCache 0, // CrstStubDispatchCache @@ -252,10 +252,10 @@ int g_rgCrstLevelMap[] = 3, // CrstSyncBlockCache 0, // CrstSyncHashLock 5, // CrstSystemBaseDomain - 15, // CrstSystemDomain + 13, // CrstSystemDomain 0, // CrstSystemDomainDelayedUnloadList 0, // CrstThreadIdDispenser - 14, // CrstThreadStore + 12, // CrstThreadStore 8, // CrstTieredCompilation 4, // CrstTypeEquivalenceMap 10, // CrstTypeIDMap diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index bcd85a573d69b..6c6f7e8283c01 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -43,11 +43,11 @@ typedef const GUID *LPCGUID; #define GUID_DEFINED #endif // !GUID_DEFINED -constexpr GUID JITEEVersionIdentifier = { /* cef79bc8-29bf-4f7b-9d05-9fc06832098c */ - 0xcef79bc8, - 0x29bf, - 0x4f7b, - {0x9d, 0x05, 0x9f, 0xc0, 0x68, 0x32, 0x09, 0x8c} +constexpr GUID JITEEVersionIdentifier = { /* 02e334af-4e6e-4a68-9feb-308d3d2661bc */ + 0x2e334af, + 0x4e6e, + 0x4a68, + {0x9f, 0xeb, 0x30, 0x8d, 0x3d, 0x26, 0x61, 0xbc} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/inc/jithelpers.h b/src/coreclr/inc/jithelpers.h index d34696ac1c983..1913a428da942 100644 --- a/src/coreclr/inc/jithelpers.h +++ b/src/coreclr/inc/jithelpers.h @@ -317,7 +317,6 @@ JITHELPER(CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED, JIT_ThrowPlatformNotSupportedException, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_THROW_TYPE_NOT_SUPPORTED, JIT_ThrowTypeNotSupportedException, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION, JIT_ThrowAmbiguousResolutionException, CORINFO_HELP_SIG_REG_ONLY) - JITHELPER(CORINFO_HELP_THROW_ENTRYPOINT_NOT_FOUND_EXCEPTION, JIT_ThrowEntryPointNotFoundException, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_JIT_PINVOKE_BEGIN, JIT_PInvokeBegin, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_JIT_PINVOKE_END, JIT_PInvokeEnd, CORINFO_HELP_SIG_REG_ONLY) diff --git a/src/coreclr/inc/stresslog.h b/src/coreclr/inc/stresslog.h index cdc4b58ab9a4b..73151773e0aea 100644 --- a/src/coreclr/inc/stresslog.h +++ b/src/coreclr/inc/stresslog.h @@ -372,9 +372,7 @@ class StressLog { { size_t headerSize; // size of this header including size field and moduleImage uint32_t magic; // must be 'STRL' - uint32_t version; // must be >=0x00010001. - // 0x00010001 is the legacy short-offset format. - // 0x00010002 is the large-module-offset format introduced in .NET 8. + uint32_t version; // must be 0x00010001 uint8_t* memoryBase; // base address of the memory mapped file uint8_t* memoryCur; // highest address currently used uint8_t* memoryLimit; // limit that can be used diff --git a/src/coreclr/jit/codegencommon.cpp b/src/coreclr/jit/codegencommon.cpp index 7509ddc74f2f9..b25b8da4b606c 100644 --- a/src/coreclr/jit/codegencommon.cpp +++ b/src/coreclr/jit/codegencommon.cpp @@ -1966,11 +1966,6 @@ void CodeGen::genEmitMachineCode() trackedStackPtrsContig = !compiler->opts.compDbgEnC; #endif - if (compiler->opts.disAsm) - { - printf("; BEGIN METHOD %s\n", compiler->eeGetMethodFullName(compiler->info.compMethodHnd)); - } - codeSize = GetEmitter()->emitEndCodeGen(compiler, trackedStackPtrsContig, GetInterruptible(), IsFullPtrRegMapRequired(), compiler->compHndBBtabCount, &prologSize, &epilogSize, codePtr, &coldCodePtr, &consPtr DEBUGARG(&instrCount)); @@ -1990,11 +1985,6 @@ void CodeGen::genEmitMachineCode() ((double)compiler->info.compTotalColdCodeSize * (double)PERFSCORE_CODESIZE_COST_COLD); #endif // DEBUG || LATE_DISASM - if (compiler->opts.disAsm) - { - printf("; END METHOD %s\n", compiler->eeGetMethodFullName(compiler->info.compMethodHnd)); - } - #ifdef DEBUG if (compiler->opts.disAsm || verbose) { diff --git a/src/coreclr/jit/fginline.cpp b/src/coreclr/jit/fginline.cpp index fb55a115d8ca2..82c3a3328b93f 100644 --- a/src/coreclr/jit/fginline.cpp +++ b/src/coreclr/jit/fginline.cpp @@ -42,7 +42,7 @@ unsigned Compiler::fgCheckInlineDepthAndRecursion(InlineInfo* inlineInfo) assert(inlineContext->GetCode() != nullptr); depth++; - if ((inlineContext->GetCallee() == inlineInfo->fncHandle) && + if ((inlineContext->GetCode() == candidateCode) && (inlineContext->GetCallee() == inlineInfo->fncHandle) && (inlineContext->GetRuntimeContext() == inlineInfo->inlineCandidateInfo->exactContextHnd)) { // This is a recursive inline diff --git a/src/coreclr/jit/promotion.cpp b/src/coreclr/jit/promotion.cpp index e2c4e797a3c9d..11743cf7d3e5e 100644 --- a/src/coreclr/jit/promotion.cpp +++ b/src/coreclr/jit/promotion.cpp @@ -2404,14 +2404,6 @@ void ReplaceVisitor::ReplaceLocal(GenTree** use, GenTree* user) { lcl->gtFlags |= GTF_VAR_DEATH; CheckForwardSubForLastUse(lclNum); - - // Relying on the values in the struct local after this struct use - // would effectively introduce another use of the struct, so - // indicate that no replacements are up to date. - for (Replacement& rep : replacements) - { - SetNeedsWriteBack(rep); - } } return; } diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets index d8cd01c2e2501..8b1846092059a 100644 --- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets +++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets @@ -49,7 +49,7 @@ - + @@ -106,7 +106,7 @@ + Condition="Exists('$(NativeOutputPath)$(TargetName)$(_symbolExt)')" /> diff --git a/src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/ThunkPool.cs b/src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/ThunkPool.cs index d8f9d7c31cb59..7204c3fa9d011 100644 --- a/src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/ThunkPool.cs +++ b/src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/ThunkPool.cs @@ -25,7 +25,7 @@ // // With FEATURE_RX_THUNKS, thunks are created by allocating new virtual memory space, where the first half of // that space is filled with thunk stubs, and gets RX permissions, and the second half is for the thunks data, -// and gets RW permissions. The thunk stubs and data blocks are not grouped in pairs: +// and gets RW permissions. The thunk stubs and data blocks are not in groupped in pairs: // all the thunk stubs blocks are groupped at the beginning of the allocated virtual memory space, and all the // thunk data blocks are groupped in the second half of the virtual space. // @@ -40,12 +40,20 @@ namespace System.Runtime { internal static class Constants { +#if TARGET_ARM64 && (TARGET_OSX || TARGET_MACCATALYST || TARGET_IOS || TARGET_TVOS) + public const uint PageSize = 0x4000; // 16k + public const nuint PageSizeMask = 0x3FFF; +#else + public const uint PageSize = 0x1000; // 4k + public const nuint PageSizeMask = 0xFFF; +#endif + public const uint AllocationGranularity = 0x10000; // 64k + public const nuint AllocationGranularityMask = 0xFFFF; + public static readonly int ThunkDataSize = 2 * IntPtr.Size; public static readonly int ThunkCodeSize = InternalCalls.RhpGetThunkSize(); public static readonly int NumThunksPerBlock = InternalCalls.RhpGetNumThunksPerBlock(); public static readonly int NumThunkBlocksPerMapping = InternalCalls.RhpGetNumThunkBlocksPerMapping(); - public static readonly uint ThunkBlockSize = (uint)InternalCalls.RhpGetThunkBlockSize(); - public static readonly nuint ThunkBlockSizeMask = ThunkBlockSize - 1; } internal class ThunksHeap @@ -97,11 +105,11 @@ private unsafe ThunksHeap(IntPtr commonStubAddress) IntPtr thunkDataBlock = InternalCalls.RhpGetThunkDataBlockAddress(thunkStubsBlock); // Address of the first thunk data cell should be at the beginning of the thunks data block (page-aligned) - Debug.Assert(((nuint)(nint)thunkDataBlock % Constants.ThunkBlockSize) == 0); + Debug.Assert(((nuint)(nint)thunkDataBlock % Constants.PageSize) == 0); // Update the last pointer value in the thunks data section with the value of the common stub address - *(IntPtr*)(thunkDataBlock + (int)(Constants.ThunkBlockSize - IntPtr.Size)) = commonStubAddress; - Debug.Assert(*(IntPtr*)(thunkDataBlock + (int)(Constants.ThunkBlockSize - IntPtr.Size)) == commonStubAddress); + *(IntPtr*)(thunkDataBlock + (int)(Constants.PageSize - IntPtr.Size)) = commonStubAddress; + Debug.Assert(*(IntPtr*)(thunkDataBlock + (int)(Constants.PageSize - IntPtr.Size)) == commonStubAddress); // Set the head and end of the linked list _nextAvailableThunkPtr = thunkDataBlock; @@ -153,11 +161,11 @@ private unsafe bool ExpandHeap() IntPtr thunkDataBlock = InternalCalls.RhpGetThunkDataBlockAddress(thunkStubsBlock); // Address of the first thunk data cell should be at the beginning of the thunks data block (page-aligned) - Debug.Assert(((nuint)(nint)thunkDataBlock % Constants.ThunkBlockSize) == 0); + Debug.Assert(((nuint)(nint)thunkDataBlock % Constants.PageSize) == 0); // Update the last pointer value in the thunks data section with the value of the common stub address - *(IntPtr*)(thunkDataBlock + (int)(Constants.ThunkBlockSize - IntPtr.Size)) = _commonStubAddress; - Debug.Assert(*(IntPtr*)(thunkDataBlock + (int)(Constants.ThunkBlockSize - IntPtr.Size)) == _commonStubAddress); + *(IntPtr*)(thunkDataBlock + (int)(Constants.PageSize - IntPtr.Size)) = _commonStubAddress; + Debug.Assert(*(IntPtr*)(thunkDataBlock + (int)(Constants.PageSize - IntPtr.Size)) == _commonStubAddress); // Link the last entry in the old list to the first entry in the new list *((IntPtr*)_lastThunkPtr) = thunkDataBlock; @@ -212,7 +220,7 @@ public unsafe IntPtr AllocateThunk() *((IntPtr*)(nextAvailableThunkPtr + IntPtr.Size)) = IntPtr.Zero; #endif - int thunkIndex = (int)(((nuint)(nint)nextAvailableThunkPtr) - ((nuint)(nint)nextAvailableThunkPtr & ~Constants.ThunkBlockSizeMask)); + int thunkIndex = (int)(((nuint)(nint)nextAvailableThunkPtr) - ((nuint)(nint)nextAvailableThunkPtr & ~Constants.PageSizeMask)); Debug.Assert((thunkIndex % Constants.ThunkDataSize) == 0); thunkIndex /= Constants.ThunkDataSize; @@ -271,7 +279,7 @@ private static IntPtr TryGetThunkDataAddress(IntPtr thunkAddress) nuint thunkAddressValue = (nuint)(nint)ClearThumbBit(thunkAddress); // Compute the base address of the thunk's mapping - nuint currentThunksBlockAddress = thunkAddressValue & ~Constants.ThunkBlockSizeMask; + nuint currentThunksBlockAddress = thunkAddressValue & ~Constants.PageSizeMask; // Make sure the thunk address is valid by checking alignment if ((thunkAddressValue - currentThunksBlockAddress) % (nuint)Constants.ThunkCodeSize != 0) diff --git a/src/coreclr/nativeaot/Runtime/CommonMacros.h b/src/coreclr/nativeaot/Runtime/CommonMacros.h index 8eb58f7312bf2..53467c1a130b4 100644 --- a/src/coreclr/nativeaot/Runtime/CommonMacros.h +++ b/src/coreclr/nativeaot/Runtime/CommonMacros.h @@ -132,32 +132,42 @@ inline bool IS_ALIGNED(T* val, uintptr_t alignment); #endif #ifndef __GCENV_BASE_INCLUDED__ - -#if defined(HOST_WASM) -#define OS_PAGE_SIZE 0x4 -#else -#define OS_PAGE_SIZE PalOsPageSize() -#endif - #if defined(HOST_AMD64) #define DATA_ALIGNMENT 8 +#define OS_PAGE_SIZE 0x1000 #elif defined(HOST_X86) #define DATA_ALIGNMENT 4 +#ifndef OS_PAGE_SIZE +#define OS_PAGE_SIZE 0x1000 +#endif #elif defined(HOST_ARM) #define DATA_ALIGNMENT 4 +#ifndef OS_PAGE_SIZE +#define OS_PAGE_SIZE 0x1000 +#endif #elif defined(HOST_ARM64) #define DATA_ALIGNMENT 8 +#ifndef OS_PAGE_SIZE +#ifdef HOST_APPLE +#define OS_PAGE_SIZE 0x4000 +#else +#define OS_PAGE_SIZE 0x1000 +#endif +#endif #elif defined(HOST_WASM) #define DATA_ALIGNMENT 4 +#ifndef OS_PAGE_SIZE +#define OS_PAGE_SIZE 0x4 +#endif #else #error Unsupported target architecture diff --git a/src/coreclr/nativeaot/Runtime/PalRedhawk.h b/src/coreclr/nativeaot/Runtime/PalRedhawk.h index c50da494d7db0..c30d7d05ec3db 100644 --- a/src/coreclr/nativeaot/Runtime/PalRedhawk.h +++ b/src/coreclr/nativeaot/Runtime/PalRedhawk.h @@ -731,7 +731,6 @@ struct UNIX_CONTEXT; #endif #ifdef TARGET_UNIX -REDHAWK_PALIMPORT uint32_t REDHAWK_PALAPI PalGetOsPageSize(); REDHAWK_PALIMPORT void REDHAWK_PALAPI PalSetHardwareExceptionHandler(PHARDWARE_EXCEPTION_HANDLER handler); #else REDHAWK_PALIMPORT void* REDHAWK_PALAPI PalAddVectoredExceptionHandler(uint32_t firstHandler, _In_ PVECTORED_EXCEPTION_HANDLER vectoredHandler); diff --git a/src/coreclr/nativeaot/Runtime/ThunksMapping.cpp b/src/coreclr/nativeaot/Runtime/ThunksMapping.cpp index 2b877fc9bfd22..30d3c4722e8a4 100644 --- a/src/coreclr/nativeaot/Runtime/ThunksMapping.cpp +++ b/src/coreclr/nativeaot/Runtime/ThunksMapping.cpp @@ -28,8 +28,7 @@ static_assert((THUNK_SIZE % 4) == 0, "Thunk stubs size not aligned correctly. This will cause runtime failures."); -// 32 K or OS page -#define THUNKS_MAP_SIZE (max(0x8000, OS_PAGE_SIZE)) +#define THUNKS_MAP_SIZE 0x8000 // 32 K #ifdef TARGET_ARM //***************************************************************************** @@ -57,7 +56,7 @@ void EncodeThumb2Mov32(uint16_t * pCode, uint32_t value, uint8_t rDestination) COOP_PINVOKE_HELPER(int, RhpGetNumThunkBlocksPerMapping, ()) { - ASSERT_MSG((THUNKS_MAP_SIZE % OS_PAGE_SIZE) == 0, "Thunks map size should be in multiples of pages"); + static_assert((THUNKS_MAP_SIZE % OS_PAGE_SIZE) == 0, "Thunks map size should be in multiples of pages"); return THUNKS_MAP_SIZE / OS_PAGE_SIZE; } diff --git a/src/coreclr/nativeaot/Runtime/allocheap.cpp b/src/coreclr/nativeaot/Runtime/allocheap.cpp index 5183e4ebcd2f1..2f76d4892c835 100644 --- a/src/coreclr/nativeaot/Runtime/allocheap.cpp +++ b/src/coreclr/nativeaot/Runtime/allocheap.cpp @@ -137,7 +137,7 @@ uint8_t * AllocHeap::_Alloc( #endif // FEATURE_RWX_MEMORY ASSERT((alignment & (alignment - 1)) == 0); // Power of 2 only. - ASSERT((int32_t)alignment <= OS_PAGE_SIZE); // Can't handle this right now. + ASSERT(alignment <= OS_PAGE_SIZE); // Can't handle this right now. ASSERT((m_rwProtectType == m_roProtectType) == (pRWAccessHolder == NULL)); ASSERT(!_UseAccessManager() || pRWAccessHolder != NULL); @@ -276,7 +276,7 @@ bool AllocHeap::_UpdateMemPtrs(uint8_t* pNextFree) //------------------------------------------------------------------------------------------------- bool AllocHeap::_AllocNewBlock(uintptr_t cbMem) { - cbMem = ALIGN_UP(cbMem, OS_PAGE_SIZE); + cbMem = ALIGN_UP(max(cbMem, s_minBlockSize), OS_PAGE_SIZE);; uint8_t * pbMem = reinterpret_cast (PalVirtualAlloc(NULL, cbMem, MEM_COMMIT, m_roProtectType)); diff --git a/src/coreclr/nativeaot/Runtime/allocheap.h b/src/coreclr/nativeaot/Runtime/allocheap.h index f4203909f8673..08f244fd63842 100644 --- a/src/coreclr/nativeaot/Runtime/allocheap.h +++ b/src/coreclr/nativeaot/Runtime/allocheap.h @@ -74,6 +74,8 @@ class AllocHeap bool _UpdateMemPtrs(uint8_t* pNextFree); bool _UseAccessManager() { return m_rwProtectType != m_roProtectType; } + static const uintptr_t s_minBlockSize = OS_PAGE_SIZE; + typedef rh::util::MemRange Block; typedef DPTR(Block) PTR_Block; struct BlockListElem : public Block diff --git a/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.S b/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.S index 757637f1d7aac..34acbfe3795e8 100644 --- a/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.S +++ b/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.S @@ -15,7 +15,7 @@ // // See also https://github.com/dotnet/runtime/issues/9899 for more information. -#define PROBE_STEP 0x1000 +#define PAGE_SIZE 0x1000 NESTED_ENTRY RhpStackProbe, _TEXT, NoHandler // On entry: @@ -32,11 +32,11 @@ NESTED_ENTRY RhpStackProbe, _TEXT, NoHandler END_PROLOGUE - and rsp, -PROBE_STEP // rsp points to the **lowest address** on the last probed page + and rsp, -PAGE_SIZE // rsp points to the **lowest address** on the last probed page // This is done to make the following loop end condition simpler. LOCAL_LABEL(ProbeLoop): - sub rsp, PROBE_STEP // rsp points to the lowest address of the **next page** to probe + sub rsp, PAGE_SIZE // rsp points to the lowest address of the **next page** to probe test dword ptr [rsp], eax // rsp points to the lowest address on the **last probed** page cmp rsp, r11 jg LOCAL_LABEL(ProbeLoop) // if (rsp > r11), then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.asm b/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.asm index 098c402b2106e..c3eb1fc2964ea 100644 --- a/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.asm +++ b/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.asm @@ -11,7 +11,7 @@ include AsmMacros.inc ; ; NOTE: this helper will NOT modify a value of rsp and can be defined as a leaf function. -PROBE_STEP equ 1000h +PAGE_SIZE equ 1000h LEAF_ENTRY RhpStackProbe, _TEXT ; On entry: @@ -24,11 +24,11 @@ LEAF_ENTRY RhpStackProbe, _TEXT ; NOTE: this helper will probe at least one page below the one pointed by rsp. mov rax, rsp ; rax points to some byte on the last probed page - and rax, -PROBE_STEP ; rax points to the **lowest address** on the last probed page + and rax, -PAGE_SIZE ; rax points to the **lowest address** on the last probed page ; This is done to make the following loop end condition simpler. ProbeLoop: - sub rax, PROBE_STEP ; rax points to the lowest address of the **next page** to probe + sub rax, PAGE_SIZE ; rax points to the lowest address of the **next page** to probe test dword ptr [rax], eax ; rax points to the lowest address on the **last probed** page cmp rax, r11 jg ProbeLoop ; If (rax > r11), then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/arm/MiscStubs.S b/src/coreclr/nativeaot/Runtime/arm/MiscStubs.S index c1a7ccc5223d2..65b3d72c98026 100644 --- a/src/coreclr/nativeaot/Runtime/arm/MiscStubs.S +++ b/src/coreclr/nativeaot/Runtime/arm/MiscStubs.S @@ -20,20 +20,20 @@ // r5 - is not preserved // // NOTE: this helper will probe at least one page below the one pointed to by sp. -#define PROBE_STEP 4096 -#define PROBE_STEP_LOG2 12 +#define PROBE_PAGE_SIZE 4096 +#define PROBE_PAGE_SIZE_LOG2 12 LEAF_ENTRY RhpStackProbe, _TEXT PROLOG_PUSH "{r7}" PROLOG_STACK_SAVE r7 mov r5, sp // r5 points to some byte on the last probed page - bfc r5, #0, #PROBE_STEP_LOG2 // r5 points to the **lowest address** on the last probed page + bfc r5, #0, #PROBE_PAGE_SIZE_LOG2 // r5 points to the **lowest address** on the last probed page mov sp, r5 ProbeLoop: // Immediate operand for the following instruction can not be greater than 4095. - sub sp, #(PROBE_STEP - 4) // sp points to the **fourth** byte on the **next page** to probe + sub sp, #(PROBE_PAGE_SIZE - 4) // sp points to the **fourth** byte on the **next page** to probe ldr r5, [sp, #-4]! // sp points to the lowest address on the **last probed** page cmp sp, r4 bhi ProbeLoop // If (sp > r4), then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/eventpipe/ep-rt-aot.cpp b/src/coreclr/nativeaot/Runtime/eventpipe/ep-rt-aot.cpp index 944d7714880b9..90d2c27523c28 100644 --- a/src/coreclr/nativeaot/Runtime/eventpipe/ep-rt-aot.cpp +++ b/src/coreclr/nativeaot/Runtime/eventpipe/ep-rt-aot.cpp @@ -28,14 +28,6 @@ #include "holder.h" #include "SpinLock.h" -#ifndef DIRECTORY_SEPARATOR_CHAR -#ifdef TARGET_UNIX -#define DIRECTORY_SEPARATOR_CHAR '/' -#else // TARGET_UNIX -#define DIRECTORY_SEPARATOR_CHAR '\\' -#endif // TARGET_UNIX -#endif - #ifdef TARGET_UNIX // Per module (1 for NativeAOT), key that will be used to implement TLS in Unix pthread_key_t eventpipe_tls_key; @@ -49,6 +41,7 @@ thread_local EventPipeAotThreadHolderTLS EventPipeAotThreadHolderTLS::g_threadHo ep_rt_lock_handle_t _ep_rt_aot_config_lock_handle; CrstStatic _ep_rt_aot_config_lock; +ep_char8_t *volatile _ep_rt_aot_diagnostics_cmd_line; #ifndef TARGET_UNIX uint32_t *_ep_rt_aot_proc_group_offsets; @@ -95,63 +88,9 @@ ep_rt_aot_sample_profiler_write_sampling_event_for_threads ( const ep_char8_t * ep_rt_aot_entrypoint_assembly_name_get_utf8 (void) { - // We are (intentionally for now) using the module name rather than entry assembly - // Cannot use __cpp_threadsafe_static_init feature since it will bring in the C++ runtime and need to use threadsafe way to initialize entrypoint_assembly_name - static const ep_char8_t * entrypoint_assembly_name = nullptr; - if (entrypoint_assembly_name == nullptr) { - ep_char8_t * entrypoint_assembly_name_local; - const TCHAR * wszModuleFileName = NULL; - HANDLE moduleHandle = PalGetModuleHandleFromPointer((void*)&ep_rt_aot_entrypoint_assembly_name_get_utf8); - if(PalGetModuleFileName(&wszModuleFileName, moduleHandle) == 0) { - entrypoint_assembly_name_local = reinterpret_cast(malloc(1)); - if(entrypoint_assembly_name_local==NULL) { - return NULL; - } - *entrypoint_assembly_name_local = '\0'; - } - else { -#ifdef HOST_WINDOWS - const wchar_t* process_name_const = wcsrchr(wszModuleFileName, DIRECTORY_SEPARATOR_CHAR); - if (process_name_const != NULL) { - process_name_const++; - } - else { - process_name_const = reinterpret_cast(wszModuleFileName); - } - size_t len = -1; - const wchar_t* extension = wcsrchr(process_name_const, '.'); - if (extension != NULL) { - len = extension - process_name_const; - } - entrypoint_assembly_name_local = ep_rt_utf16_to_utf8_string(reinterpret_cast(process_name_const), len); -#else - const ep_char8_t* process_name_const = strrchr(wszModuleFileName, DIRECTORY_SEPARATOR_CHAR); - if (process_name_const != NULL) { - process_name_const++; - } - else { - process_name_const = reinterpret_cast(wszModuleFileName); - } - size_t len = strlen(process_name_const); - const ep_char8_t *extension = strrchr(process_name_const, '.'); - if (extension != NULL) { - len = extension - process_name_const; - } - ep_char8_t* process_name = reinterpret_cast(malloc(len + 1)); - if (process_name == NULL) { - return NULL; - } - memcpy(process_name, process_name_const, len); - process_name[len] = '\0'; - entrypoint_assembly_name_local = reinterpret_cast(process_name); -#endif // HOST_WINDOWS - } - - if (PalInterlockedCompareExchangePointer((void**)(&entrypoint_assembly_name), (void*)(entrypoint_assembly_name_local), nullptr) != nullptr) - free(entrypoint_assembly_name_local); - } - - return entrypoint_assembly_name; + // shipping criteria: no EVENTPIPE-NATIVEAOT-TODO left in the codebase + // TODO: Implement EventPipe assembly name - return filename in nativeaot? + return reinterpret_cast(""); } const ep_char8_t * @@ -162,20 +101,6 @@ ep_rt_aot_diagnostics_command_line_get (void) #ifdef TARGET_WINDOWS const ep_char16_t* command_line = reinterpret_cast(::GetCommandLineW()); return ep_rt_utf16_to_utf8_string(command_line, -1); -#elif TARGET_LINUX - FILE *cmdline_file = ::fopen("/proc/self/cmdline", "r"); - if (cmdline_file == nullptr) - return ""; - - char *line = NULL; - size_t line_len = 0; - if (::getline (&line, &line_len, cmdline_file) == -1) { - ::fclose (cmdline_file); - return ""; - } - - ::fclose (cmdline_file); - return reinterpret_cast(line); #else return ""; #endif @@ -463,10 +388,10 @@ ep_rt_aot_file_close (ep_rt_file_handle_t file_handle) bool ep_rt_aot_file_write ( - ep_rt_file_handle_t file_handle, - const uint8_t *buffer, - uint32_t bytes_to_write, - uint32_t *bytes_written) + ep_rt_file_handle_t file_handle, + const uint8_t *buffer, + uint32_t bytes_to_write, + uint32_t *bytes_written) { #ifdef TARGET_WINDOWS return ::WriteFile (file_handle, buffer, bytes_to_write, reinterpret_cast(bytes_written), NULL) != FALSE; @@ -797,12 +722,12 @@ void ep_rt_aot_lock_requires_lock_not_held (const ep_rt_lock_handle_t *lock) void ep_rt_aot_spin_lock_requires_lock_held (const ep_rt_spin_lock_handle_t *spin_lock) { EP_ASSERT (ep_rt_spin_lock_is_valid (spin_lock)); - EP_ASSERT (spin_lock->lock->OwnedByCurrentThread ()); + EP_ASSERT (spin_lock->lock->OwnedByCurrentThread ()); } void ep_rt_aot_spin_lock_requires_lock_not_held (const ep_rt_spin_lock_handle_t *spin_lock) { - EP_ASSERT (spin_lock->lock == NULL || !spin_lock->lock->OwnedByCurrentThread ()); + EP_ASSERT (spin_lock->lock == NULL || !spin_lock->lock->OwnedByCurrentThread ()); } #endif /* EP_CHECKED_BUILD */ diff --git a/src/coreclr/nativeaot/Runtime/i386/MiscStubs.S b/src/coreclr/nativeaot/Runtime/i386/MiscStubs.S index 2acaec4b9aebb..3ea675f2c9dc5 100644 --- a/src/coreclr/nativeaot/Runtime/i386/MiscStubs.S +++ b/src/coreclr/nativeaot/Runtime/i386/MiscStubs.S @@ -16,7 +16,7 @@ // NOTE: this helper will modify a value of esp and must establish the frame pointer. // NOTE: On Linux we must advance the stack pointer as we probe - it is not allowed to access 65535 bytes below esp. // -#define PROBE_STEP 0x1000 +#define PAGE_SIZE 0x1000 NESTED_ENTRY RhpStackProbe, _TEXT, NoHandler // On entry: // eax - the lowest address of the stack frame being allocated (i.e. [InitialSp - FrameSize]) @@ -25,11 +25,11 @@ NESTED_ENTRY RhpStackProbe, _TEXT, NoHandler PROLOG_BEG PROLOG_END - and esp, -PROBE_STEP // esp points to the **lowest address** on the last probed page + and esp, -PAGE_SIZE // esp points to the **lowest address** on the last probed page // This is done to make the loop end condition simpler. LOCAL_LABEL(ProbeLoop): - sub esp, PROBE_STEP // esp points to the lowest address of the **next page** to probe + sub esp, PAGE_SIZE // esp points to the lowest address of the **next page** to probe test [esp], eax // esp points to the lowest address on the **last probed** page cmp esp, eax jg LOCAL_LABEL(ProbeLoop) // if esp > eax, then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/i386/MiscStubs.asm b/src/coreclr/nativeaot/Runtime/i386/MiscStubs.asm index 7c1329d6f66b3..f80ca3301f245 100644 --- a/src/coreclr/nativeaot/Runtime/i386/MiscStubs.asm +++ b/src/coreclr/nativeaot/Runtime/i386/MiscStubs.asm @@ -15,7 +15,7 @@ include AsmMacros.inc ; The call to the helper will be emitted by JIT in the function prolog when large (larger than 0x3000 bytes) stack frame is required. ; ; NOTE: this helper will modify a value of esp and must establish the frame pointer. -PROBE_STEP equ 1000h +PAGE_SIZE equ 1000h _RhpStackProbe PROC public ; On entry: @@ -25,10 +25,10 @@ _RhpStackProbe PROC public push ebp mov ebp, esp - and esp, -PROBE_STEP ; esp points to the **lowest address** on the last probed page + and esp, -PAGE_SIZE ; esp points to the **lowest address** on the last probed page ; This is done to make the loop end condition simpler. ProbeLoop: - sub esp, PROBE_STEP ; esp points to the lowest address of the **next page** to probe + sub esp, PAGE_SIZE ; esp points to the lowest address of the **next page** to probe test [esp], eax ; esp points to the lowest address on the **last probed** page cmp esp, eax jg ProbeLoop ; if esp > eax, then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkInline.h b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkInline.h index 51c3a85727183..be8a1ee8f6c52 100644 --- a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkInline.h +++ b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkInline.h @@ -113,17 +113,3 @@ FORCEINLINE void PalSetLastError(int32_t error) { errno = error; } - -FORCEINLINE int32_t PalOsPageSize() -{ -#if defined(HOST_AMD64) - // all supported platforms use 4K pages on x64, including emulated environments - return 0x1000; -#elif defined(HOST_APPLE) - // OSX and related OS expose 16-kilobyte pages to the 64-bit userspace - // https://developer.apple.com/library/archive/documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html - return 0x4000; -#else - return PalGetOsPageSize(); -#endif -} diff --git a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp index 08d09f25e0c61..e83f7bae82625 100644 --- a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp +++ b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp @@ -384,24 +384,6 @@ void InitializeCurrentProcessCpuCount() g_RhNumberOfProcessors = count; } -static uint32_t g_RhPageSize; - -void InitializeOsPageSize() -{ - g_RhPageSize = (uint32_t)sysconf(_SC_PAGE_SIZE); - -#if defined(HOST_AMD64) - ASSERT(g_RhPageSize == 0x1000); -#elif defined(HOST_APPLE) - ASSERT(g_RhPageSize == 0x4000); -#endif -} - -REDHAWK_PALEXPORT uint32_t REDHAWK_PALAPI PalGetOsPageSize() -{ - return g_RhPageSize; -} - #if defined(TARGET_LINUX) || defined(TARGET_ANDROID) static pthread_key_t key; #endif @@ -430,8 +412,6 @@ REDHAWK_PALEXPORT bool REDHAWK_PALAPI PalInit() InitializeCurrentProcessCpuCount(); - InitializeOsPageSize(); - #if defined(TARGET_LINUX) || defined(TARGET_ANDROID) if (pthread_key_create(&key, RuntimeThreadShutdown) != 0) { @@ -892,12 +872,13 @@ REDHAWK_PALEXPORT void PalFlushInstructionCache(_In_ void* pAddress, size_t size // // As a workaround, we call __builtin___clear_cache on each page separately. + const size_t pageSize = getpagesize(); uint8_t* begin = (uint8_t*)pAddress; uint8_t* end = begin + size; while (begin < end) { - uint8_t* endOrNextPageBegin = ALIGN_UP(begin + 1, OS_PAGE_SIZE); + uint8_t* endOrNextPageBegin = ALIGN_UP(begin + 1, pageSize); if (endOrNextPageBegin > end) endOrNextPageBegin = end; diff --git a/src/coreclr/nativeaot/Runtime/windows/PalRedhawkInline.h b/src/coreclr/nativeaot/Runtime/windows/PalRedhawkInline.h index 6dbb67b7cbbd9..1d9f7bd1711d6 100644 --- a/src/coreclr/nativeaot/Runtime/windows/PalRedhawkInline.h +++ b/src/coreclr/nativeaot/Runtime/windows/PalRedhawkInline.h @@ -158,8 +158,3 @@ FORCEINLINE void PalYieldProcessor() #endif #define PalDebugBreak() __debugbreak() - -FORCEINLINE int32_t PalOsPageSize() -{ - return 0x1000; -} diff --git a/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.MappingTables.cs b/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.MappingTables.cs index 7e3209b56e8f7..35d9cde9222fa 100644 --- a/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.MappingTables.cs +++ b/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.MappingTables.cs @@ -566,24 +566,74 @@ public bool TryGetOffsetsRange(IntPtr functionPointer, out int firstParserOffset // ldftn reverse lookup hash. Must be cleared and reset if the module list changes. (All sets to // this variable must happen under a lock) private volatile KeyValuePair[] _ldftnReverseLookup_InvokeMap; + private Func _computeLdFtnLookupInvokeMapInvokeMap = ComputeLdftnReverseLookup_InvokeMap; /// - /// Initialize a lookup array of module to function pointer/parser offset pair arrays. + /// Initialize a lookup array of module to function pointer/parser offset pair arrays. Do so in a manner that will allow + /// future work which will invalidate the cache (by setting it to null) /// - private KeyValuePair[] GetLdFtnReverseLookups_InvokeMap() + /// pointer to static which holds cache value. This is treated as a volatile variable + /// + /// + private KeyValuePair[] GetLdFtnReverseLookups_Helper(ref KeyValuePair[] ldftnReverseLookupStatic, Func lookupComputer) { - KeyValuePair[] ldFtnReverseLookup = _ldftnReverseLookup_InvokeMap; - if (ldFtnReverseLookup == null) + KeyValuePair[] ldFtnReverseLookup = Volatile.Read(ref ldftnReverseLookupStatic); + + if (ldFtnReverseLookup != null) + return ldFtnReverseLookup; + else { - var ldFtnReverseLookupBuilder = new ArrayBuilder>(); - foreach (NativeFormatModuleInfo module in ModuleList.EnumerateModules()) + lock (this) { - ldFtnReverseLookupBuilder.Add(new KeyValuePair(module, ComputeLdftnReverseLookup_InvokeMap(module))); + ldFtnReverseLookup = Volatile.Read(ref ldftnReverseLookupStatic); + + // double checked lock, safe due to use of volatile on s_ldftnReverseHashes + if (ldFtnReverseLookup != null) + return ldFtnReverseLookup; + + // FUTURE: add a module load callback to invalidate this cache if a new module is loaded. + while (true) + { + int size = 0; + foreach (NativeFormatModuleInfo module in ModuleList.EnumerateModules()) + { + size++; + } + + ldFtnReverseLookup = new KeyValuePair[size]; + int index = 0; + bool restart = false; + foreach (NativeFormatModuleInfo module in ModuleList.EnumerateModules()) + { + // If the module list changes during execution of this code, rebuild from scratch + if (index >= ldFtnReverseLookup.Length) + { + restart = true; + break; + } + + ldFtnReverseLookup[index] = new KeyValuePair(module, lookupComputer(module)); + index++; + } + + if (restart) + continue; + + // unless we need to repeat the module enumeration, only execute the body of this while loop once. + break; + } + + Volatile.Write(ref ldftnReverseLookupStatic, ldFtnReverseLookup); + return ldFtnReverseLookup; } - ldFtnReverseLookup = ldFtnReverseLookupBuilder.ToArray(); - _ldftnReverseLookup_InvokeMap = ldFtnReverseLookup; } - return ldFtnReverseLookup; + } + + private KeyValuePair[] GetLdFtnReverseLookups_InvokeMap() + { +#pragma warning disable 0420 // GetLdFtnReverseLookups_Helper treats its first parameter as volatile by using explicit Volatile operations + return GetLdFtnReverseLookups_Helper(ref _ldftnReverseLookup_InvokeMap, _computeLdFtnLookupInvokeMapInvokeMap); +#pragma warning restore 0420 } internal unsafe void GetFunctionPointerAndInstantiationArgumentForOriginalLdFtnResult(IntPtr originalLdFtnResult, out IntPtr canonOriginalLdFtnResult, out IntPtr instantiationArgument) diff --git a/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/System.Private.Reflection.Execution.csproj b/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/System.Private.Reflection.Execution.csproj index 5527d5920f601..76d3934794fd2 100644 --- a/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/System.Private.Reflection.Execution.csproj +++ b/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/System.Private.Reflection.Execution.csproj @@ -65,9 +65,6 @@ System\Collections\Generic\LowLevelDictionary.cs - - System\Collections\Generic\ArrayBuilder.cs - Internal\LowLevelLinq\LowLevelEnumerable.cs diff --git a/src/coreclr/nativeaot/docs/optimizing.md b/src/coreclr/nativeaot/docs/optimizing.md index 6245014f6b5ad..05ffe178aa357 100644 --- a/src/coreclr/nativeaot/docs/optimizing.md +++ b/src/coreclr/nativeaot/docs/optimizing.md @@ -1,9 +1,40 @@ # Optimizing programs targeting Native AOT -See the official documentation at https://learn.microsoft.com/dotnet/core/deploying/native-aot/optimizing. +The Native AOT compiler provides multiple switches to influence the compilation process. These switches control the code and metadata that the compiler generates and affect the runtime behavior of the compiled program. -The rest of the document talks about options that exist, but their names and purpose are subject to change without a breaking change notice. +To specify a switch, add a new property to your project file with one or more of the values below. For example, to specify the invariant globalization mode, add + +```xml + + true + +``` + +under the `` node of your project file. + +## Options related to trimming + +The Native AOT compiler supports the [documented options](https://docs.microsoft.com/en-us/dotnet/core/deploying/trim-self-contained) for removing unused code (trimming). By default, the compiler tries to very conservatively remove some of the unused code. + +:information_source: Native AOT difference: The documented `PublishTrimmed` property is implied to be `true` when Native AOT is active. + +By default, the compiler tries to maximize compatibility with existing .NET code at the expense of compilation speed and size of the output executable. This allows people to use their existing code that worked well in a fully dynamic mode without hitting issues caused by trimming. To read more about reflection, see the [Reflection in AOT mode](reflection-in-aot-mode.md) document. + +To enable more aggressive removal of unreferenced code, set the `` property to `link`. + +To aid in troubleshooting some of the most common problems related to trimming add `true` to your project. This ensures types are preserved in their entirety, but the extra members that would otherwise be trimmed cannot be used in runtime reflection. This mode can turn some spurious `NullReferenceExceptions` (caused by reflection APIs returning a null) caused by trimming into more actionable exceptions. + +The Native AOT compiler can remove unused metadata more effectively than non-Native deployment models. For example, it's possible to remove names and metadata for methods while keeping the native code of the method. The higher efficiency of trimming in Native AOT can result in differences in what's visible to reflection at runtime in trimming-unfriendly code. To increase compatibility with the less efficient non-Native trimming, set the `` property to `false`. This compatibility mode is not necessary if there are no trimming warnings. + +## Options related to library features + +Native AOT supports enabling and disabling all [documented framework library features](https://docs.microsoft.com/en-us/dotnet/core/deploying/trimming-options#trimming-framework-library-features). For example, to remove globalization specific code and data, add a `true` property to your project. Disabling a framework feature (or enabling a minimal mode of the feature) can result in significant size savings. + +Since `PublishTrimmed` is implied to be true with Native AOT, some framework features such as binary serialization are disabled by default. ## Options related to code generation +* `Speed`: when generating optimized code, favor code execution speed. +* `Size`: when generating optimized code, favor smaller code size. * ``: By default, the compiler targets the minimum instruction set supported by the target OS and architecture. This option allows targeting newer instruction sets for better performance. The native binary will require the instruction sets to be supported by the hardware in order to run. For example, `avx2,bmi2,fma,pclmul,popcnt,aes` will produce binary that takes advantage of instruction sets that are typically present on current Intel and AMD processors. Run `ilc --help` for the full list of available instruction sets. `ilc` can be executed from the NativeAOT package in your local nuget cache e.g. `%USERPROFILE%\.nuget\packages\runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-...\tools\ilc.exe` on Windows or `~/.nuget/packages/runtime.linux-arm64.microsoft.dotnet.ilcompiler/8.0.0-.../tools/ilc` on Linux. * ``: By default, the compiler targets the a `Vector` size of `16` or `32` bytes, depending on the underlying instruction sets supported. This option allows specifying a different maximum bit width. For example, if by default on x64 hardware `Vector` will be 16-bytes. However, if `AVX2` is targeted then `Vector` will automatically grow to be 32-bytes instead, setting `128` would keep the size as 16-bytes. Alternatively, even if `AVX512F` is targeted then by default `Vector` will not grow larger than 32-bytes, setting `512` would allow it to grow to 64-bytes. + diff --git a/src/coreclr/pal/prebuilt/idl/cordebug_i.cpp b/src/coreclr/pal/prebuilt/idl/cordebug_i.cpp index 6bfe487fd5ff0..c509c3c16cd52 100644 --- a/src/coreclr/pal/prebuilt/idl/cordebug_i.cpp +++ b/src/coreclr/pal/prebuilt/idl/cordebug_i.cpp @@ -315,8 +315,6 @@ MIDL_DEFINE_GUID(IID, IID_ICorDebugFunction3,0x09B70F28,0xE465,0x482D,0x99,0xE0, MIDL_DEFINE_GUID(IID, IID_ICorDebugFunction4,0x72965963,0x34fd,0x46e9,0x94,0x34,0xb8,0x17,0xfe,0x6e,0x7f,0x43); -MIDL_DEFINE_GUID(IID, IID_ICorDebugFunction5,0x9D4DAB7B,0x3401,0x4F37,0xBD,0x08,0xCA,0x09,0xF3,0xFD,0xF1,0x0F); - MIDL_DEFINE_GUID(IID, IID_ICorDebugCode,0xCC7BCAF4,0x8A68,0x11d2,0x98,0x3C,0x00,0x00,0xF8,0x08,0x34,0x2D); diff --git a/src/coreclr/pal/prebuilt/inc/cordebug.h b/src/coreclr/pal/prebuilt/inc/cordebug.h index 7888daf972a7c..83a7968f1a9bc 100644 --- a/src/coreclr/pal/prebuilt/inc/cordebug.h +++ b/src/coreclr/pal/prebuilt/inc/cordebug.h @@ -1,14 +1,15 @@ - +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. /* this ALWAYS GENERATED file contains the definitions for the interfaces */ - /* File created by MIDL compiler version 8.01.0628 */ + /* File created by MIDL compiler version 8.01.0622 */ /* Compiler settings for cordebug.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0628 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622 protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ @@ -41,966 +42,951 @@ #pragma once #endif -#ifndef DECLSPEC_XFGVIRT -#if defined(_CONTROL_FLOW_GUARD_XFG) -#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) -#else -#define DECLSPEC_XFGVIRT(base, func) -#endif -#endif - -/* Forward Declarations */ +/* Forward Declarations */ #ifndef __ICorDebugDataTarget_FWD_DEFINED__ #define __ICorDebugDataTarget_FWD_DEFINED__ typedef interface ICorDebugDataTarget ICorDebugDataTarget; -#endif /* __ICorDebugDataTarget_FWD_DEFINED__ */ +#endif /* __ICorDebugDataTarget_FWD_DEFINED__ */ #ifndef __ICorDebugStaticFieldSymbol_FWD_DEFINED__ #define __ICorDebugStaticFieldSymbol_FWD_DEFINED__ typedef interface ICorDebugStaticFieldSymbol ICorDebugStaticFieldSymbol; -#endif /* __ICorDebugStaticFieldSymbol_FWD_DEFINED__ */ +#endif /* __ICorDebugStaticFieldSymbol_FWD_DEFINED__ */ #ifndef __ICorDebugInstanceFieldSymbol_FWD_DEFINED__ #define __ICorDebugInstanceFieldSymbol_FWD_DEFINED__ typedef interface ICorDebugInstanceFieldSymbol ICorDebugInstanceFieldSymbol; -#endif /* __ICorDebugInstanceFieldSymbol_FWD_DEFINED__ */ +#endif /* __ICorDebugInstanceFieldSymbol_FWD_DEFINED__ */ #ifndef __ICorDebugVariableSymbol_FWD_DEFINED__ #define __ICorDebugVariableSymbol_FWD_DEFINED__ typedef interface ICorDebugVariableSymbol ICorDebugVariableSymbol; -#endif /* __ICorDebugVariableSymbol_FWD_DEFINED__ */ +#endif /* __ICorDebugVariableSymbol_FWD_DEFINED__ */ #ifndef __ICorDebugMemoryBuffer_FWD_DEFINED__ #define __ICorDebugMemoryBuffer_FWD_DEFINED__ typedef interface ICorDebugMemoryBuffer ICorDebugMemoryBuffer; -#endif /* __ICorDebugMemoryBuffer_FWD_DEFINED__ */ +#endif /* __ICorDebugMemoryBuffer_FWD_DEFINED__ */ #ifndef __ICorDebugMergedAssemblyRecord_FWD_DEFINED__ #define __ICorDebugMergedAssemblyRecord_FWD_DEFINED__ typedef interface ICorDebugMergedAssemblyRecord ICorDebugMergedAssemblyRecord; -#endif /* __ICorDebugMergedAssemblyRecord_FWD_DEFINED__ */ +#endif /* __ICorDebugMergedAssemblyRecord_FWD_DEFINED__ */ #ifndef __ICorDebugSymbolProvider_FWD_DEFINED__ #define __ICorDebugSymbolProvider_FWD_DEFINED__ typedef interface ICorDebugSymbolProvider ICorDebugSymbolProvider; -#endif /* __ICorDebugSymbolProvider_FWD_DEFINED__ */ +#endif /* __ICorDebugSymbolProvider_FWD_DEFINED__ */ #ifndef __ICorDebugSymbolProvider2_FWD_DEFINED__ #define __ICorDebugSymbolProvider2_FWD_DEFINED__ typedef interface ICorDebugSymbolProvider2 ICorDebugSymbolProvider2; -#endif /* __ICorDebugSymbolProvider2_FWD_DEFINED__ */ +#endif /* __ICorDebugSymbolProvider2_FWD_DEFINED__ */ #ifndef __ICorDebugVirtualUnwinder_FWD_DEFINED__ #define __ICorDebugVirtualUnwinder_FWD_DEFINED__ typedef interface ICorDebugVirtualUnwinder ICorDebugVirtualUnwinder; -#endif /* __ICorDebugVirtualUnwinder_FWD_DEFINED__ */ +#endif /* __ICorDebugVirtualUnwinder_FWD_DEFINED__ */ #ifndef __ICorDebugDataTarget2_FWD_DEFINED__ #define __ICorDebugDataTarget2_FWD_DEFINED__ typedef interface ICorDebugDataTarget2 ICorDebugDataTarget2; -#endif /* __ICorDebugDataTarget2_FWD_DEFINED__ */ +#endif /* __ICorDebugDataTarget2_FWD_DEFINED__ */ #ifndef __ICorDebugLoadedModule_FWD_DEFINED__ #define __ICorDebugLoadedModule_FWD_DEFINED__ typedef interface ICorDebugLoadedModule ICorDebugLoadedModule; -#endif /* __ICorDebugLoadedModule_FWD_DEFINED__ */ +#endif /* __ICorDebugLoadedModule_FWD_DEFINED__ */ #ifndef __ICorDebugDataTarget3_FWD_DEFINED__ #define __ICorDebugDataTarget3_FWD_DEFINED__ typedef interface ICorDebugDataTarget3 ICorDebugDataTarget3; -#endif /* __ICorDebugDataTarget3_FWD_DEFINED__ */ +#endif /* __ICorDebugDataTarget3_FWD_DEFINED__ */ #ifndef __ICorDebugDataTarget4_FWD_DEFINED__ #define __ICorDebugDataTarget4_FWD_DEFINED__ typedef interface ICorDebugDataTarget4 ICorDebugDataTarget4; -#endif /* __ICorDebugDataTarget4_FWD_DEFINED__ */ +#endif /* __ICorDebugDataTarget4_FWD_DEFINED__ */ #ifndef __ICorDebugMutableDataTarget_FWD_DEFINED__ #define __ICorDebugMutableDataTarget_FWD_DEFINED__ typedef interface ICorDebugMutableDataTarget ICorDebugMutableDataTarget; -#endif /* __ICorDebugMutableDataTarget_FWD_DEFINED__ */ +#endif /* __ICorDebugMutableDataTarget_FWD_DEFINED__ */ #ifndef __ICorDebugMetaDataLocator_FWD_DEFINED__ #define __ICorDebugMetaDataLocator_FWD_DEFINED__ typedef interface ICorDebugMetaDataLocator ICorDebugMetaDataLocator; -#endif /* __ICorDebugMetaDataLocator_FWD_DEFINED__ */ +#endif /* __ICorDebugMetaDataLocator_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback_FWD_DEFINED__ #define __ICorDebugManagedCallback_FWD_DEFINED__ typedef interface ICorDebugManagedCallback ICorDebugManagedCallback; -#endif /* __ICorDebugManagedCallback_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback3_FWD_DEFINED__ #define __ICorDebugManagedCallback3_FWD_DEFINED__ typedef interface ICorDebugManagedCallback3 ICorDebugManagedCallback3; -#endif /* __ICorDebugManagedCallback3_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback3_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback4_FWD_DEFINED__ #define __ICorDebugManagedCallback4_FWD_DEFINED__ typedef interface ICorDebugManagedCallback4 ICorDebugManagedCallback4; -#endif /* __ICorDebugManagedCallback4_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback4_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback2_FWD_DEFINED__ #define __ICorDebugManagedCallback2_FWD_DEFINED__ typedef interface ICorDebugManagedCallback2 ICorDebugManagedCallback2; -#endif /* __ICorDebugManagedCallback2_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback2_FWD_DEFINED__ */ #ifndef __ICorDebugUnmanagedCallback_FWD_DEFINED__ #define __ICorDebugUnmanagedCallback_FWD_DEFINED__ typedef interface ICorDebugUnmanagedCallback ICorDebugUnmanagedCallback; -#endif /* __ICorDebugUnmanagedCallback_FWD_DEFINED__ */ +#endif /* __ICorDebugUnmanagedCallback_FWD_DEFINED__ */ #ifndef __ICorDebug_FWD_DEFINED__ #define __ICorDebug_FWD_DEFINED__ typedef interface ICorDebug ICorDebug; -#endif /* __ICorDebug_FWD_DEFINED__ */ +#endif /* __ICorDebug_FWD_DEFINED__ */ #ifndef __ICorDebugRemoteTarget_FWD_DEFINED__ #define __ICorDebugRemoteTarget_FWD_DEFINED__ typedef interface ICorDebugRemoteTarget ICorDebugRemoteTarget; -#endif /* __ICorDebugRemoteTarget_FWD_DEFINED__ */ +#endif /* __ICorDebugRemoteTarget_FWD_DEFINED__ */ #ifndef __ICorDebugRemote_FWD_DEFINED__ #define __ICorDebugRemote_FWD_DEFINED__ typedef interface ICorDebugRemote ICorDebugRemote; -#endif /* __ICorDebugRemote_FWD_DEFINED__ */ +#endif /* __ICorDebugRemote_FWD_DEFINED__ */ #ifndef __ICorDebug2_FWD_DEFINED__ #define __ICorDebug2_FWD_DEFINED__ typedef interface ICorDebug2 ICorDebug2; -#endif /* __ICorDebug2_FWD_DEFINED__ */ +#endif /* __ICorDebug2_FWD_DEFINED__ */ #ifndef __ICorDebugController_FWD_DEFINED__ #define __ICorDebugController_FWD_DEFINED__ typedef interface ICorDebugController ICorDebugController; -#endif /* __ICorDebugController_FWD_DEFINED__ */ +#endif /* __ICorDebugController_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain_FWD_DEFINED__ #define __ICorDebugAppDomain_FWD_DEFINED__ typedef interface ICorDebugAppDomain ICorDebugAppDomain; -#endif /* __ICorDebugAppDomain_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain2_FWD_DEFINED__ #define __ICorDebugAppDomain2_FWD_DEFINED__ typedef interface ICorDebugAppDomain2 ICorDebugAppDomain2; -#endif /* __ICorDebugAppDomain2_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain2_FWD_DEFINED__ */ #ifndef __ICorDebugEnum_FWD_DEFINED__ #define __ICorDebugEnum_FWD_DEFINED__ typedef interface ICorDebugEnum ICorDebugEnum; -#endif /* __ICorDebugEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugEnum_FWD_DEFINED__ */ #ifndef __ICorDebugGuidToTypeEnum_FWD_DEFINED__ #define __ICorDebugGuidToTypeEnum_FWD_DEFINED__ typedef interface ICorDebugGuidToTypeEnum ICorDebugGuidToTypeEnum; -#endif /* __ICorDebugGuidToTypeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugGuidToTypeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain3_FWD_DEFINED__ #define __ICorDebugAppDomain3_FWD_DEFINED__ typedef interface ICorDebugAppDomain3 ICorDebugAppDomain3; -#endif /* __ICorDebugAppDomain3_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain3_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain4_FWD_DEFINED__ #define __ICorDebugAppDomain4_FWD_DEFINED__ typedef interface ICorDebugAppDomain4 ICorDebugAppDomain4; -#endif /* __ICorDebugAppDomain4_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain4_FWD_DEFINED__ */ #ifndef __ICorDebugAssembly_FWD_DEFINED__ #define __ICorDebugAssembly_FWD_DEFINED__ typedef interface ICorDebugAssembly ICorDebugAssembly; -#endif /* __ICorDebugAssembly_FWD_DEFINED__ */ +#endif /* __ICorDebugAssembly_FWD_DEFINED__ */ #ifndef __ICorDebugAssembly2_FWD_DEFINED__ #define __ICorDebugAssembly2_FWD_DEFINED__ typedef interface ICorDebugAssembly2 ICorDebugAssembly2; -#endif /* __ICorDebugAssembly2_FWD_DEFINED__ */ +#endif /* __ICorDebugAssembly2_FWD_DEFINED__ */ #ifndef __ICorDebugAssembly3_FWD_DEFINED__ #define __ICorDebugAssembly3_FWD_DEFINED__ typedef interface ICorDebugAssembly3 ICorDebugAssembly3; -#endif /* __ICorDebugAssembly3_FWD_DEFINED__ */ +#endif /* __ICorDebugAssembly3_FWD_DEFINED__ */ #ifndef __ICorDebugHeapEnum_FWD_DEFINED__ #define __ICorDebugHeapEnum_FWD_DEFINED__ typedef interface ICorDebugHeapEnum ICorDebugHeapEnum; -#endif /* __ICorDebugHeapEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapEnum_FWD_DEFINED__ */ #ifndef __ICorDebugHeapSegmentEnum_FWD_DEFINED__ #define __ICorDebugHeapSegmentEnum_FWD_DEFINED__ typedef interface ICorDebugHeapSegmentEnum ICorDebugHeapSegmentEnum; -#endif /* __ICorDebugHeapSegmentEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapSegmentEnum_FWD_DEFINED__ */ #ifndef __ICorDebugGCReferenceEnum_FWD_DEFINED__ #define __ICorDebugGCReferenceEnum_FWD_DEFINED__ typedef interface ICorDebugGCReferenceEnum ICorDebugGCReferenceEnum; -#endif /* __ICorDebugGCReferenceEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugGCReferenceEnum_FWD_DEFINED__ */ #ifndef __ICorDebugProcess_FWD_DEFINED__ #define __ICorDebugProcess_FWD_DEFINED__ typedef interface ICorDebugProcess ICorDebugProcess; -#endif /* __ICorDebugProcess_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess_FWD_DEFINED__ */ #ifndef __ICorDebugProcess2_FWD_DEFINED__ #define __ICorDebugProcess2_FWD_DEFINED__ typedef interface ICorDebugProcess2 ICorDebugProcess2; -#endif /* __ICorDebugProcess2_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess2_FWD_DEFINED__ */ #ifndef __ICorDebugProcess3_FWD_DEFINED__ #define __ICorDebugProcess3_FWD_DEFINED__ typedef interface ICorDebugProcess3 ICorDebugProcess3; -#endif /* __ICorDebugProcess3_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess3_FWD_DEFINED__ */ #ifndef __ICorDebugProcess5_FWD_DEFINED__ #define __ICorDebugProcess5_FWD_DEFINED__ typedef interface ICorDebugProcess5 ICorDebugProcess5; -#endif /* __ICorDebugProcess5_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess5_FWD_DEFINED__ */ #ifndef __ICorDebugDebugEvent_FWD_DEFINED__ #define __ICorDebugDebugEvent_FWD_DEFINED__ typedef interface ICorDebugDebugEvent ICorDebugDebugEvent; -#endif /* __ICorDebugDebugEvent_FWD_DEFINED__ */ +#endif /* __ICorDebugDebugEvent_FWD_DEFINED__ */ #ifndef __ICorDebugProcess6_FWD_DEFINED__ #define __ICorDebugProcess6_FWD_DEFINED__ typedef interface ICorDebugProcess6 ICorDebugProcess6; -#endif /* __ICorDebugProcess6_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess6_FWD_DEFINED__ */ #ifndef __ICorDebugProcess7_FWD_DEFINED__ #define __ICorDebugProcess7_FWD_DEFINED__ typedef interface ICorDebugProcess7 ICorDebugProcess7; -#endif /* __ICorDebugProcess7_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess7_FWD_DEFINED__ */ #ifndef __ICorDebugProcess8_FWD_DEFINED__ #define __ICorDebugProcess8_FWD_DEFINED__ typedef interface ICorDebugProcess8 ICorDebugProcess8; -#endif /* __ICorDebugProcess8_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess8_FWD_DEFINED__ */ #ifndef __ICorDebugProcess10_FWD_DEFINED__ #define __ICorDebugProcess10_FWD_DEFINED__ typedef interface ICorDebugProcess10 ICorDebugProcess10; -#endif /* __ICorDebugProcess10_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess10_FWD_DEFINED__ */ #ifndef __ICorDebugMemoryRangeEnum_FWD_DEFINED__ #define __ICorDebugMemoryRangeEnum_FWD_DEFINED__ typedef interface ICorDebugMemoryRangeEnum ICorDebugMemoryRangeEnum; -#endif /* __ICorDebugMemoryRangeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugMemoryRangeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugProcess11_FWD_DEFINED__ #define __ICorDebugProcess11_FWD_DEFINED__ typedef interface ICorDebugProcess11 ICorDebugProcess11; -#endif /* __ICorDebugProcess11_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess11_FWD_DEFINED__ */ #ifndef __ICorDebugModuleDebugEvent_FWD_DEFINED__ #define __ICorDebugModuleDebugEvent_FWD_DEFINED__ typedef interface ICorDebugModuleDebugEvent ICorDebugModuleDebugEvent; -#endif /* __ICorDebugModuleDebugEvent_FWD_DEFINED__ */ +#endif /* __ICorDebugModuleDebugEvent_FWD_DEFINED__ */ #ifndef __ICorDebugExceptionDebugEvent_FWD_DEFINED__ #define __ICorDebugExceptionDebugEvent_FWD_DEFINED__ typedef interface ICorDebugExceptionDebugEvent ICorDebugExceptionDebugEvent; -#endif /* __ICorDebugExceptionDebugEvent_FWD_DEFINED__ */ +#endif /* __ICorDebugExceptionDebugEvent_FWD_DEFINED__ */ #ifndef __ICorDebugBreakpoint_FWD_DEFINED__ #define __ICorDebugBreakpoint_FWD_DEFINED__ typedef interface ICorDebugBreakpoint ICorDebugBreakpoint; -#endif /* __ICorDebugBreakpoint_FWD_DEFINED__ */ +#endif /* __ICorDebugBreakpoint_FWD_DEFINED__ */ #ifndef __ICorDebugFunctionBreakpoint_FWD_DEFINED__ #define __ICorDebugFunctionBreakpoint_FWD_DEFINED__ typedef interface ICorDebugFunctionBreakpoint ICorDebugFunctionBreakpoint; -#endif /* __ICorDebugFunctionBreakpoint_FWD_DEFINED__ */ +#endif /* __ICorDebugFunctionBreakpoint_FWD_DEFINED__ */ #ifndef __ICorDebugModuleBreakpoint_FWD_DEFINED__ #define __ICorDebugModuleBreakpoint_FWD_DEFINED__ typedef interface ICorDebugModuleBreakpoint ICorDebugModuleBreakpoint; -#endif /* __ICorDebugModuleBreakpoint_FWD_DEFINED__ */ +#endif /* __ICorDebugModuleBreakpoint_FWD_DEFINED__ */ #ifndef __ICorDebugValueBreakpoint_FWD_DEFINED__ #define __ICorDebugValueBreakpoint_FWD_DEFINED__ typedef interface ICorDebugValueBreakpoint ICorDebugValueBreakpoint; -#endif /* __ICorDebugValueBreakpoint_FWD_DEFINED__ */ +#endif /* __ICorDebugValueBreakpoint_FWD_DEFINED__ */ #ifndef __ICorDebugStepper_FWD_DEFINED__ #define __ICorDebugStepper_FWD_DEFINED__ typedef interface ICorDebugStepper ICorDebugStepper; -#endif /* __ICorDebugStepper_FWD_DEFINED__ */ +#endif /* __ICorDebugStepper_FWD_DEFINED__ */ #ifndef __ICorDebugStepper2_FWD_DEFINED__ #define __ICorDebugStepper2_FWD_DEFINED__ typedef interface ICorDebugStepper2 ICorDebugStepper2; -#endif /* __ICorDebugStepper2_FWD_DEFINED__ */ +#endif /* __ICorDebugStepper2_FWD_DEFINED__ */ #ifndef __ICorDebugRegisterSet_FWD_DEFINED__ #define __ICorDebugRegisterSet_FWD_DEFINED__ typedef interface ICorDebugRegisterSet ICorDebugRegisterSet; -#endif /* __ICorDebugRegisterSet_FWD_DEFINED__ */ +#endif /* __ICorDebugRegisterSet_FWD_DEFINED__ */ #ifndef __ICorDebugRegisterSet2_FWD_DEFINED__ #define __ICorDebugRegisterSet2_FWD_DEFINED__ typedef interface ICorDebugRegisterSet2 ICorDebugRegisterSet2; -#endif /* __ICorDebugRegisterSet2_FWD_DEFINED__ */ +#endif /* __ICorDebugRegisterSet2_FWD_DEFINED__ */ #ifndef __ICorDebugThread_FWD_DEFINED__ #define __ICorDebugThread_FWD_DEFINED__ typedef interface ICorDebugThread ICorDebugThread; -#endif /* __ICorDebugThread_FWD_DEFINED__ */ +#endif /* __ICorDebugThread_FWD_DEFINED__ */ #ifndef __ICorDebugThread2_FWD_DEFINED__ #define __ICorDebugThread2_FWD_DEFINED__ typedef interface ICorDebugThread2 ICorDebugThread2; -#endif /* __ICorDebugThread2_FWD_DEFINED__ */ +#endif /* __ICorDebugThread2_FWD_DEFINED__ */ #ifndef __ICorDebugThread3_FWD_DEFINED__ #define __ICorDebugThread3_FWD_DEFINED__ typedef interface ICorDebugThread3 ICorDebugThread3; -#endif /* __ICorDebugThread3_FWD_DEFINED__ */ +#endif /* __ICorDebugThread3_FWD_DEFINED__ */ #ifndef __ICorDebugThread4_FWD_DEFINED__ #define __ICorDebugThread4_FWD_DEFINED__ typedef interface ICorDebugThread4 ICorDebugThread4; -#endif /* __ICorDebugThread4_FWD_DEFINED__ */ +#endif /* __ICorDebugThread4_FWD_DEFINED__ */ #ifndef __ICorDebugThread5_FWD_DEFINED__ #define __ICorDebugThread5_FWD_DEFINED__ typedef interface ICorDebugThread5 ICorDebugThread5; -#endif /* __ICorDebugThread5_FWD_DEFINED__ */ +#endif /* __ICorDebugThread5_FWD_DEFINED__ */ #ifndef __ICorDebugStackWalk_FWD_DEFINED__ #define __ICorDebugStackWalk_FWD_DEFINED__ typedef interface ICorDebugStackWalk ICorDebugStackWalk; -#endif /* __ICorDebugStackWalk_FWD_DEFINED__ */ +#endif /* __ICorDebugStackWalk_FWD_DEFINED__ */ #ifndef __ICorDebugChain_FWD_DEFINED__ #define __ICorDebugChain_FWD_DEFINED__ typedef interface ICorDebugChain ICorDebugChain; -#endif /* __ICorDebugChain_FWD_DEFINED__ */ +#endif /* __ICorDebugChain_FWD_DEFINED__ */ #ifndef __ICorDebugFrame_FWD_DEFINED__ #define __ICorDebugFrame_FWD_DEFINED__ typedef interface ICorDebugFrame ICorDebugFrame; -#endif /* __ICorDebugFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugFrame_FWD_DEFINED__ */ #ifndef __ICorDebugInternalFrame_FWD_DEFINED__ #define __ICorDebugInternalFrame_FWD_DEFINED__ typedef interface ICorDebugInternalFrame ICorDebugInternalFrame; -#endif /* __ICorDebugInternalFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugInternalFrame_FWD_DEFINED__ */ #ifndef __ICorDebugInternalFrame2_FWD_DEFINED__ #define __ICorDebugInternalFrame2_FWD_DEFINED__ typedef interface ICorDebugInternalFrame2 ICorDebugInternalFrame2; -#endif /* __ICorDebugInternalFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugInternalFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame_FWD_DEFINED__ #define __ICorDebugILFrame_FWD_DEFINED__ typedef interface ICorDebugILFrame ICorDebugILFrame; -#endif /* __ICorDebugILFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame2_FWD_DEFINED__ #define __ICorDebugILFrame2_FWD_DEFINED__ typedef interface ICorDebugILFrame2 ICorDebugILFrame2; -#endif /* __ICorDebugILFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame3_FWD_DEFINED__ #define __ICorDebugILFrame3_FWD_DEFINED__ typedef interface ICorDebugILFrame3 ICorDebugILFrame3; -#endif /* __ICorDebugILFrame3_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame3_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame4_FWD_DEFINED__ #define __ICorDebugILFrame4_FWD_DEFINED__ typedef interface ICorDebugILFrame4 ICorDebugILFrame4; -#endif /* __ICorDebugILFrame4_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame4_FWD_DEFINED__ */ #ifndef __ICorDebugNativeFrame_FWD_DEFINED__ #define __ICorDebugNativeFrame_FWD_DEFINED__ typedef interface ICorDebugNativeFrame ICorDebugNativeFrame; -#endif /* __ICorDebugNativeFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugNativeFrame_FWD_DEFINED__ */ #ifndef __ICorDebugNativeFrame2_FWD_DEFINED__ #define __ICorDebugNativeFrame2_FWD_DEFINED__ typedef interface ICorDebugNativeFrame2 ICorDebugNativeFrame2; -#endif /* __ICorDebugNativeFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugNativeFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugModule3_FWD_DEFINED__ #define __ICorDebugModule3_FWD_DEFINED__ typedef interface ICorDebugModule3 ICorDebugModule3; -#endif /* __ICorDebugModule3_FWD_DEFINED__ */ +#endif /* __ICorDebugModule3_FWD_DEFINED__ */ #ifndef __ICorDebugModule4_FWD_DEFINED__ #define __ICorDebugModule4_FWD_DEFINED__ typedef interface ICorDebugModule4 ICorDebugModule4; -#endif /* __ICorDebugModule4_FWD_DEFINED__ */ +#endif /* __ICorDebugModule4_FWD_DEFINED__ */ #ifndef __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ #define __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ typedef interface ICorDebugRuntimeUnwindableFrame ICorDebugRuntimeUnwindableFrame; -#endif /* __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ */ #ifndef __ICorDebugModule_FWD_DEFINED__ #define __ICorDebugModule_FWD_DEFINED__ typedef interface ICorDebugModule ICorDebugModule; -#endif /* __ICorDebugModule_FWD_DEFINED__ */ +#endif /* __ICorDebugModule_FWD_DEFINED__ */ #ifndef __ICorDebugModule2_FWD_DEFINED__ #define __ICorDebugModule2_FWD_DEFINED__ typedef interface ICorDebugModule2 ICorDebugModule2; -#endif /* __ICorDebugModule2_FWD_DEFINED__ */ +#endif /* __ICorDebugModule2_FWD_DEFINED__ */ #ifndef __ICorDebugFunction_FWD_DEFINED__ #define __ICorDebugFunction_FWD_DEFINED__ typedef interface ICorDebugFunction ICorDebugFunction; -#endif /* __ICorDebugFunction_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction_FWD_DEFINED__ */ #ifndef __ICorDebugFunction2_FWD_DEFINED__ #define __ICorDebugFunction2_FWD_DEFINED__ typedef interface ICorDebugFunction2 ICorDebugFunction2; -#endif /* __ICorDebugFunction2_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction2_FWD_DEFINED__ */ #ifndef __ICorDebugFunction3_FWD_DEFINED__ #define __ICorDebugFunction3_FWD_DEFINED__ typedef interface ICorDebugFunction3 ICorDebugFunction3; -#endif /* __ICorDebugFunction3_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction3_FWD_DEFINED__ */ #ifndef __ICorDebugFunction4_FWD_DEFINED__ #define __ICorDebugFunction4_FWD_DEFINED__ typedef interface ICorDebugFunction4 ICorDebugFunction4; -#endif /* __ICorDebugFunction4_FWD_DEFINED__ */ - - -#ifndef __ICorDebugFunction5_FWD_DEFINED__ -#define __ICorDebugFunction5_FWD_DEFINED__ -typedef interface ICorDebugFunction5 ICorDebugFunction5; - -#endif /* __ICorDebugFunction5_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction4_FWD_DEFINED__ */ #ifndef __ICorDebugCode_FWD_DEFINED__ #define __ICorDebugCode_FWD_DEFINED__ typedef interface ICorDebugCode ICorDebugCode; -#endif /* __ICorDebugCode_FWD_DEFINED__ */ +#endif /* __ICorDebugCode_FWD_DEFINED__ */ #ifndef __ICorDebugCode2_FWD_DEFINED__ #define __ICorDebugCode2_FWD_DEFINED__ typedef interface ICorDebugCode2 ICorDebugCode2; -#endif /* __ICorDebugCode2_FWD_DEFINED__ */ +#endif /* __ICorDebugCode2_FWD_DEFINED__ */ #ifndef __ICorDebugCode3_FWD_DEFINED__ #define __ICorDebugCode3_FWD_DEFINED__ typedef interface ICorDebugCode3 ICorDebugCode3; -#endif /* __ICorDebugCode3_FWD_DEFINED__ */ +#endif /* __ICorDebugCode3_FWD_DEFINED__ */ #ifndef __ICorDebugCode4_FWD_DEFINED__ #define __ICorDebugCode4_FWD_DEFINED__ typedef interface ICorDebugCode4 ICorDebugCode4; -#endif /* __ICorDebugCode4_FWD_DEFINED__ */ +#endif /* __ICorDebugCode4_FWD_DEFINED__ */ #ifndef __ICorDebugILCode_FWD_DEFINED__ #define __ICorDebugILCode_FWD_DEFINED__ typedef interface ICorDebugILCode ICorDebugILCode; -#endif /* __ICorDebugILCode_FWD_DEFINED__ */ +#endif /* __ICorDebugILCode_FWD_DEFINED__ */ #ifndef __ICorDebugILCode2_FWD_DEFINED__ #define __ICorDebugILCode2_FWD_DEFINED__ typedef interface ICorDebugILCode2 ICorDebugILCode2; -#endif /* __ICorDebugILCode2_FWD_DEFINED__ */ +#endif /* __ICorDebugILCode2_FWD_DEFINED__ */ #ifndef __ICorDebugClass_FWD_DEFINED__ #define __ICorDebugClass_FWD_DEFINED__ typedef interface ICorDebugClass ICorDebugClass; -#endif /* __ICorDebugClass_FWD_DEFINED__ */ +#endif /* __ICorDebugClass_FWD_DEFINED__ */ #ifndef __ICorDebugClass2_FWD_DEFINED__ #define __ICorDebugClass2_FWD_DEFINED__ typedef interface ICorDebugClass2 ICorDebugClass2; -#endif /* __ICorDebugClass2_FWD_DEFINED__ */ +#endif /* __ICorDebugClass2_FWD_DEFINED__ */ #ifndef __ICorDebugEval_FWD_DEFINED__ #define __ICorDebugEval_FWD_DEFINED__ typedef interface ICorDebugEval ICorDebugEval; -#endif /* __ICorDebugEval_FWD_DEFINED__ */ +#endif /* __ICorDebugEval_FWD_DEFINED__ */ #ifndef __ICorDebugEval2_FWD_DEFINED__ #define __ICorDebugEval2_FWD_DEFINED__ typedef interface ICorDebugEval2 ICorDebugEval2; -#endif /* __ICorDebugEval2_FWD_DEFINED__ */ +#endif /* __ICorDebugEval2_FWD_DEFINED__ */ #ifndef __ICorDebugValue_FWD_DEFINED__ #define __ICorDebugValue_FWD_DEFINED__ typedef interface ICorDebugValue ICorDebugValue; -#endif /* __ICorDebugValue_FWD_DEFINED__ */ +#endif /* __ICorDebugValue_FWD_DEFINED__ */ #ifndef __ICorDebugValue2_FWD_DEFINED__ #define __ICorDebugValue2_FWD_DEFINED__ typedef interface ICorDebugValue2 ICorDebugValue2; -#endif /* __ICorDebugValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugValue2_FWD_DEFINED__ */ #ifndef __ICorDebugValue3_FWD_DEFINED__ #define __ICorDebugValue3_FWD_DEFINED__ typedef interface ICorDebugValue3 ICorDebugValue3; -#endif /* __ICorDebugValue3_FWD_DEFINED__ */ +#endif /* __ICorDebugValue3_FWD_DEFINED__ */ #ifndef __ICorDebugGenericValue_FWD_DEFINED__ #define __ICorDebugGenericValue_FWD_DEFINED__ typedef interface ICorDebugGenericValue ICorDebugGenericValue; -#endif /* __ICorDebugGenericValue_FWD_DEFINED__ */ +#endif /* __ICorDebugGenericValue_FWD_DEFINED__ */ #ifndef __ICorDebugReferenceValue_FWD_DEFINED__ #define __ICorDebugReferenceValue_FWD_DEFINED__ typedef interface ICorDebugReferenceValue ICorDebugReferenceValue; -#endif /* __ICorDebugReferenceValue_FWD_DEFINED__ */ +#endif /* __ICorDebugReferenceValue_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue_FWD_DEFINED__ #define __ICorDebugHeapValue_FWD_DEFINED__ typedef interface ICorDebugHeapValue ICorDebugHeapValue; -#endif /* __ICorDebugHeapValue_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue2_FWD_DEFINED__ #define __ICorDebugHeapValue2_FWD_DEFINED__ typedef interface ICorDebugHeapValue2 ICorDebugHeapValue2; -#endif /* __ICorDebugHeapValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue2_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue3_FWD_DEFINED__ #define __ICorDebugHeapValue3_FWD_DEFINED__ typedef interface ICorDebugHeapValue3 ICorDebugHeapValue3; -#endif /* __ICorDebugHeapValue3_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue3_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue4_FWD_DEFINED__ #define __ICorDebugHeapValue4_FWD_DEFINED__ typedef interface ICorDebugHeapValue4 ICorDebugHeapValue4; -#endif /* __ICorDebugHeapValue4_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue4_FWD_DEFINED__ */ #ifndef __ICorDebugObjectValue_FWD_DEFINED__ #define __ICorDebugObjectValue_FWD_DEFINED__ typedef interface ICorDebugObjectValue ICorDebugObjectValue; -#endif /* __ICorDebugObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugObjectValue_FWD_DEFINED__ */ #ifndef __ICorDebugObjectValue2_FWD_DEFINED__ #define __ICorDebugObjectValue2_FWD_DEFINED__ typedef interface ICorDebugObjectValue2 ICorDebugObjectValue2; -#endif /* __ICorDebugObjectValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugObjectValue2_FWD_DEFINED__ */ #ifndef __ICorDebugDelegateObjectValue_FWD_DEFINED__ #define __ICorDebugDelegateObjectValue_FWD_DEFINED__ typedef interface ICorDebugDelegateObjectValue ICorDebugDelegateObjectValue; -#endif /* __ICorDebugDelegateObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugDelegateObjectValue_FWD_DEFINED__ */ #ifndef __ICorDebugBoxValue_FWD_DEFINED__ #define __ICorDebugBoxValue_FWD_DEFINED__ typedef interface ICorDebugBoxValue ICorDebugBoxValue; -#endif /* __ICorDebugBoxValue_FWD_DEFINED__ */ +#endif /* __ICorDebugBoxValue_FWD_DEFINED__ */ #ifndef __ICorDebugStringValue_FWD_DEFINED__ #define __ICorDebugStringValue_FWD_DEFINED__ typedef interface ICorDebugStringValue ICorDebugStringValue; -#endif /* __ICorDebugStringValue_FWD_DEFINED__ */ +#endif /* __ICorDebugStringValue_FWD_DEFINED__ */ #ifndef __ICorDebugArrayValue_FWD_DEFINED__ #define __ICorDebugArrayValue_FWD_DEFINED__ typedef interface ICorDebugArrayValue ICorDebugArrayValue; -#endif /* __ICorDebugArrayValue_FWD_DEFINED__ */ +#endif /* __ICorDebugArrayValue_FWD_DEFINED__ */ #ifndef __ICorDebugVariableHome_FWD_DEFINED__ #define __ICorDebugVariableHome_FWD_DEFINED__ typedef interface ICorDebugVariableHome ICorDebugVariableHome; -#endif /* __ICorDebugVariableHome_FWD_DEFINED__ */ +#endif /* __ICorDebugVariableHome_FWD_DEFINED__ */ #ifndef __ICorDebugHandleValue_FWD_DEFINED__ #define __ICorDebugHandleValue_FWD_DEFINED__ typedef interface ICorDebugHandleValue ICorDebugHandleValue; -#endif /* __ICorDebugHandleValue_FWD_DEFINED__ */ +#endif /* __ICorDebugHandleValue_FWD_DEFINED__ */ #ifndef __ICorDebugContext_FWD_DEFINED__ #define __ICorDebugContext_FWD_DEFINED__ typedef interface ICorDebugContext ICorDebugContext; -#endif /* __ICorDebugContext_FWD_DEFINED__ */ +#endif /* __ICorDebugContext_FWD_DEFINED__ */ #ifndef __ICorDebugComObjectValue_FWD_DEFINED__ #define __ICorDebugComObjectValue_FWD_DEFINED__ typedef interface ICorDebugComObjectValue ICorDebugComObjectValue; -#endif /* __ICorDebugComObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugComObjectValue_FWD_DEFINED__ */ #ifndef __ICorDebugObjectEnum_FWD_DEFINED__ #define __ICorDebugObjectEnum_FWD_DEFINED__ typedef interface ICorDebugObjectEnum ICorDebugObjectEnum; -#endif /* __ICorDebugObjectEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugObjectEnum_FWD_DEFINED__ */ #ifndef __ICorDebugBreakpointEnum_FWD_DEFINED__ #define __ICorDebugBreakpointEnum_FWD_DEFINED__ typedef interface ICorDebugBreakpointEnum ICorDebugBreakpointEnum; -#endif /* __ICorDebugBreakpointEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugBreakpointEnum_FWD_DEFINED__ */ #ifndef __ICorDebugStepperEnum_FWD_DEFINED__ #define __ICorDebugStepperEnum_FWD_DEFINED__ typedef interface ICorDebugStepperEnum ICorDebugStepperEnum; -#endif /* __ICorDebugStepperEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugStepperEnum_FWD_DEFINED__ */ #ifndef __ICorDebugProcessEnum_FWD_DEFINED__ #define __ICorDebugProcessEnum_FWD_DEFINED__ typedef interface ICorDebugProcessEnum ICorDebugProcessEnum; -#endif /* __ICorDebugProcessEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugProcessEnum_FWD_DEFINED__ */ #ifndef __ICorDebugThreadEnum_FWD_DEFINED__ #define __ICorDebugThreadEnum_FWD_DEFINED__ typedef interface ICorDebugThreadEnum ICorDebugThreadEnum; -#endif /* __ICorDebugThreadEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugThreadEnum_FWD_DEFINED__ */ #ifndef __ICorDebugFrameEnum_FWD_DEFINED__ #define __ICorDebugFrameEnum_FWD_DEFINED__ typedef interface ICorDebugFrameEnum ICorDebugFrameEnum; -#endif /* __ICorDebugFrameEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugFrameEnum_FWD_DEFINED__ */ #ifndef __ICorDebugChainEnum_FWD_DEFINED__ #define __ICorDebugChainEnum_FWD_DEFINED__ typedef interface ICorDebugChainEnum ICorDebugChainEnum; -#endif /* __ICorDebugChainEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugChainEnum_FWD_DEFINED__ */ #ifndef __ICorDebugModuleEnum_FWD_DEFINED__ #define __ICorDebugModuleEnum_FWD_DEFINED__ typedef interface ICorDebugModuleEnum ICorDebugModuleEnum; -#endif /* __ICorDebugModuleEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugModuleEnum_FWD_DEFINED__ */ #ifndef __ICorDebugValueEnum_FWD_DEFINED__ #define __ICorDebugValueEnum_FWD_DEFINED__ typedef interface ICorDebugValueEnum ICorDebugValueEnum; -#endif /* __ICorDebugValueEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugValueEnum_FWD_DEFINED__ */ #ifndef __ICorDebugVariableHomeEnum_FWD_DEFINED__ #define __ICorDebugVariableHomeEnum_FWD_DEFINED__ typedef interface ICorDebugVariableHomeEnum ICorDebugVariableHomeEnum; -#endif /* __ICorDebugVariableHomeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugVariableHomeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugCodeEnum_FWD_DEFINED__ #define __ICorDebugCodeEnum_FWD_DEFINED__ typedef interface ICorDebugCodeEnum ICorDebugCodeEnum; -#endif /* __ICorDebugCodeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugCodeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugTypeEnum_FWD_DEFINED__ #define __ICorDebugTypeEnum_FWD_DEFINED__ typedef interface ICorDebugTypeEnum ICorDebugTypeEnum; -#endif /* __ICorDebugTypeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugTypeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugType_FWD_DEFINED__ #define __ICorDebugType_FWD_DEFINED__ typedef interface ICorDebugType ICorDebugType; -#endif /* __ICorDebugType_FWD_DEFINED__ */ +#endif /* __ICorDebugType_FWD_DEFINED__ */ #ifndef __ICorDebugType2_FWD_DEFINED__ #define __ICorDebugType2_FWD_DEFINED__ typedef interface ICorDebugType2 ICorDebugType2; -#endif /* __ICorDebugType2_FWD_DEFINED__ */ +#endif /* __ICorDebugType2_FWD_DEFINED__ */ #ifndef __ICorDebugErrorInfoEnum_FWD_DEFINED__ #define __ICorDebugErrorInfoEnum_FWD_DEFINED__ typedef interface ICorDebugErrorInfoEnum ICorDebugErrorInfoEnum; -#endif /* __ICorDebugErrorInfoEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugErrorInfoEnum_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomainEnum_FWD_DEFINED__ #define __ICorDebugAppDomainEnum_FWD_DEFINED__ typedef interface ICorDebugAppDomainEnum ICorDebugAppDomainEnum; -#endif /* __ICorDebugAppDomainEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomainEnum_FWD_DEFINED__ */ #ifndef __ICorDebugAssemblyEnum_FWD_DEFINED__ #define __ICorDebugAssemblyEnum_FWD_DEFINED__ typedef interface ICorDebugAssemblyEnum ICorDebugAssemblyEnum; -#endif /* __ICorDebugAssemblyEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugAssemblyEnum_FWD_DEFINED__ */ #ifndef __ICorDebugBlockingObjectEnum_FWD_DEFINED__ #define __ICorDebugBlockingObjectEnum_FWD_DEFINED__ typedef interface ICorDebugBlockingObjectEnum ICorDebugBlockingObjectEnum; -#endif /* __ICorDebugBlockingObjectEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugBlockingObjectEnum_FWD_DEFINED__ */ #ifndef __ICorDebugMDA_FWD_DEFINED__ #define __ICorDebugMDA_FWD_DEFINED__ typedef interface ICorDebugMDA ICorDebugMDA; -#endif /* __ICorDebugMDA_FWD_DEFINED__ */ +#endif /* __ICorDebugMDA_FWD_DEFINED__ */ #ifndef __ICorDebugEditAndContinueErrorInfo_FWD_DEFINED__ #define __ICorDebugEditAndContinueErrorInfo_FWD_DEFINED__ typedef interface ICorDebugEditAndContinueErrorInfo ICorDebugEditAndContinueErrorInfo; -#endif /* __ICorDebugEditAndContinueErrorInfo_FWD_DEFINED__ */ +#endif /* __ICorDebugEditAndContinueErrorInfo_FWD_DEFINED__ */ #ifndef __ICorDebugEditAndContinueSnapshot_FWD_DEFINED__ #define __ICorDebugEditAndContinueSnapshot_FWD_DEFINED__ typedef interface ICorDebugEditAndContinueSnapshot ICorDebugEditAndContinueSnapshot; -#endif /* __ICorDebugEditAndContinueSnapshot_FWD_DEFINED__ */ +#endif /* __ICorDebugEditAndContinueSnapshot_FWD_DEFINED__ */ #ifndef __ICorDebugExceptionObjectCallStackEnum_FWD_DEFINED__ #define __ICorDebugExceptionObjectCallStackEnum_FWD_DEFINED__ typedef interface ICorDebugExceptionObjectCallStackEnum ICorDebugExceptionObjectCallStackEnum; -#endif /* __ICorDebugExceptionObjectCallStackEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugExceptionObjectCallStackEnum_FWD_DEFINED__ */ #ifndef __ICorDebugExceptionObjectValue_FWD_DEFINED__ #define __ICorDebugExceptionObjectValue_FWD_DEFINED__ typedef interface ICorDebugExceptionObjectValue ICorDebugExceptionObjectValue; -#endif /* __ICorDebugExceptionObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugExceptionObjectValue_FWD_DEFINED__ */ #ifndef __CorDebug_FWD_DEFINED__ @@ -1012,7 +998,7 @@ typedef class CorDebug CorDebug; typedef struct CorDebug CorDebug; #endif /* __cplusplus */ -#endif /* __CorDebug_FWD_DEFINED__ */ +#endif /* __CorDebug_FWD_DEFINED__ */ #ifndef __EmbeddedCLRCorDebug_FWD_DEFINED__ @@ -1024,238 +1010,238 @@ typedef class EmbeddedCLRCorDebug EmbeddedCLRCorDebug; typedef struct EmbeddedCLRCorDebug EmbeddedCLRCorDebug; #endif /* __cplusplus */ -#endif /* __EmbeddedCLRCorDebug_FWD_DEFINED__ */ +#endif /* __EmbeddedCLRCorDebug_FWD_DEFINED__ */ #ifndef __ICorDebugValue_FWD_DEFINED__ #define __ICorDebugValue_FWD_DEFINED__ typedef interface ICorDebugValue ICorDebugValue; -#endif /* __ICorDebugValue_FWD_DEFINED__ */ +#endif /* __ICorDebugValue_FWD_DEFINED__ */ #ifndef __ICorDebugReferenceValue_FWD_DEFINED__ #define __ICorDebugReferenceValue_FWD_DEFINED__ typedef interface ICorDebugReferenceValue ICorDebugReferenceValue; -#endif /* __ICorDebugReferenceValue_FWD_DEFINED__ */ +#endif /* __ICorDebugReferenceValue_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue_FWD_DEFINED__ #define __ICorDebugHeapValue_FWD_DEFINED__ typedef interface ICorDebugHeapValue ICorDebugHeapValue; -#endif /* __ICorDebugHeapValue_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue_FWD_DEFINED__ */ #ifndef __ICorDebugStringValue_FWD_DEFINED__ #define __ICorDebugStringValue_FWD_DEFINED__ typedef interface ICorDebugStringValue ICorDebugStringValue; -#endif /* __ICorDebugStringValue_FWD_DEFINED__ */ +#endif /* __ICorDebugStringValue_FWD_DEFINED__ */ #ifndef __ICorDebugGenericValue_FWD_DEFINED__ #define __ICorDebugGenericValue_FWD_DEFINED__ typedef interface ICorDebugGenericValue ICorDebugGenericValue; -#endif /* __ICorDebugGenericValue_FWD_DEFINED__ */ +#endif /* __ICorDebugGenericValue_FWD_DEFINED__ */ #ifndef __ICorDebugBoxValue_FWD_DEFINED__ #define __ICorDebugBoxValue_FWD_DEFINED__ typedef interface ICorDebugBoxValue ICorDebugBoxValue; -#endif /* __ICorDebugBoxValue_FWD_DEFINED__ */ +#endif /* __ICorDebugBoxValue_FWD_DEFINED__ */ #ifndef __ICorDebugArrayValue_FWD_DEFINED__ #define __ICorDebugArrayValue_FWD_DEFINED__ typedef interface ICorDebugArrayValue ICorDebugArrayValue; -#endif /* __ICorDebugArrayValue_FWD_DEFINED__ */ +#endif /* __ICorDebugArrayValue_FWD_DEFINED__ */ #ifndef __ICorDebugFrame_FWD_DEFINED__ #define __ICorDebugFrame_FWD_DEFINED__ typedef interface ICorDebugFrame ICorDebugFrame; -#endif /* __ICorDebugFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugFrame_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame_FWD_DEFINED__ #define __ICorDebugILFrame_FWD_DEFINED__ typedef interface ICorDebugILFrame ICorDebugILFrame; -#endif /* __ICorDebugILFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame_FWD_DEFINED__ */ #ifndef __ICorDebugInternalFrame_FWD_DEFINED__ #define __ICorDebugInternalFrame_FWD_DEFINED__ typedef interface ICorDebugInternalFrame ICorDebugInternalFrame; -#endif /* __ICorDebugInternalFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugInternalFrame_FWD_DEFINED__ */ #ifndef __ICorDebugInternalFrame2_FWD_DEFINED__ #define __ICorDebugInternalFrame2_FWD_DEFINED__ typedef interface ICorDebugInternalFrame2 ICorDebugInternalFrame2; -#endif /* __ICorDebugInternalFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugInternalFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugNativeFrame_FWD_DEFINED__ #define __ICorDebugNativeFrame_FWD_DEFINED__ typedef interface ICorDebugNativeFrame ICorDebugNativeFrame; -#endif /* __ICorDebugNativeFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugNativeFrame_FWD_DEFINED__ */ #ifndef __ICorDebugNativeFrame2_FWD_DEFINED__ #define __ICorDebugNativeFrame2_FWD_DEFINED__ typedef interface ICorDebugNativeFrame2 ICorDebugNativeFrame2; -#endif /* __ICorDebugNativeFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugNativeFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ #define __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ typedef interface ICorDebugRuntimeUnwindableFrame ICorDebugRuntimeUnwindableFrame; -#endif /* __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback2_FWD_DEFINED__ #define __ICorDebugManagedCallback2_FWD_DEFINED__ typedef interface ICorDebugManagedCallback2 ICorDebugManagedCallback2; -#endif /* __ICorDebugManagedCallback2_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback2_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain2_FWD_DEFINED__ #define __ICorDebugAppDomain2_FWD_DEFINED__ typedef interface ICorDebugAppDomain2 ICorDebugAppDomain2; -#endif /* __ICorDebugAppDomain2_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain2_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain3_FWD_DEFINED__ #define __ICorDebugAppDomain3_FWD_DEFINED__ typedef interface ICorDebugAppDomain3 ICorDebugAppDomain3; -#endif /* __ICorDebugAppDomain3_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain3_FWD_DEFINED__ */ #ifndef __ICorDebugAssembly2_FWD_DEFINED__ #define __ICorDebugAssembly2_FWD_DEFINED__ typedef interface ICorDebugAssembly2 ICorDebugAssembly2; -#endif /* __ICorDebugAssembly2_FWD_DEFINED__ */ +#endif /* __ICorDebugAssembly2_FWD_DEFINED__ */ #ifndef __ICorDebugProcess2_FWD_DEFINED__ #define __ICorDebugProcess2_FWD_DEFINED__ typedef interface ICorDebugProcess2 ICorDebugProcess2; -#endif /* __ICorDebugProcess2_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess2_FWD_DEFINED__ */ #ifndef __ICorDebugStepper2_FWD_DEFINED__ #define __ICorDebugStepper2_FWD_DEFINED__ typedef interface ICorDebugStepper2 ICorDebugStepper2; -#endif /* __ICorDebugStepper2_FWD_DEFINED__ */ +#endif /* __ICorDebugStepper2_FWD_DEFINED__ */ #ifndef __ICorDebugThread2_FWD_DEFINED__ #define __ICorDebugThread2_FWD_DEFINED__ typedef interface ICorDebugThread2 ICorDebugThread2; -#endif /* __ICorDebugThread2_FWD_DEFINED__ */ +#endif /* __ICorDebugThread2_FWD_DEFINED__ */ #ifndef __ICorDebugThread3_FWD_DEFINED__ #define __ICorDebugThread3_FWD_DEFINED__ typedef interface ICorDebugThread3 ICorDebugThread3; -#endif /* __ICorDebugThread3_FWD_DEFINED__ */ +#endif /* __ICorDebugThread3_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame2_FWD_DEFINED__ #define __ICorDebugILFrame2_FWD_DEFINED__ typedef interface ICorDebugILFrame2 ICorDebugILFrame2; -#endif /* __ICorDebugILFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugModule2_FWD_DEFINED__ #define __ICorDebugModule2_FWD_DEFINED__ typedef interface ICorDebugModule2 ICorDebugModule2; -#endif /* __ICorDebugModule2_FWD_DEFINED__ */ +#endif /* __ICorDebugModule2_FWD_DEFINED__ */ #ifndef __ICorDebugFunction2_FWD_DEFINED__ #define __ICorDebugFunction2_FWD_DEFINED__ typedef interface ICorDebugFunction2 ICorDebugFunction2; -#endif /* __ICorDebugFunction2_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction2_FWD_DEFINED__ */ #ifndef __ICorDebugClass2_FWD_DEFINED__ #define __ICorDebugClass2_FWD_DEFINED__ typedef interface ICorDebugClass2 ICorDebugClass2; -#endif /* __ICorDebugClass2_FWD_DEFINED__ */ +#endif /* __ICorDebugClass2_FWD_DEFINED__ */ #ifndef __ICorDebugEval2_FWD_DEFINED__ #define __ICorDebugEval2_FWD_DEFINED__ typedef interface ICorDebugEval2 ICorDebugEval2; -#endif /* __ICorDebugEval2_FWD_DEFINED__ */ +#endif /* __ICorDebugEval2_FWD_DEFINED__ */ #ifndef __ICorDebugValue2_FWD_DEFINED__ #define __ICorDebugValue2_FWD_DEFINED__ typedef interface ICorDebugValue2 ICorDebugValue2; -#endif /* __ICorDebugValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugValue2_FWD_DEFINED__ */ #ifndef __ICorDebugObjectValue2_FWD_DEFINED__ #define __ICorDebugObjectValue2_FWD_DEFINED__ typedef interface ICorDebugObjectValue2 ICorDebugObjectValue2; -#endif /* __ICorDebugObjectValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugObjectValue2_FWD_DEFINED__ */ #ifndef __ICorDebugHandleValue_FWD_DEFINED__ #define __ICorDebugHandleValue_FWD_DEFINED__ typedef interface ICorDebugHandleValue ICorDebugHandleValue; -#endif /* __ICorDebugHandleValue_FWD_DEFINED__ */ +#endif /* __ICorDebugHandleValue_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue2_FWD_DEFINED__ #define __ICorDebugHeapValue2_FWD_DEFINED__ typedef interface ICorDebugHeapValue2 ICorDebugHeapValue2; -#endif /* __ICorDebugHeapValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue2_FWD_DEFINED__ */ #ifndef __ICorDebugComObjectValue_FWD_DEFINED__ #define __ICorDebugComObjectValue_FWD_DEFINED__ typedef interface ICorDebugComObjectValue ICorDebugComObjectValue; -#endif /* __ICorDebugComObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugComObjectValue_FWD_DEFINED__ */ #ifndef __ICorDebugModule3_FWD_DEFINED__ #define __ICorDebugModule3_FWD_DEFINED__ typedef interface ICorDebugModule3 ICorDebugModule3; -#endif /* __ICorDebugModule3_FWD_DEFINED__ */ +#endif /* __ICorDebugModule3_FWD_DEFINED__ */ /* header files for imported files */ @@ -1264,11 +1250,11 @@ typedef interface ICorDebugModule3 ICorDebugModule3; #ifdef __cplusplus extern "C"{ -#endif +#endif /* interface __MIDL_itf_cordebug_0000_0000 */ -/* [local] */ +/* [local] */ #if 0 typedef UINT32 mdToken; @@ -1317,50 +1303,50 @@ typedef struct _COR_IL_MAP ULONG32 oldOffset; ULONG32 newOffset; BOOL fAccurate; - } COR_IL_MAP; + } COR_IL_MAP; #endif //_COR_IL_MAP #ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_ #define _COR_DEBUG_IL_TO_NATIVE_MAP_ -typedef +typedef enum CorDebugIlToNativeMappingTypes { - NO_MAPPING = -1, - PROLOG = -2, - EPILOG = -3 - } CorDebugIlToNativeMappingTypes; + NO_MAPPING = -1, + PROLOG = -2, + EPILOG = -3 + } CorDebugIlToNativeMappingTypes; typedef struct COR_DEBUG_IL_TO_NATIVE_MAP { ULONG32 ilOffset; ULONG32 nativeStartOffset; ULONG32 nativeEndOffset; - } COR_DEBUG_IL_TO_NATIVE_MAP; + } COR_DEBUG_IL_TO_NATIVE_MAP; #endif // _COR_DEBUG_IL_TO_NATIVE_MAP_ #define REMOTE_DEBUGGING_DLL_ENTRY L"Software\\Microsoft\\.NETFramework\\Debugger\\ActivateRemoteDebugging" -typedef +typedef enum CorDebugJITCompilerFlags { - CORDEBUG_JIT_DEFAULT = 0x1, - CORDEBUG_JIT_DISABLE_OPTIMIZATION = 0x3, - CORDEBUG_JIT_ENABLE_ENC = 0x7 - } CorDebugJITCompilerFlags; + CORDEBUG_JIT_DEFAULT = 0x1, + CORDEBUG_JIT_DISABLE_OPTIMIZATION = 0x3, + CORDEBUG_JIT_ENABLE_ENC = 0x7 + } CorDebugJITCompilerFlags; -typedef +typedef enum CorDebugJITCompilerFlagsDecprecated { - CORDEBUG_JIT_TRACK_DEBUG_INFO = 0x1 - } CorDebugJITCompilerFlagsDeprecated; + CORDEBUG_JIT_TRACK_DEBUG_INFO = 0x1 + } CorDebugJITCompilerFlagsDeprecated; -typedef +typedef enum CorDebugNGENPolicy { - DISABLE_LOCAL_NIC = 1 - } CorDebugNGENPolicy; + DISABLE_LOCAL_NIC = 1 + } CorDebugNGENPolicy; #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) @@ -1435,20 +1421,20 @@ typedef ULONG64 CORDB_REGISTER; typedef DWORD CORDB_CONTINUE_STATUS; -typedef +typedef enum CorDebugBlockingReason { - BLOCKING_NONE = 0, - BLOCKING_MONITOR_CRITICAL_SECTION = 0x1, - BLOCKING_MONITOR_EVENT = 0x2 - } CorDebugBlockingReason; + BLOCKING_NONE = 0, + BLOCKING_MONITOR_CRITICAL_SECTION = 0x1, + BLOCKING_MONITOR_EVENT = 0x2 + } CorDebugBlockingReason; typedef struct CorDebugBlockingObject { ICorDebugValue *pBlockingObject; DWORD dwTimeout; CorDebugBlockingReason blockingReason; - } CorDebugBlockingObject; + } CorDebugBlockingObject; typedef struct CorDebugExceptionObjectStackFrame { @@ -1456,13 +1442,13 @@ typedef struct CorDebugExceptionObjectStackFrame CORDB_ADDRESS ip; mdMethodDef methodDef; BOOL isLastForeignExceptionFrame; - } CorDebugExceptionObjectStackFrame; + } CorDebugExceptionObjectStackFrame; typedef struct CorDebugGuidToTypeMapping { GUID iid; ICorDebugType *pType; - } CorDebugGuidToTypeMapping; + } CorDebugGuidToTypeMapping; @@ -1473,96 +1459,90 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0000_v0_0_s_ifspec; #define __ICorDebugDataTarget_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugPlatform { - CORDB_PLATFORM_WINDOWS_X86 = 0, - CORDB_PLATFORM_WINDOWS_AMD64 = ( CORDB_PLATFORM_WINDOWS_X86 + 1 ) , - CORDB_PLATFORM_WINDOWS_IA64 = ( CORDB_PLATFORM_WINDOWS_AMD64 + 1 ) , - CORDB_PLATFORM_MAC_PPC = ( CORDB_PLATFORM_WINDOWS_IA64 + 1 ) , - CORDB_PLATFORM_MAC_X86 = ( CORDB_PLATFORM_MAC_PPC + 1 ) , - CORDB_PLATFORM_WINDOWS_ARM = ( CORDB_PLATFORM_MAC_X86 + 1 ) , - CORDB_PLATFORM_MAC_AMD64 = ( CORDB_PLATFORM_WINDOWS_ARM + 1 ) , - CORDB_PLATFORM_WINDOWS_ARM64 = ( CORDB_PLATFORM_MAC_AMD64 + 1 ) , - CORDB_PLATFORM_POSIX_AMD64 = ( CORDB_PLATFORM_WINDOWS_ARM64 + 1 ) , - CORDB_PLATFORM_POSIX_X86 = ( CORDB_PLATFORM_POSIX_AMD64 + 1 ) , - CORDB_PLATFORM_POSIX_ARM = ( CORDB_PLATFORM_POSIX_X86 + 1 ) , - CORDB_PLATFORM_POSIX_ARM64 = ( CORDB_PLATFORM_POSIX_ARM + 1 ) , - CORDB_PLATFORM_POSIX_LOONGARCH64 = ( CORDB_PLATFORM_POSIX_ARM64 + 1 ) , - CORDB_PLATFORM_POSIX_RISCV64 = ( CORDB_PLATFORM_POSIX_LOONGARCH64 + 1 ) - } CorDebugPlatform; + CORDB_PLATFORM_WINDOWS_X86 = 0, + CORDB_PLATFORM_WINDOWS_AMD64 = ( CORDB_PLATFORM_WINDOWS_X86 + 1 ) , + CORDB_PLATFORM_WINDOWS_IA64 = ( CORDB_PLATFORM_WINDOWS_AMD64 + 1 ) , + CORDB_PLATFORM_MAC_PPC = ( CORDB_PLATFORM_WINDOWS_IA64 + 1 ) , + CORDB_PLATFORM_MAC_X86 = ( CORDB_PLATFORM_MAC_PPC + 1 ) , + CORDB_PLATFORM_WINDOWS_ARM = ( CORDB_PLATFORM_MAC_X86 + 1 ) , + CORDB_PLATFORM_MAC_AMD64 = ( CORDB_PLATFORM_WINDOWS_ARM + 1 ) , + CORDB_PLATFORM_WINDOWS_ARM64 = ( CORDB_PLATFORM_MAC_AMD64 + 1 ) , + CORDB_PLATFORM_POSIX_AMD64 = ( CORDB_PLATFORM_WINDOWS_ARM64 + 1 ) , + CORDB_PLATFORM_POSIX_X86 = ( CORDB_PLATFORM_POSIX_AMD64 + 1 ) , + CORDB_PLATFORM_POSIX_ARM = ( CORDB_PLATFORM_POSIX_X86 + 1 ) , + CORDB_PLATFORM_POSIX_ARM64 = ( CORDB_PLATFORM_POSIX_ARM + 1 ) , + CORDB_PLATFORM_POSIX_LOONGARCH64 = ( CORDB_PLATFORM_POSIX_ARM64 + 1 ) , + CORDB_PLATFORM_POSIX_RISCV64 = ( CORDB_PLATFORM_POSIX_LOONGARCH64 + 1 ) + } CorDebugPlatform; EXTERN_C const IID IID_ICorDebugDataTarget; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FE06DC28-49FB-4636-A4A3-E80DB4AE116C") ICorDebugDataTarget : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetPlatform( + virtual HRESULT STDMETHODCALLTYPE GetPlatform( /* [out] */ CorDebugPlatform *pTargetPlatform) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadVirtual( + + virtual HRESULT STDMETHODCALLTYPE ReadVirtual( /* [in] */ CORDB_ADDRESS address, /* [length_is][size_is][out] */ BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested, /* [out] */ ULONG32 *pBytesRead) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE GetThreadContext( /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextSize, /* [size_is][out] */ BYTE *pContext) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDataTargetVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget * This); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget, GetPlatform) - HRESULT ( STDMETHODCALLTYPE *GetPlatform )( + + HRESULT ( STDMETHODCALLTYPE *GetPlatform )( ICorDebugDataTarget * This, /* [out] */ CorDebugPlatform *pTargetPlatform); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget, ReadVirtual) - HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( + + HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( ICorDebugDataTarget * This, /* [in] */ CORDB_ADDRESS address, /* [length_is][size_is][out] */ BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested, /* [out] */ ULONG32 *pBytesRead); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget, GetThreadContext) - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugDataTarget * This, /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextSize, /* [size_is][out] */ BYTE *pContext); - + END_INTERFACE } ICorDebugDataTargetVtbl; @@ -1571,108 +1551,102 @@ EXTERN_C const IID IID_ICorDebugDataTarget; CONST_VTBL struct ICorDebugDataTargetVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDataTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDataTarget_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDataTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDataTarget_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDataTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDataTarget_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDataTarget_GetPlatform(This,pTargetPlatform) \ - ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) +#define ICorDebugDataTarget_GetPlatform(This,pTargetPlatform) \ + ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) -#define ICorDebugDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ - ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) +#define ICorDebugDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ + ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) -#define ICorDebugDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ - ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) +#define ICorDebugDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ + ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDataTarget_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDataTarget_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStaticFieldSymbol_INTERFACE_DEFINED__ #define __ICorDebugStaticFieldSymbol_INTERFACE_DEFINED__ /* interface ICorDebugStaticFieldSymbol */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStaticFieldSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CBF9DA63-F68D-4BBB-A21C-15A45EAADF5B") ICorDebugStaticFieldSymbol : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAddress( + + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pRVA) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStaticFieldSymbolVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStaticFieldSymbol * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStaticFieldSymbol * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStaticFieldSymbol * This); - - DECLSPEC_XFGVIRT(ICorDebugStaticFieldSymbol, GetName) - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugStaticFieldSymbol * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugStaticFieldSymbol, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugStaticFieldSymbol * This, /* [out] */ ULONG32 *pcbSize); - - DECLSPEC_XFGVIRT(ICorDebugStaticFieldSymbol, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugStaticFieldSymbol * This, /* [out] */ CORDB_ADDRESS *pRVA); - + END_INTERFACE } ICorDebugStaticFieldSymbolVtbl; @@ -1681,108 +1655,102 @@ EXTERN_C const IID IID_ICorDebugStaticFieldSymbol; CONST_VTBL struct ICorDebugStaticFieldSymbolVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStaticFieldSymbol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStaticFieldSymbol_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStaticFieldSymbol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStaticFieldSymbol_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStaticFieldSymbol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStaticFieldSymbol_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStaticFieldSymbol_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugStaticFieldSymbol_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugStaticFieldSymbol_GetSize(This,pcbSize) \ - ( (This)->lpVtbl -> GetSize(This,pcbSize) ) +#define ICorDebugStaticFieldSymbol_GetSize(This,pcbSize) \ + ( (This)->lpVtbl -> GetSize(This,pcbSize) ) -#define ICorDebugStaticFieldSymbol_GetAddress(This,pRVA) \ - ( (This)->lpVtbl -> GetAddress(This,pRVA) ) +#define ICorDebugStaticFieldSymbol_GetAddress(This,pRVA) \ + ( (This)->lpVtbl -> GetAddress(This,pRVA) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStaticFieldSymbol_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStaticFieldSymbol_INTERFACE_DEFINED__ */ #ifndef __ICorDebugInstanceFieldSymbol_INTERFACE_DEFINED__ #define __ICorDebugInstanceFieldSymbol_INTERFACE_DEFINED__ /* interface ICorDebugInstanceFieldSymbol */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugInstanceFieldSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A074096B-3ADC-4485-81DA-68C7A4EA52DB") ICorDebugInstanceFieldSymbol : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOffset( + + virtual HRESULT STDMETHODCALLTYPE GetOffset( /* [out] */ ULONG32 *pcbOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugInstanceFieldSymbolVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugInstanceFieldSymbol * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugInstanceFieldSymbol * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugInstanceFieldSymbol * This); - - DECLSPEC_XFGVIRT(ICorDebugInstanceFieldSymbol, GetName) - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugInstanceFieldSymbol * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugInstanceFieldSymbol, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugInstanceFieldSymbol * This, /* [out] */ ULONG32 *pcbSize); - - DECLSPEC_XFGVIRT(ICorDebugInstanceFieldSymbol, GetOffset) - HRESULT ( STDMETHODCALLTYPE *GetOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetOffset )( ICorDebugInstanceFieldSymbol * This, /* [out] */ ULONG32 *pcbOffset); - + END_INTERFACE } ICorDebugInstanceFieldSymbolVtbl; @@ -1791,121 +1759,115 @@ EXTERN_C const IID IID_ICorDebugInstanceFieldSymbol; CONST_VTBL struct ICorDebugInstanceFieldSymbolVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugInstanceFieldSymbol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugInstanceFieldSymbol_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugInstanceFieldSymbol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugInstanceFieldSymbol_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugInstanceFieldSymbol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugInstanceFieldSymbol_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugInstanceFieldSymbol_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugInstanceFieldSymbol_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugInstanceFieldSymbol_GetSize(This,pcbSize) \ - ( (This)->lpVtbl -> GetSize(This,pcbSize) ) +#define ICorDebugInstanceFieldSymbol_GetSize(This,pcbSize) \ + ( (This)->lpVtbl -> GetSize(This,pcbSize) ) -#define ICorDebugInstanceFieldSymbol_GetOffset(This,pcbOffset) \ - ( (This)->lpVtbl -> GetOffset(This,pcbOffset) ) +#define ICorDebugInstanceFieldSymbol_GetOffset(This,pcbOffset) \ + ( (This)->lpVtbl -> GetOffset(This,pcbOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugInstanceFieldSymbol_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugInstanceFieldSymbol_INTERFACE_DEFINED__ */ #ifndef __ICorDebugVariableSymbol_INTERFACE_DEFINED__ #define __ICorDebugVariableSymbol_INTERFACE_DEFINED__ /* interface ICorDebugVariableSymbol */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugVariableSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("707E8932-1163-48D9-8A93-F5B1F480FBB7") ICorDebugVariableSymbol : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetValue( + + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [in] */ ULONG32 offset, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE context[ ], /* [in] */ ULONG32 cbValue, /* [out] */ ULONG32 *pcbValue, /* [length_is][size_is][out] */ BYTE pValue[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetValue( + + virtual HRESULT STDMETHODCALLTYPE SetValue( /* [in] */ ULONG32 offset, /* [in] */ DWORD threadID, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE context[ ], /* [in] */ ULONG32 cbValue, /* [size_is][in] */ BYTE pValue[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( + + virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( /* [out] */ ULONG32 *pSlotIndex) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVariableSymbolVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVariableSymbol * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVariableSymbol * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVariableSymbol * This); - - DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, GetName) - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugVariableSymbol * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugVariableSymbol * This, /* [out] */ ULONG32 *pcbValue); - - DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, GetValue) - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugVariableSymbol * This, /* [in] */ ULONG32 offset, /* [in] */ ULONG32 cbContext, @@ -1913,9 +1875,8 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; /* [in] */ ULONG32 cbValue, /* [out] */ ULONG32 *pcbValue, /* [length_is][size_is][out] */ BYTE pValue[ ]); - - DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, SetValue) - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugVariableSymbol * This, /* [in] */ ULONG32 offset, /* [in] */ DWORD threadID, @@ -1923,12 +1884,11 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; /* [size_is][in] */ BYTE context[ ], /* [in] */ ULONG32 cbValue, /* [size_is][in] */ BYTE pValue[ ]); - - DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, GetSlotIndex) - HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( + + HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( ICorDebugVariableSymbol * This, /* [out] */ ULONG32 *pSlotIndex); - + END_INTERFACE } ICorDebugVariableSymbolVtbl; @@ -1937,102 +1897,97 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; CONST_VTBL struct ICorDebugVariableSymbolVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugVariableSymbol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugVariableSymbol_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugVariableSymbol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugVariableSymbol_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugVariableSymbol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugVariableSymbol_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugVariableSymbol_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugVariableSymbol_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugVariableSymbol_GetSize(This,pcbValue) \ - ( (This)->lpVtbl -> GetSize(This,pcbValue) ) +#define ICorDebugVariableSymbol_GetSize(This,pcbValue) \ + ( (This)->lpVtbl -> GetSize(This,pcbValue) ) -#define ICorDebugVariableSymbol_GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) \ - ( (This)->lpVtbl -> GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) ) +#define ICorDebugVariableSymbol_GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) \ + ( (This)->lpVtbl -> GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) ) -#define ICorDebugVariableSymbol_SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) \ - ( (This)->lpVtbl -> SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) ) +#define ICorDebugVariableSymbol_SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) \ + ( (This)->lpVtbl -> SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) ) -#define ICorDebugVariableSymbol_GetSlotIndex(This,pSlotIndex) \ - ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) +#define ICorDebugVariableSymbol_GetSlotIndex(This,pSlotIndex) \ + ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugVariableSymbol_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugVariableSymbol_INTERFACE_DEFINED__ */ #ifndef __ICorDebugMemoryBuffer_INTERFACE_DEFINED__ #define __ICorDebugMemoryBuffer_INTERFACE_DEFINED__ /* interface ICorDebugMemoryBuffer */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugMemoryBuffer; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("677888B3-D160-4B8C-A73B-D79E6AAA1D13") ICorDebugMemoryBuffer : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetStartAddress( + virtual HRESULT STDMETHODCALLTYPE GetStartAddress( /* [out] */ LPCVOID *address) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbBufferLength) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMemoryBufferVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMemoryBuffer * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMemoryBuffer * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMemoryBuffer * This); - - DECLSPEC_XFGVIRT(ICorDebugMemoryBuffer, GetStartAddress) - HRESULT ( STDMETHODCALLTYPE *GetStartAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetStartAddress )( ICorDebugMemoryBuffer * This, /* [out] */ LPCVOID *address); - - DECLSPEC_XFGVIRT(ICorDebugMemoryBuffer, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugMemoryBuffer * This, /* [out] */ ULONG32 *pcbBufferLength); - + END_INTERFACE } ICorDebugMemoryBufferVtbl; @@ -2041,147 +1996,138 @@ EXTERN_C const IID IID_ICorDebugMemoryBuffer; CONST_VTBL struct ICorDebugMemoryBufferVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMemoryBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMemoryBuffer_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMemoryBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMemoryBuffer_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMemoryBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMemoryBuffer_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMemoryBuffer_GetStartAddress(This,address) \ - ( (This)->lpVtbl -> GetStartAddress(This,address) ) +#define ICorDebugMemoryBuffer_GetStartAddress(This,address) \ + ( (This)->lpVtbl -> GetStartAddress(This,address) ) -#define ICorDebugMemoryBuffer_GetSize(This,pcbBufferLength) \ - ( (This)->lpVtbl -> GetSize(This,pcbBufferLength) ) +#define ICorDebugMemoryBuffer_GetSize(This,pcbBufferLength) \ + ( (This)->lpVtbl -> GetSize(This,pcbBufferLength) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMemoryBuffer_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMemoryBuffer_INTERFACE_DEFINED__ */ #ifndef __ICorDebugMergedAssemblyRecord_INTERFACE_DEFINED__ #define __ICorDebugMergedAssemblyRecord_INTERFACE_DEFINED__ /* interface ICorDebugMergedAssemblyRecord */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugMergedAssemblyRecord; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FAA8637B-3BBE-4671-8E26-3B59875B922A") ICorDebugMergedAssemblyRecord : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetSimpleName( + virtual HRESULT STDMETHODCALLTYPE GetSimpleName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersion( + + virtual HRESULT STDMETHODCALLTYPE GetVersion( /* [out] */ USHORT *pMajor, /* [out] */ USHORT *pMinor, /* [out] */ USHORT *pBuild, /* [out] */ USHORT *pRevision) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCulture( + + virtual HRESULT STDMETHODCALLTYPE GetCulture( /* [in] */ ULONG32 cchCulture, /* [out] */ ULONG32 *pcchCulture, /* [length_is][size_is][out] */ WCHAR szCulture[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPublicKey( + + virtual HRESULT STDMETHODCALLTYPE GetPublicKey( /* [in] */ ULONG32 cbPublicKey, /* [out] */ ULONG32 *pcbPublicKey, /* [length_is][size_is][out] */ BYTE pbPublicKey[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPublicKeyToken( + + virtual HRESULT STDMETHODCALLTYPE GetPublicKeyToken( /* [in] */ ULONG32 cbPublicKeyToken, /* [out] */ ULONG32 *pcbPublicKeyToken, /* [length_is][size_is][out] */ BYTE pbPublicKeyToken[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetIndex( + + virtual HRESULT STDMETHODCALLTYPE GetIndex( /* [out] */ ULONG32 *pIndex) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMergedAssemblyRecordVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMergedAssemblyRecord * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMergedAssemblyRecord * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMergedAssemblyRecord * This); - - DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetSimpleName) - HRESULT ( STDMETHODCALLTYPE *GetSimpleName )( + + HRESULT ( STDMETHODCALLTYPE *GetSimpleName )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetVersion) - HRESULT ( STDMETHODCALLTYPE *GetVersion )( + + HRESULT ( STDMETHODCALLTYPE *GetVersion )( ICorDebugMergedAssemblyRecord * This, /* [out] */ USHORT *pMajor, /* [out] */ USHORT *pMinor, /* [out] */ USHORT *pBuild, /* [out] */ USHORT *pRevision); - - DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetCulture) - HRESULT ( STDMETHODCALLTYPE *GetCulture )( + + HRESULT ( STDMETHODCALLTYPE *GetCulture )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cchCulture, /* [out] */ ULONG32 *pcchCulture, /* [length_is][size_is][out] */ WCHAR szCulture[ ]); - - DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetPublicKey) - HRESULT ( STDMETHODCALLTYPE *GetPublicKey )( + + HRESULT ( STDMETHODCALLTYPE *GetPublicKey )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cbPublicKey, /* [out] */ ULONG32 *pcbPublicKey, /* [length_is][size_is][out] */ BYTE pbPublicKey[ ]); - - DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetPublicKeyToken) - HRESULT ( STDMETHODCALLTYPE *GetPublicKeyToken )( + + HRESULT ( STDMETHODCALLTYPE *GetPublicKeyToken )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cbPublicKeyToken, /* [out] */ ULONG32 *pcbPublicKeyToken, /* [length_is][size_is][out] */ BYTE pbPublicKeyToken[ ]); - - DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetIndex) - HRESULT ( STDMETHODCALLTYPE *GetIndex )( + + HRESULT ( STDMETHODCALLTYPE *GetIndex )( ICorDebugMergedAssemblyRecord * This, /* [out] */ ULONG32 *pIndex); - + END_INTERFACE } ICorDebugMergedAssemblyRecordVtbl; @@ -2190,195 +2136,186 @@ EXTERN_C const IID IID_ICorDebugMergedAssemblyRecord; CONST_VTBL struct ICorDebugMergedAssemblyRecordVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMergedAssemblyRecord_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMergedAssemblyRecord_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMergedAssemblyRecord_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMergedAssemblyRecord_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMergedAssemblyRecord_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMergedAssemblyRecord_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMergedAssemblyRecord_GetSimpleName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetSimpleName(This,cchName,pcchName,szName) ) +#define ICorDebugMergedAssemblyRecord_GetSimpleName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetSimpleName(This,cchName,pcchName,szName) ) -#define ICorDebugMergedAssemblyRecord_GetVersion(This,pMajor,pMinor,pBuild,pRevision) \ - ( (This)->lpVtbl -> GetVersion(This,pMajor,pMinor,pBuild,pRevision) ) +#define ICorDebugMergedAssemblyRecord_GetVersion(This,pMajor,pMinor,pBuild,pRevision) \ + ( (This)->lpVtbl -> GetVersion(This,pMajor,pMinor,pBuild,pRevision) ) -#define ICorDebugMergedAssemblyRecord_GetCulture(This,cchCulture,pcchCulture,szCulture) \ - ( (This)->lpVtbl -> GetCulture(This,cchCulture,pcchCulture,szCulture) ) +#define ICorDebugMergedAssemblyRecord_GetCulture(This,cchCulture,pcchCulture,szCulture) \ + ( (This)->lpVtbl -> GetCulture(This,cchCulture,pcchCulture,szCulture) ) -#define ICorDebugMergedAssemblyRecord_GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) \ - ( (This)->lpVtbl -> GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) ) +#define ICorDebugMergedAssemblyRecord_GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) \ + ( (This)->lpVtbl -> GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) ) -#define ICorDebugMergedAssemblyRecord_GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) \ - ( (This)->lpVtbl -> GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) ) +#define ICorDebugMergedAssemblyRecord_GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) \ + ( (This)->lpVtbl -> GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) ) -#define ICorDebugMergedAssemblyRecord_GetIndex(This,pIndex) \ - ( (This)->lpVtbl -> GetIndex(This,pIndex) ) +#define ICorDebugMergedAssemblyRecord_GetIndex(This,pIndex) \ + ( (This)->lpVtbl -> GetIndex(This,pIndex) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMergedAssemblyRecord_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMergedAssemblyRecord_INTERFACE_DEFINED__ */ #ifndef __ICorDebugSymbolProvider_INTERFACE_DEFINED__ #define __ICorDebugSymbolProvider_INTERFACE_DEFINED__ /* interface ICorDebugSymbolProvider */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugSymbolProvider; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3948A999-FD8A-4C38-A708-8A71E9B04DBB") ICorDebugSymbolProvider : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetStaticFieldSymbols( + virtual HRESULT STDMETHODCALLTYPE GetStaticFieldSymbols( /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugStaticFieldSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInstanceFieldSymbols( + + virtual HRESULT STDMETHODCALLTYPE GetInstanceFieldSymbols( /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugInstanceFieldSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMethodLocalSymbols( + + virtual HRESULT STDMETHODCALLTYPE GetMethodLocalSymbols( /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMethodParameterSymbols( + + virtual HRESULT STDMETHODCALLTYPE GetMethodParameterSymbols( /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMergedAssemblyRecords( + + virtual HRESULT STDMETHODCALLTYPE GetMergedAssemblyRecords( /* [in] */ ULONG32 cRequestedRecords, /* [out] */ ULONG32 *pcFetchedRecords, /* [length_is][size_is][out] */ ICorDebugMergedAssemblyRecord *pRecords[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMethodProps( + + virtual HRESULT STDMETHODCALLTYPE GetMethodProps( /* [in] */ ULONG32 codeRva, /* [out] */ mdToken *pMethodToken, /* [out] */ ULONG32 *pcGenericParams, /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeProps( + + virtual HRESULT STDMETHODCALLTYPE GetTypeProps( /* [in] */ ULONG32 vtableRva, /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodeRange( + + virtual HRESULT STDMETHODCALLTYPE GetCodeRange( /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartAddress, ULONG32 *pCodeSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageBytes( + + virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageBytes( /* [in] */ CORDB_ADDRESS rva, /* [in] */ ULONG32 length, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObjectSize( + + virtual HRESULT STDMETHODCALLTYPE GetObjectSize( /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [out] */ ULONG32 *pObjectSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageMetadata( + + virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageMetadata( /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugSymbolProviderVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugSymbolProvider * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugSymbolProvider * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugSymbolProvider * This); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetStaticFieldSymbols) - HRESULT ( STDMETHODCALLTYPE *GetStaticFieldSymbols )( + + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugStaticFieldSymbol *pSymbols[ ]); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetInstanceFieldSymbols) - HRESULT ( STDMETHODCALLTYPE *GetInstanceFieldSymbols )( + + HRESULT ( STDMETHODCALLTYPE *GetInstanceFieldSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugInstanceFieldSymbol *pSymbols[ ]); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetMethodLocalSymbols) - HRESULT ( STDMETHODCALLTYPE *GetMethodLocalSymbols )( + + HRESULT ( STDMETHODCALLTYPE *GetMethodLocalSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetMethodParameterSymbols) - HRESULT ( STDMETHODCALLTYPE *GetMethodParameterSymbols )( + + HRESULT ( STDMETHODCALLTYPE *GetMethodParameterSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetMergedAssemblyRecords) - HRESULT ( STDMETHODCALLTYPE *GetMergedAssemblyRecords )( + + HRESULT ( STDMETHODCALLTYPE *GetMergedAssemblyRecords )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cRequestedRecords, /* [out] */ ULONG32 *pcFetchedRecords, /* [length_is][size_is][out] */ ICorDebugMergedAssemblyRecord *pRecords[ ]); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetMethodProps) - HRESULT ( STDMETHODCALLTYPE *GetMethodProps )( + + HRESULT ( STDMETHODCALLTYPE *GetMethodProps )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 codeRva, /* [out] */ mdToken *pMethodToken, @@ -2386,41 +2323,36 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider; /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetTypeProps) - HRESULT ( STDMETHODCALLTYPE *GetTypeProps )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeProps )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 vtableRva, /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetCodeRange) - HRESULT ( STDMETHODCALLTYPE *GetCodeRange )( + + HRESULT ( STDMETHODCALLTYPE *GetCodeRange )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartAddress, ULONG32 *pCodeSize); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetAssemblyImageBytes) - HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageBytes )( + + HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageBytes )( ICorDebugSymbolProvider * This, /* [in] */ CORDB_ADDRESS rva, /* [in] */ ULONG32 length, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetObjectSize) - HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( + + HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [out] */ ULONG32 *pObjectSize); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetAssemblyImageMetadata) - HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageMetadata )( + + HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageMetadata )( ICorDebugSymbolProvider * This, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer); - + END_INTERFACE } ICorDebugSymbolProviderVtbl; @@ -2429,124 +2361,119 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider; CONST_VTBL struct ICorDebugSymbolProviderVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugSymbolProvider_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugSymbolProvider_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugSymbolProvider_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugSymbolProvider_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugSymbolProvider_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugSymbolProvider_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugSymbolProvider_GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) +#define ICorDebugSymbolProvider_GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ + ( (This)->lpVtbl -> GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) -#define ICorDebugSymbolProvider_GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) +#define ICorDebugSymbolProvider_GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ + ( (This)->lpVtbl -> GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) -#define ICorDebugSymbolProvider_GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) +#define ICorDebugSymbolProvider_GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ + ( (This)->lpVtbl -> GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) -#define ICorDebugSymbolProvider_GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) +#define ICorDebugSymbolProvider_GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ + ( (This)->lpVtbl -> GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) -#define ICorDebugSymbolProvider_GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) \ - ( (This)->lpVtbl -> GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) ) +#define ICorDebugSymbolProvider_GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) \ + ( (This)->lpVtbl -> GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) ) -#define ICorDebugSymbolProvider_GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) \ - ( (This)->lpVtbl -> GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) ) +#define ICorDebugSymbolProvider_GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) \ + ( (This)->lpVtbl -> GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) ) -#define ICorDebugSymbolProvider_GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) \ - ( (This)->lpVtbl -> GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) ) +#define ICorDebugSymbolProvider_GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) \ + ( (This)->lpVtbl -> GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) ) -#define ICorDebugSymbolProvider_GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) \ - ( (This)->lpVtbl -> GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) ) +#define ICorDebugSymbolProvider_GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) \ + ( (This)->lpVtbl -> GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) ) -#define ICorDebugSymbolProvider_GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) \ - ( (This)->lpVtbl -> GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) ) +#define ICorDebugSymbolProvider_GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) \ + ( (This)->lpVtbl -> GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) ) -#define ICorDebugSymbolProvider_GetObjectSize(This,cbSignature,typeSig,pObjectSize) \ - ( (This)->lpVtbl -> GetObjectSize(This,cbSignature,typeSig,pObjectSize) ) +#define ICorDebugSymbolProvider_GetObjectSize(This,cbSignature,typeSig,pObjectSize) \ + ( (This)->lpVtbl -> GetObjectSize(This,cbSignature,typeSig,pObjectSize) ) -#define ICorDebugSymbolProvider_GetAssemblyImageMetadata(This,ppMemoryBuffer) \ - ( (This)->lpVtbl -> GetAssemblyImageMetadata(This,ppMemoryBuffer) ) +#define ICorDebugSymbolProvider_GetAssemblyImageMetadata(This,ppMemoryBuffer) \ + ( (This)->lpVtbl -> GetAssemblyImageMetadata(This,ppMemoryBuffer) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugSymbolProvider_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugSymbolProvider_INTERFACE_DEFINED__ */ #ifndef __ICorDebugSymbolProvider2_INTERFACE_DEFINED__ #define __ICorDebugSymbolProvider2_INTERFACE_DEFINED__ /* interface ICorDebugSymbolProvider2 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugSymbolProvider2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F9801807-4764-4330-9E67-4F685094165E") ICorDebugSymbolProvider2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetGenericDictionaryInfo( + virtual HRESULT STDMETHODCALLTYPE GetGenericDictionaryInfo( /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrameProps( + + virtual HRESULT STDMETHODCALLTYPE GetFrameProps( /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartRva, /* [out] */ ULONG32 *pParentFrameStartRva) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugSymbolProvider2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugSymbolProvider2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugSymbolProvider2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugSymbolProvider2 * This); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider2, GetGenericDictionaryInfo) - HRESULT ( STDMETHODCALLTYPE *GetGenericDictionaryInfo )( + + HRESULT ( STDMETHODCALLTYPE *GetGenericDictionaryInfo )( ICorDebugSymbolProvider2 * This, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer); - - DECLSPEC_XFGVIRT(ICorDebugSymbolProvider2, GetFrameProps) - HRESULT ( STDMETHODCALLTYPE *GetFrameProps )( + + HRESULT ( STDMETHODCALLTYPE *GetFrameProps )( ICorDebugSymbolProvider2 * This, /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartRva, /* [out] */ ULONG32 *pParentFrameStartRva); - + END_INTERFACE } ICorDebugSymbolProvider2Vtbl; @@ -2555,97 +2482,92 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider2; CONST_VTBL struct ICorDebugSymbolProvider2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugSymbolProvider2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugSymbolProvider2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugSymbolProvider2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugSymbolProvider2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugSymbolProvider2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugSymbolProvider2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugSymbolProvider2_GetGenericDictionaryInfo(This,ppMemoryBuffer) \ - ( (This)->lpVtbl -> GetGenericDictionaryInfo(This,ppMemoryBuffer) ) +#define ICorDebugSymbolProvider2_GetGenericDictionaryInfo(This,ppMemoryBuffer) \ + ( (This)->lpVtbl -> GetGenericDictionaryInfo(This,ppMemoryBuffer) ) -#define ICorDebugSymbolProvider2_GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) \ - ( (This)->lpVtbl -> GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) ) +#define ICorDebugSymbolProvider2_GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) \ + ( (This)->lpVtbl -> GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugSymbolProvider2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugSymbolProvider2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugVirtualUnwinder_INTERFACE_DEFINED__ #define __ICorDebugVirtualUnwinder_INTERFACE_DEFINED__ /* interface ICorDebugVirtualUnwinder */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugVirtualUnwinder; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F69126B7-C787-4F6B-AE96-A569786FC670") ICorDebugVirtualUnwinder : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetContext( + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContextBuf, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]) = 0; - + virtual HRESULT STDMETHODCALLTYPE Next( void) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVirtualUnwinderVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVirtualUnwinder * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVirtualUnwinder * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVirtualUnwinder * This); - - DECLSPEC_XFGVIRT(ICorDebugVirtualUnwinder, GetContext) - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugVirtualUnwinder * This, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContextBuf, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]); - - DECLSPEC_XFGVIRT(ICorDebugVirtualUnwinder, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugVirtualUnwinder * This); - + END_INTERFACE } ICorDebugVirtualUnwinderVtbl; @@ -2654,141 +2576,133 @@ EXTERN_C const IID IID_ICorDebugVirtualUnwinder; CONST_VTBL struct ICorDebugVirtualUnwinderVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugVirtualUnwinder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugVirtualUnwinder_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugVirtualUnwinder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugVirtualUnwinder_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugVirtualUnwinder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugVirtualUnwinder_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugVirtualUnwinder_GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) \ - ( (This)->lpVtbl -> GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) ) +#define ICorDebugVirtualUnwinder_GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) \ + ( (This)->lpVtbl -> GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) ) -#define ICorDebugVirtualUnwinder_Next(This) \ - ( (This)->lpVtbl -> Next(This) ) +#define ICorDebugVirtualUnwinder_Next(This) \ + ( (This)->lpVtbl -> Next(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugVirtualUnwinder_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugVirtualUnwinder_INTERFACE_DEFINED__ */ #ifndef __ICorDebugDataTarget2_INTERFACE_DEFINED__ #define __ICorDebugDataTarget2_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget2 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugDataTarget2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2eb364da-605b-4e8d-b333-3394c4828d41") ICorDebugDataTarget2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetImageFromPointer( + virtual HRESULT STDMETHODCALLTYPE GetImageFromPointer( /* [in] */ CORDB_ADDRESS addr, /* [out] */ CORDB_ADDRESS *pImageBase, /* [out] */ ULONG32 *pSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetImageLocation( + + virtual HRESULT STDMETHODCALLTYPE GetImageLocation( /* [in] */ CORDB_ADDRESS baseAddress, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSymbolProviderForImage( + + virtual HRESULT STDMETHODCALLTYPE GetSymbolProviderForImage( /* [in] */ CORDB_ADDRESS imageBaseAddress, /* [out] */ ICorDebugSymbolProvider **ppSymProvider) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateThreadIDs( + + virtual HRESULT STDMETHODCALLTYPE EnumerateThreadIDs( /* [in] */ ULONG32 cThreadIds, /* [out] */ ULONG32 *pcThreadIds, /* [length_is][size_is][out] */ ULONG32 pThreadIds[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVirtualUnwinder( + + virtual HRESULT STDMETHODCALLTYPE CreateVirtualUnwinder( /* [in] */ DWORD nativeThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE initialContext[ ], /* [out] */ ICorDebugVirtualUnwinder **ppUnwinder) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDataTarget2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget2 * This); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget2, GetImageFromPointer) - HRESULT ( STDMETHODCALLTYPE *GetImageFromPointer )( + + HRESULT ( STDMETHODCALLTYPE *GetImageFromPointer )( ICorDebugDataTarget2 * This, /* [in] */ CORDB_ADDRESS addr, /* [out] */ CORDB_ADDRESS *pImageBase, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget2, GetImageLocation) - HRESULT ( STDMETHODCALLTYPE *GetImageLocation )( + + HRESULT ( STDMETHODCALLTYPE *GetImageLocation )( ICorDebugDataTarget2 * This, /* [in] */ CORDB_ADDRESS baseAddress, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget2, GetSymbolProviderForImage) - HRESULT ( STDMETHODCALLTYPE *GetSymbolProviderForImage )( + + HRESULT ( STDMETHODCALLTYPE *GetSymbolProviderForImage )( ICorDebugDataTarget2 * This, /* [in] */ CORDB_ADDRESS imageBaseAddress, /* [out] */ ICorDebugSymbolProvider **ppSymProvider); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget2, EnumerateThreadIDs) - HRESULT ( STDMETHODCALLTYPE *EnumerateThreadIDs )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateThreadIDs )( ICorDebugDataTarget2 * This, /* [in] */ ULONG32 cThreadIds, /* [out] */ ULONG32 *pcThreadIds, /* [length_is][size_is][out] */ ULONG32 pThreadIds[ ]); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget2, CreateVirtualUnwinder) - HRESULT ( STDMETHODCALLTYPE *CreateVirtualUnwinder )( + + HRESULT ( STDMETHODCALLTYPE *CreateVirtualUnwinder )( ICorDebugDataTarget2 * This, /* [in] */ DWORD nativeThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE initialContext[ ], /* [out] */ ICorDebugVirtualUnwinder **ppUnwinder); - + END_INTERFACE } ICorDebugDataTarget2Vtbl; @@ -2797,114 +2711,108 @@ EXTERN_C const IID IID_ICorDebugDataTarget2; CONST_VTBL struct ICorDebugDataTarget2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDataTarget2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDataTarget2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDataTarget2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDataTarget2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDataTarget2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDataTarget2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDataTarget2_GetImageFromPointer(This,addr,pImageBase,pSize) \ - ( (This)->lpVtbl -> GetImageFromPointer(This,addr,pImageBase,pSize) ) +#define ICorDebugDataTarget2_GetImageFromPointer(This,addr,pImageBase,pSize) \ + ( (This)->lpVtbl -> GetImageFromPointer(This,addr,pImageBase,pSize) ) -#define ICorDebugDataTarget2_GetImageLocation(This,baseAddress,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetImageLocation(This,baseAddress,cchName,pcchName,szName) ) +#define ICorDebugDataTarget2_GetImageLocation(This,baseAddress,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetImageLocation(This,baseAddress,cchName,pcchName,szName) ) -#define ICorDebugDataTarget2_GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) \ - ( (This)->lpVtbl -> GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) ) +#define ICorDebugDataTarget2_GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) \ + ( (This)->lpVtbl -> GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) ) -#define ICorDebugDataTarget2_EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) \ - ( (This)->lpVtbl -> EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) ) +#define ICorDebugDataTarget2_EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) \ + ( (This)->lpVtbl -> EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) ) -#define ICorDebugDataTarget2_CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) \ - ( (This)->lpVtbl -> CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) ) +#define ICorDebugDataTarget2_CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) \ + ( (This)->lpVtbl -> CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDataTarget2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDataTarget2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugLoadedModule_INTERFACE_DEFINED__ #define __ICorDebugLoadedModule_INTERFACE_DEFINED__ /* interface ICorDebugLoadedModule */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugLoadedModule; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("817F343A-6630-4578-96C5-D11BC0EC5EE2") ICorDebugLoadedModule : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( + virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcBytes) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugLoadedModuleVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugLoadedModule * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugLoadedModule * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugLoadedModule * This); - - DECLSPEC_XFGVIRT(ICorDebugLoadedModule, GetBaseAddress) - HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( ICorDebugLoadedModule * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugLoadedModule, GetName) - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugLoadedModule * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugLoadedModule, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugLoadedModule * This, /* [out] */ ULONG32 *pcBytes); - + END_INTERFACE } ICorDebugLoadedModuleVtbl; @@ -2913,92 +2821,88 @@ EXTERN_C const IID IID_ICorDebugLoadedModule; CONST_VTBL struct ICorDebugLoadedModuleVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugLoadedModule_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugLoadedModule_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugLoadedModule_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugLoadedModule_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugLoadedModule_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugLoadedModule_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugLoadedModule_GetBaseAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) +#define ICorDebugLoadedModule_GetBaseAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) -#define ICorDebugLoadedModule_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugLoadedModule_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugLoadedModule_GetSize(This,pcBytes) \ - ( (This)->lpVtbl -> GetSize(This,pcBytes) ) +#define ICorDebugLoadedModule_GetSize(This,pcBytes) \ + ( (This)->lpVtbl -> GetSize(This,pcBytes) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugLoadedModule_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugLoadedModule_INTERFACE_DEFINED__ */ #ifndef __ICorDebugDataTarget3_INTERFACE_DEFINED__ #define __ICorDebugDataTarget3_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget3 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugDataTarget3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D05E60C3-848C-4E7D-894E-623320FF6AFA") ICorDebugDataTarget3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetLoadedModules( + virtual HRESULT STDMETHODCALLTYPE GetLoadedModules( /* [in] */ ULONG32 cRequestedModules, /* [out] */ ULONG32 *pcFetchedModules, /* [length_is][size_is][out] */ ICorDebugLoadedModule *pLoadedModules[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDataTarget3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget3 * This); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget3, GetLoadedModules) - HRESULT ( STDMETHODCALLTYPE *GetLoadedModules )( + + HRESULT ( STDMETHODCALLTYPE *GetLoadedModules )( ICorDebugDataTarget3 * This, /* [in] */ ULONG32 cRequestedModules, /* [out] */ ULONG32 *pcFetchedModules, /* [length_is][size_is][out] */ ICorDebugLoadedModule *pLoadedModules[ ]); - + END_INTERFACE } ICorDebugDataTarget3Vtbl; @@ -3007,86 +2911,82 @@ EXTERN_C const IID IID_ICorDebugDataTarget3; CONST_VTBL struct ICorDebugDataTarget3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDataTarget3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDataTarget3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDataTarget3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDataTarget3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDataTarget3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDataTarget3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDataTarget3_GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) \ - ( (This)->lpVtbl -> GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) ) +#define ICorDebugDataTarget3_GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) \ + ( (This)->lpVtbl -> GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDataTarget3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDataTarget3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugDataTarget4_INTERFACE_DEFINED__ #define __ICorDebugDataTarget4_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget4 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugDataTarget4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("E799DC06-E099-4713-BDD9-906D3CC02CF2") ICorDebugDataTarget4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE VirtualUnwind( + virtual HRESULT STDMETHODCALLTYPE VirtualUnwind( /* [in] */ DWORD threadId, /* [in] */ ULONG32 contextSize, /* [size_is][out][in] */ BYTE *context) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDataTarget4Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget4 * This); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget4, VirtualUnwind) - HRESULT ( STDMETHODCALLTYPE *VirtualUnwind )( + + HRESULT ( STDMETHODCALLTYPE *VirtualUnwind )( ICorDebugDataTarget4 * This, /* [in] */ DWORD threadId, /* [in] */ ULONG32 contextSize, /* [size_is][out][in] */ BYTE *context); - + END_INTERFACE } ICorDebugDataTarget4Vtbl; @@ -3095,129 +2995,120 @@ EXTERN_C const IID IID_ICorDebugDataTarget4; CONST_VTBL struct ICorDebugDataTarget4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDataTarget4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDataTarget4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDataTarget4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDataTarget4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDataTarget4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDataTarget4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDataTarget4_VirtualUnwind(This,threadId,contextSize,context) \ - ( (This)->lpVtbl -> VirtualUnwind(This,threadId,contextSize,context) ) +#define ICorDebugDataTarget4_VirtualUnwind(This,threadId,contextSize,context) \ + ( (This)->lpVtbl -> VirtualUnwind(This,threadId,contextSize,context) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDataTarget4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDataTarget4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugMutableDataTarget_INTERFACE_DEFINED__ #define __ICorDebugMutableDataTarget_INTERFACE_DEFINED__ /* interface ICorDebugMutableDataTarget */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugMutableDataTarget; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A1B8A756-3CB6-4CCB-979F-3DF999673A59") ICorDebugMutableDataTarget : public ICorDebugDataTarget { public: - virtual HRESULT STDMETHODCALLTYPE WriteVirtual( + virtual HRESULT STDMETHODCALLTYPE WriteVirtual( /* [in] */ CORDB_ADDRESS address, /* [size_is][in] */ const BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE SetThreadContext( /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ const BYTE *pContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE ContinueStatusChanged( + + virtual HRESULT STDMETHODCALLTYPE ContinueStatusChanged( /* [in] */ DWORD dwThreadId, /* [in] */ CORDB_CONTINUE_STATUS continueStatus) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMutableDataTargetVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMutableDataTarget * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMutableDataTarget * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMutableDataTarget * This); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget, GetPlatform) - HRESULT ( STDMETHODCALLTYPE *GetPlatform )( + + HRESULT ( STDMETHODCALLTYPE *GetPlatform )( ICorDebugMutableDataTarget * This, /* [out] */ CorDebugPlatform *pTargetPlatform); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget, ReadVirtual) - HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( + + HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( ICorDebugMutableDataTarget * This, /* [in] */ CORDB_ADDRESS address, /* [length_is][size_is][out] */ BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested, /* [out] */ ULONG32 *pBytesRead); - - DECLSPEC_XFGVIRT(ICorDebugDataTarget, GetThreadContext) - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugMutableDataTarget * This, /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextSize, /* [size_is][out] */ BYTE *pContext); - - DECLSPEC_XFGVIRT(ICorDebugMutableDataTarget, WriteVirtual) - HRESULT ( STDMETHODCALLTYPE *WriteVirtual )( + + HRESULT ( STDMETHODCALLTYPE *WriteVirtual )( ICorDebugMutableDataTarget * This, /* [in] */ CORDB_ADDRESS address, /* [size_is][in] */ const BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested); - - DECLSPEC_XFGVIRT(ICorDebugMutableDataTarget, SetThreadContext) - HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( ICorDebugMutableDataTarget * This, /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ const BYTE *pContext); - - DECLSPEC_XFGVIRT(ICorDebugMutableDataTarget, ContinueStatusChanged) - HRESULT ( STDMETHODCALLTYPE *ContinueStatusChanged )( + + HRESULT ( STDMETHODCALLTYPE *ContinueStatusChanged )( ICorDebugMutableDataTarget * This, /* [in] */ DWORD dwThreadId, /* [in] */ CORDB_CONTINUE_STATUS continueStatus); - + END_INTERFACE } ICorDebugMutableDataTargetVtbl; @@ -3226,112 +3117,108 @@ EXTERN_C const IID IID_ICorDebugMutableDataTarget; CONST_VTBL struct ICorDebugMutableDataTargetVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMutableDataTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMutableDataTarget_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMutableDataTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMutableDataTarget_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMutableDataTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMutableDataTarget_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMutableDataTarget_GetPlatform(This,pTargetPlatform) \ - ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) +#define ICorDebugMutableDataTarget_GetPlatform(This,pTargetPlatform) \ + ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) -#define ICorDebugMutableDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ - ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) +#define ICorDebugMutableDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ + ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) -#define ICorDebugMutableDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ - ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) +#define ICorDebugMutableDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ + ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) -#define ICorDebugMutableDataTarget_WriteVirtual(This,address,pBuffer,bytesRequested) \ - ( (This)->lpVtbl -> WriteVirtual(This,address,pBuffer,bytesRequested) ) +#define ICorDebugMutableDataTarget_WriteVirtual(This,address,pBuffer,bytesRequested) \ + ( (This)->lpVtbl -> WriteVirtual(This,address,pBuffer,bytesRequested) ) -#define ICorDebugMutableDataTarget_SetThreadContext(This,dwThreadID,contextSize,pContext) \ - ( (This)->lpVtbl -> SetThreadContext(This,dwThreadID,contextSize,pContext) ) +#define ICorDebugMutableDataTarget_SetThreadContext(This,dwThreadID,contextSize,pContext) \ + ( (This)->lpVtbl -> SetThreadContext(This,dwThreadID,contextSize,pContext) ) -#define ICorDebugMutableDataTarget_ContinueStatusChanged(This,dwThreadId,continueStatus) \ - ( (This)->lpVtbl -> ContinueStatusChanged(This,dwThreadId,continueStatus) ) +#define ICorDebugMutableDataTarget_ContinueStatusChanged(This,dwThreadId,continueStatus) \ + ( (This)->lpVtbl -> ContinueStatusChanged(This,dwThreadId,continueStatus) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMutableDataTarget_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMutableDataTarget_INTERFACE_DEFINED__ */ #ifndef __ICorDebugMetaDataLocator_INTERFACE_DEFINED__ #define __ICorDebugMetaDataLocator_INTERFACE_DEFINED__ /* interface ICorDebugMetaDataLocator */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugMetaDataLocator; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("7cef8ba9-2ef7-42bf-973f-4171474f87d9") ICorDebugMetaDataLocator : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetMetaData( + virtual HRESULT STDMETHODCALLTYPE GetMetaData( /* [in] */ LPCWSTR wszImagePath, /* [in] */ DWORD dwImageTimeStamp, /* [in] */ DWORD dwImageSize, /* [in] */ ULONG32 cchPathBuffer, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchPathBuffer, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_(cchPathBuffer, *pcchPathBuffer) WCHAR wszPathBuffer[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMetaDataLocatorVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMetaDataLocator * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMetaDataLocator * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMetaDataLocator * This); - - DECLSPEC_XFGVIRT(ICorDebugMetaDataLocator, GetMetaData) - HRESULT ( STDMETHODCALLTYPE *GetMetaData )( + + HRESULT ( STDMETHODCALLTYPE *GetMetaData )( ICorDebugMetaDataLocator * This, /* [in] */ LPCWSTR wszImagePath, /* [in] */ DWORD dwImageTimeStamp, /* [in] */ DWORD dwImageSize, /* [in] */ ULONG32 cchPathBuffer, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchPathBuffer, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_(cchPathBuffer, *pcchPathBuffer) WCHAR wszPathBuffer[ ]); - + END_INTERFACE } ICorDebugMetaDataLocatorVtbl; @@ -3340,40 +3227,40 @@ EXTERN_C const IID IID_ICorDebugMetaDataLocator; CONST_VTBL struct ICorDebugMetaDataLocatorVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMetaDataLocator_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMetaDataLocator_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMetaDataLocator_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMetaDataLocator_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMetaDataLocator_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMetaDataLocator_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMetaDataLocator_GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) \ - ( (This)->lpVtbl -> GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) ) +#define ICorDebugMetaDataLocator_GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) \ + ( (This)->lpVtbl -> GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMetaDataLocator_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMetaDataLocator_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0015 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0015_v0_0_c_ifspec; @@ -3383,305 +3270,285 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0015_v0_0_s_ifspec; #define __ICorDebugManagedCallback_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugStepReason { - STEP_NORMAL = 0, - STEP_RETURN = ( STEP_NORMAL + 1 ) , - STEP_CALL = ( STEP_RETURN + 1 ) , - STEP_EXCEPTION_FILTER = ( STEP_CALL + 1 ) , - STEP_EXCEPTION_HANDLER = ( STEP_EXCEPTION_FILTER + 1 ) , - STEP_INTERCEPT = ( STEP_EXCEPTION_HANDLER + 1 ) , - STEP_EXIT = ( STEP_INTERCEPT + 1 ) - } CorDebugStepReason; + STEP_NORMAL = 0, + STEP_RETURN = ( STEP_NORMAL + 1 ) , + STEP_CALL = ( STEP_RETURN + 1 ) , + STEP_EXCEPTION_FILTER = ( STEP_CALL + 1 ) , + STEP_EXCEPTION_HANDLER = ( STEP_EXCEPTION_FILTER + 1 ) , + STEP_INTERCEPT = ( STEP_EXCEPTION_HANDLER + 1 ) , + STEP_EXIT = ( STEP_INTERCEPT + 1 ) + } CorDebugStepReason; -typedef +typedef enum LoggingLevelEnum { - LTraceLevel0 = 0, - LTraceLevel1 = ( LTraceLevel0 + 1 ) , - LTraceLevel2 = ( LTraceLevel1 + 1 ) , - LTraceLevel3 = ( LTraceLevel2 + 1 ) , - LTraceLevel4 = ( LTraceLevel3 + 1 ) , - LStatusLevel0 = 20, - LStatusLevel1 = ( LStatusLevel0 + 1 ) , - LStatusLevel2 = ( LStatusLevel1 + 1 ) , - LStatusLevel3 = ( LStatusLevel2 + 1 ) , - LStatusLevel4 = ( LStatusLevel3 + 1 ) , - LWarningLevel = 40, - LErrorLevel = 50, - LPanicLevel = 100 - } LoggingLevelEnum; - -typedef + LTraceLevel0 = 0, + LTraceLevel1 = ( LTraceLevel0 + 1 ) , + LTraceLevel2 = ( LTraceLevel1 + 1 ) , + LTraceLevel3 = ( LTraceLevel2 + 1 ) , + LTraceLevel4 = ( LTraceLevel3 + 1 ) , + LStatusLevel0 = 20, + LStatusLevel1 = ( LStatusLevel0 + 1 ) , + LStatusLevel2 = ( LStatusLevel1 + 1 ) , + LStatusLevel3 = ( LStatusLevel2 + 1 ) , + LStatusLevel4 = ( LStatusLevel3 + 1 ) , + LWarningLevel = 40, + LErrorLevel = 50, + LPanicLevel = 100 + } LoggingLevelEnum; + +typedef enum LogSwitchCallReason { - SWITCH_CREATE = 0, - SWITCH_MODIFY = ( SWITCH_CREATE + 1 ) , - SWITCH_DELETE = ( SWITCH_MODIFY + 1 ) - } LogSwitchCallReason; + SWITCH_CREATE = 0, + SWITCH_MODIFY = ( SWITCH_CREATE + 1 ) , + SWITCH_DELETE = ( SWITCH_MODIFY + 1 ) + } LogSwitchCallReason; EXTERN_C const IID IID_ICorDebugManagedCallback; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f60-7538-11d3-8d5b-00104b35e7ef") ICorDebugManagedCallback : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Breakpoint( + virtual HRESULT STDMETHODCALLTYPE Breakpoint( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE StepComplete( + + virtual HRESULT STDMETHODCALLTYPE StepComplete( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugStepper *pStepper, /* [in] */ CorDebugStepReason reason) = 0; - - virtual HRESULT STDMETHODCALLTYPE Break( + + virtual HRESULT STDMETHODCALLTYPE Break( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread) = 0; - - virtual HRESULT STDMETHODCALLTYPE Exception( + + virtual HRESULT STDMETHODCALLTYPE Exception( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ BOOL unhandled) = 0; - - virtual HRESULT STDMETHODCALLTYPE EvalComplete( + + virtual HRESULT STDMETHODCALLTYPE EvalComplete( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval) = 0; - - virtual HRESULT STDMETHODCALLTYPE EvalException( + + virtual HRESULT STDMETHODCALLTYPE EvalException( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateProcess( + + virtual HRESULT STDMETHODCALLTYPE CreateProcess( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitProcess( + + virtual HRESULT STDMETHODCALLTYPE ExitProcess( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateThread( + + virtual HRESULT STDMETHODCALLTYPE CreateThread( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitThread( + + virtual HRESULT STDMETHODCALLTYPE ExitThread( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadModule( + + virtual HRESULT STDMETHODCALLTYPE LoadModule( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadModule( + + virtual HRESULT STDMETHODCALLTYPE UnloadModule( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadClass( + + virtual HRESULT STDMETHODCALLTYPE LoadClass( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadClass( + + virtual HRESULT STDMETHODCALLTYPE UnloadClass( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebuggerError( + + virtual HRESULT STDMETHODCALLTYPE DebuggerError( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ HRESULT errorHR, /* [in] */ DWORD errorCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE LogMessage( + + virtual HRESULT STDMETHODCALLTYPE LogMessage( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ LONG lLevel, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pMessage) = 0; - - virtual HRESULT STDMETHODCALLTYPE LogSwitch( + + virtual HRESULT STDMETHODCALLTYPE LogSwitch( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ LONG lLevel, /* [in] */ ULONG ulReason, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pParentName) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateAppDomain( + + virtual HRESULT STDMETHODCALLTYPE CreateAppDomain( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitAppDomain( + + virtual HRESULT STDMETHODCALLTYPE ExitAppDomain( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadAssembly( + + virtual HRESULT STDMETHODCALLTYPE LoadAssembly( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadAssembly( + + virtual HRESULT STDMETHODCALLTYPE UnloadAssembly( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE ControlCTrap( + + virtual HRESULT STDMETHODCALLTYPE ControlCTrap( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE NameChange( + + virtual HRESULT STDMETHODCALLTYPE NameChange( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE UpdateModuleSymbols( + + virtual HRESULT STDMETHODCALLTYPE UpdateModuleSymbols( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule, /* [in] */ IStream *pSymbolStream) = 0; - - virtual HRESULT STDMETHODCALLTYPE EditAndContinueRemap( + + virtual HRESULT STDMETHODCALLTYPE EditAndContinueRemap( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ BOOL fAccurate) = 0; - - virtual HRESULT STDMETHODCALLTYPE BreakpointSetError( + + virtual HRESULT STDMETHODCALLTYPE BreakpointSetError( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint, /* [in] */ DWORD dwError) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugManagedCallbackVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback * This); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, Breakpoint) - HRESULT ( STDMETHODCALLTYPE *Breakpoint )( + + HRESULT ( STDMETHODCALLTYPE *Breakpoint )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, StepComplete) - HRESULT ( STDMETHODCALLTYPE *StepComplete )( + + HRESULT ( STDMETHODCALLTYPE *StepComplete )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugStepper *pStepper, /* [in] */ CorDebugStepReason reason); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, Break) - HRESULT ( STDMETHODCALLTYPE *Break )( + + HRESULT ( STDMETHODCALLTYPE *Break )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, Exception) - HRESULT ( STDMETHODCALLTYPE *Exception )( + + HRESULT ( STDMETHODCALLTYPE *Exception )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ BOOL unhandled); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, EvalComplete) - HRESULT ( STDMETHODCALLTYPE *EvalComplete )( + + HRESULT ( STDMETHODCALLTYPE *EvalComplete )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, EvalException) - HRESULT ( STDMETHODCALLTYPE *EvalException )( + + HRESULT ( STDMETHODCALLTYPE *EvalException )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, CreateProcess) - HRESULT ( STDMETHODCALLTYPE *CreateProcess )( + + HRESULT ( STDMETHODCALLTYPE *CreateProcess )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, ExitProcess) - HRESULT ( STDMETHODCALLTYPE *ExitProcess )( + + HRESULT ( STDMETHODCALLTYPE *ExitProcess )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, CreateThread) - HRESULT ( STDMETHODCALLTYPE *CreateThread )( + + HRESULT ( STDMETHODCALLTYPE *CreateThread )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, ExitThread) - HRESULT ( STDMETHODCALLTYPE *ExitThread )( + + HRESULT ( STDMETHODCALLTYPE *ExitThread )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LoadModule) - HRESULT ( STDMETHODCALLTYPE *LoadModule )( + + HRESULT ( STDMETHODCALLTYPE *LoadModule )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, UnloadModule) - HRESULT ( STDMETHODCALLTYPE *UnloadModule )( + + HRESULT ( STDMETHODCALLTYPE *UnloadModule )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LoadClass) - HRESULT ( STDMETHODCALLTYPE *LoadClass )( + + HRESULT ( STDMETHODCALLTYPE *LoadClass )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, UnloadClass) - HRESULT ( STDMETHODCALLTYPE *UnloadClass )( + + HRESULT ( STDMETHODCALLTYPE *UnloadClass )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, DebuggerError) - HRESULT ( STDMETHODCALLTYPE *DebuggerError )( + + HRESULT ( STDMETHODCALLTYPE *DebuggerError )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ HRESULT errorHR, /* [in] */ DWORD errorCode); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LogMessage) - HRESULT ( STDMETHODCALLTYPE *LogMessage )( + + HRESULT ( STDMETHODCALLTYPE *LogMessage )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ LONG lLevel, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pMessage); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LogSwitch) - HRESULT ( STDMETHODCALLTYPE *LogSwitch )( + + HRESULT ( STDMETHODCALLTYPE *LogSwitch )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, @@ -3689,65 +3556,56 @@ EXTERN_C const IID IID_ICorDebugManagedCallback; /* [in] */ ULONG ulReason, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pParentName); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, CreateAppDomain) - HRESULT ( STDMETHODCALLTYPE *CreateAppDomain )( + + HRESULT ( STDMETHODCALLTYPE *CreateAppDomain )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, ExitAppDomain) - HRESULT ( STDMETHODCALLTYPE *ExitAppDomain )( + + HRESULT ( STDMETHODCALLTYPE *ExitAppDomain )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LoadAssembly) - HRESULT ( STDMETHODCALLTYPE *LoadAssembly )( + + HRESULT ( STDMETHODCALLTYPE *LoadAssembly )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, UnloadAssembly) - HRESULT ( STDMETHODCALLTYPE *UnloadAssembly )( + + HRESULT ( STDMETHODCALLTYPE *UnloadAssembly )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, ControlCTrap) - HRESULT ( STDMETHODCALLTYPE *ControlCTrap )( + + HRESULT ( STDMETHODCALLTYPE *ControlCTrap )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, NameChange) - HRESULT ( STDMETHODCALLTYPE *NameChange )( + + HRESULT ( STDMETHODCALLTYPE *NameChange )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, UpdateModuleSymbols) - HRESULT ( STDMETHODCALLTYPE *UpdateModuleSymbols )( + + HRESULT ( STDMETHODCALLTYPE *UpdateModuleSymbols )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule, /* [in] */ IStream *pSymbolStream); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, EditAndContinueRemap) - HRESULT ( STDMETHODCALLTYPE *EditAndContinueRemap )( + + HRESULT ( STDMETHODCALLTYPE *EditAndContinueRemap )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ BOOL fAccurate); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback, BreakpointSetError) - HRESULT ( STDMETHODCALLTYPE *BreakpointSetError )( + + HRESULT ( STDMETHODCALLTYPE *BreakpointSetError )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint, /* [in] */ DWORD dwError); - + END_INTERFACE } ICorDebugManagedCallbackVtbl; @@ -3756,112 +3614,112 @@ EXTERN_C const IID IID_ICorDebugManagedCallback; CONST_VTBL struct ICorDebugManagedCallbackVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugManagedCallback_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugManagedCallback_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugManagedCallback_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugManagedCallback_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugManagedCallback_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugManagedCallback_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugManagedCallback_Breakpoint(This,pAppDomain,pThread,pBreakpoint) \ - ( (This)->lpVtbl -> Breakpoint(This,pAppDomain,pThread,pBreakpoint) ) +#define ICorDebugManagedCallback_Breakpoint(This,pAppDomain,pThread,pBreakpoint) \ + ( (This)->lpVtbl -> Breakpoint(This,pAppDomain,pThread,pBreakpoint) ) -#define ICorDebugManagedCallback_StepComplete(This,pAppDomain,pThread,pStepper,reason) \ - ( (This)->lpVtbl -> StepComplete(This,pAppDomain,pThread,pStepper,reason) ) +#define ICorDebugManagedCallback_StepComplete(This,pAppDomain,pThread,pStepper,reason) \ + ( (This)->lpVtbl -> StepComplete(This,pAppDomain,pThread,pStepper,reason) ) -#define ICorDebugManagedCallback_Break(This,pAppDomain,thread) \ - ( (This)->lpVtbl -> Break(This,pAppDomain,thread) ) +#define ICorDebugManagedCallback_Break(This,pAppDomain,thread) \ + ( (This)->lpVtbl -> Break(This,pAppDomain,thread) ) -#define ICorDebugManagedCallback_Exception(This,pAppDomain,pThread,unhandled) \ - ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,unhandled) ) +#define ICorDebugManagedCallback_Exception(This,pAppDomain,pThread,unhandled) \ + ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,unhandled) ) -#define ICorDebugManagedCallback_EvalComplete(This,pAppDomain,pThread,pEval) \ - ( (This)->lpVtbl -> EvalComplete(This,pAppDomain,pThread,pEval) ) +#define ICorDebugManagedCallback_EvalComplete(This,pAppDomain,pThread,pEval) \ + ( (This)->lpVtbl -> EvalComplete(This,pAppDomain,pThread,pEval) ) -#define ICorDebugManagedCallback_EvalException(This,pAppDomain,pThread,pEval) \ - ( (This)->lpVtbl -> EvalException(This,pAppDomain,pThread,pEval) ) +#define ICorDebugManagedCallback_EvalException(This,pAppDomain,pThread,pEval) \ + ( (This)->lpVtbl -> EvalException(This,pAppDomain,pThread,pEval) ) -#define ICorDebugManagedCallback_CreateProcess(This,pProcess) \ - ( (This)->lpVtbl -> CreateProcess(This,pProcess) ) +#define ICorDebugManagedCallback_CreateProcess(This,pProcess) \ + ( (This)->lpVtbl -> CreateProcess(This,pProcess) ) -#define ICorDebugManagedCallback_ExitProcess(This,pProcess) \ - ( (This)->lpVtbl -> ExitProcess(This,pProcess) ) +#define ICorDebugManagedCallback_ExitProcess(This,pProcess) \ + ( (This)->lpVtbl -> ExitProcess(This,pProcess) ) -#define ICorDebugManagedCallback_CreateThread(This,pAppDomain,thread) \ - ( (This)->lpVtbl -> CreateThread(This,pAppDomain,thread) ) +#define ICorDebugManagedCallback_CreateThread(This,pAppDomain,thread) \ + ( (This)->lpVtbl -> CreateThread(This,pAppDomain,thread) ) -#define ICorDebugManagedCallback_ExitThread(This,pAppDomain,thread) \ - ( (This)->lpVtbl -> ExitThread(This,pAppDomain,thread) ) +#define ICorDebugManagedCallback_ExitThread(This,pAppDomain,thread) \ + ( (This)->lpVtbl -> ExitThread(This,pAppDomain,thread) ) -#define ICorDebugManagedCallback_LoadModule(This,pAppDomain,pModule) \ - ( (This)->lpVtbl -> LoadModule(This,pAppDomain,pModule) ) +#define ICorDebugManagedCallback_LoadModule(This,pAppDomain,pModule) \ + ( (This)->lpVtbl -> LoadModule(This,pAppDomain,pModule) ) -#define ICorDebugManagedCallback_UnloadModule(This,pAppDomain,pModule) \ - ( (This)->lpVtbl -> UnloadModule(This,pAppDomain,pModule) ) +#define ICorDebugManagedCallback_UnloadModule(This,pAppDomain,pModule) \ + ( (This)->lpVtbl -> UnloadModule(This,pAppDomain,pModule) ) -#define ICorDebugManagedCallback_LoadClass(This,pAppDomain,c) \ - ( (This)->lpVtbl -> LoadClass(This,pAppDomain,c) ) +#define ICorDebugManagedCallback_LoadClass(This,pAppDomain,c) \ + ( (This)->lpVtbl -> LoadClass(This,pAppDomain,c) ) -#define ICorDebugManagedCallback_UnloadClass(This,pAppDomain,c) \ - ( (This)->lpVtbl -> UnloadClass(This,pAppDomain,c) ) +#define ICorDebugManagedCallback_UnloadClass(This,pAppDomain,c) \ + ( (This)->lpVtbl -> UnloadClass(This,pAppDomain,c) ) -#define ICorDebugManagedCallback_DebuggerError(This,pProcess,errorHR,errorCode) \ - ( (This)->lpVtbl -> DebuggerError(This,pProcess,errorHR,errorCode) ) +#define ICorDebugManagedCallback_DebuggerError(This,pProcess,errorHR,errorCode) \ + ( (This)->lpVtbl -> DebuggerError(This,pProcess,errorHR,errorCode) ) -#define ICorDebugManagedCallback_LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) \ - ( (This)->lpVtbl -> LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) ) +#define ICorDebugManagedCallback_LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) \ + ( (This)->lpVtbl -> LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) ) -#define ICorDebugManagedCallback_LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) \ - ( (This)->lpVtbl -> LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) ) +#define ICorDebugManagedCallback_LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) \ + ( (This)->lpVtbl -> LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) ) -#define ICorDebugManagedCallback_CreateAppDomain(This,pProcess,pAppDomain) \ - ( (This)->lpVtbl -> CreateAppDomain(This,pProcess,pAppDomain) ) +#define ICorDebugManagedCallback_CreateAppDomain(This,pProcess,pAppDomain) \ + ( (This)->lpVtbl -> CreateAppDomain(This,pProcess,pAppDomain) ) -#define ICorDebugManagedCallback_ExitAppDomain(This,pProcess,pAppDomain) \ - ( (This)->lpVtbl -> ExitAppDomain(This,pProcess,pAppDomain) ) +#define ICorDebugManagedCallback_ExitAppDomain(This,pProcess,pAppDomain) \ + ( (This)->lpVtbl -> ExitAppDomain(This,pProcess,pAppDomain) ) -#define ICorDebugManagedCallback_LoadAssembly(This,pAppDomain,pAssembly) \ - ( (This)->lpVtbl -> LoadAssembly(This,pAppDomain,pAssembly) ) +#define ICorDebugManagedCallback_LoadAssembly(This,pAppDomain,pAssembly) \ + ( (This)->lpVtbl -> LoadAssembly(This,pAppDomain,pAssembly) ) -#define ICorDebugManagedCallback_UnloadAssembly(This,pAppDomain,pAssembly) \ - ( (This)->lpVtbl -> UnloadAssembly(This,pAppDomain,pAssembly) ) +#define ICorDebugManagedCallback_UnloadAssembly(This,pAppDomain,pAssembly) \ + ( (This)->lpVtbl -> UnloadAssembly(This,pAppDomain,pAssembly) ) -#define ICorDebugManagedCallback_ControlCTrap(This,pProcess) \ - ( (This)->lpVtbl -> ControlCTrap(This,pProcess) ) +#define ICorDebugManagedCallback_ControlCTrap(This,pProcess) \ + ( (This)->lpVtbl -> ControlCTrap(This,pProcess) ) -#define ICorDebugManagedCallback_NameChange(This,pAppDomain,pThread) \ - ( (This)->lpVtbl -> NameChange(This,pAppDomain,pThread) ) +#define ICorDebugManagedCallback_NameChange(This,pAppDomain,pThread) \ + ( (This)->lpVtbl -> NameChange(This,pAppDomain,pThread) ) -#define ICorDebugManagedCallback_UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) \ - ( (This)->lpVtbl -> UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) ) +#define ICorDebugManagedCallback_UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) \ + ( (This)->lpVtbl -> UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) ) -#define ICorDebugManagedCallback_EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) \ - ( (This)->lpVtbl -> EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) ) +#define ICorDebugManagedCallback_EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) \ + ( (This)->lpVtbl -> EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) ) -#define ICorDebugManagedCallback_BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) \ - ( (This)->lpVtbl -> BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) ) +#define ICorDebugManagedCallback_BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) \ + ( (This)->lpVtbl -> BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugManagedCallback_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugManagedCallback_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0016 */ -/* [local] */ +/* [local] */ #pragma warning(pop) #pragma warning(push) @@ -3874,51 +3732,47 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0016_v0_0_s_ifspec; #define __ICorDebugManagedCallback3_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugManagedCallback3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("264EA0FC-2591-49AA-868E-835E6515323F") ICorDebugManagedCallback3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CustomNotification( + virtual HRESULT STDMETHODCALLTYPE CustomNotification( /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugAppDomain *pAppDomain) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugManagedCallback3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback3 * This); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback3, CustomNotification) - HRESULT ( STDMETHODCALLTYPE *CustomNotification )( + + HRESULT ( STDMETHODCALLTYPE *CustomNotification )( ICorDebugManagedCallback3 * This, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugAppDomain *pAppDomain); - + END_INTERFACE } ICorDebugManagedCallback3Vtbl; @@ -3927,104 +3781,98 @@ EXTERN_C const IID IID_ICorDebugManagedCallback3; CONST_VTBL struct ICorDebugManagedCallback3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugManagedCallback3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugManagedCallback3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugManagedCallback3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugManagedCallback3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugManagedCallback3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugManagedCallback3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugManagedCallback3_CustomNotification(This,pThread,pAppDomain) \ - ( (This)->lpVtbl -> CustomNotification(This,pThread,pAppDomain) ) +#define ICorDebugManagedCallback3_CustomNotification(This,pThread,pAppDomain) \ + ( (This)->lpVtbl -> CustomNotification(This,pThread,pAppDomain) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugManagedCallback3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugManagedCallback3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugManagedCallback4_INTERFACE_DEFINED__ #define __ICorDebugManagedCallback4_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugManagedCallback4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("322911AE-16A5-49BA-84A3-ED69678138A3") ICorDebugManagedCallback4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE BeforeGarbageCollection( + virtual HRESULT STDMETHODCALLTYPE BeforeGarbageCollection( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE AfterGarbageCollection( + + virtual HRESULT STDMETHODCALLTYPE AfterGarbageCollection( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE DataBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE DataBreakpoint( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugThread *pThread, /* [in] */ BYTE *pContext, /* [in] */ ULONG32 contextSize) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugManagedCallback4Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback4 * This); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback4, BeforeGarbageCollection) - HRESULT ( STDMETHODCALLTYPE *BeforeGarbageCollection )( + + HRESULT ( STDMETHODCALLTYPE *BeforeGarbageCollection )( ICorDebugManagedCallback4 * This, /* [in] */ ICorDebugProcess *pProcess); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback4, AfterGarbageCollection) - HRESULT ( STDMETHODCALLTYPE *AfterGarbageCollection )( + + HRESULT ( STDMETHODCALLTYPE *AfterGarbageCollection )( ICorDebugManagedCallback4 * This, /* [in] */ ICorDebugProcess *pProcess); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback4, DataBreakpoint) - HRESULT ( STDMETHODCALLTYPE *DataBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *DataBreakpoint )( ICorDebugManagedCallback4 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugThread *pThread, /* [in] */ BYTE *pContext, /* [in] */ ULONG32 contextSize); - + END_INTERFACE } ICorDebugManagedCallback4Vtbl; @@ -4033,45 +3881,45 @@ EXTERN_C const IID IID_ICorDebugManagedCallback4; CONST_VTBL struct ICorDebugManagedCallback4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugManagedCallback4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugManagedCallback4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugManagedCallback4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugManagedCallback4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugManagedCallback4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugManagedCallback4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugManagedCallback4_BeforeGarbageCollection(This,pProcess) \ - ( (This)->lpVtbl -> BeforeGarbageCollection(This,pProcess) ) +#define ICorDebugManagedCallback4_BeforeGarbageCollection(This,pProcess) \ + ( (This)->lpVtbl -> BeforeGarbageCollection(This,pProcess) ) -#define ICorDebugManagedCallback4_AfterGarbageCollection(This,pProcess) \ - ( (This)->lpVtbl -> AfterGarbageCollection(This,pProcess) ) +#define ICorDebugManagedCallback4_AfterGarbageCollection(This,pProcess) \ + ( (This)->lpVtbl -> AfterGarbageCollection(This,pProcess) ) -#define ICorDebugManagedCallback4_DataBreakpoint(This,pProcess,pThread,pContext,contextSize) \ - ( (This)->lpVtbl -> DataBreakpoint(This,pProcess,pThread,pContext,contextSize) ) +#define ICorDebugManagedCallback4_DataBreakpoint(This,pProcess,pThread,pContext,contextSize) \ + ( (This)->lpVtbl -> DataBreakpoint(This,pProcess,pThread,pContext,contextSize) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugManagedCallback4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugManagedCallback4_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0018 */ -/* [local] */ +/* [local] */ -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_c_ifspec; @@ -4081,138 +3929,130 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_s_ifspec; #define __ICorDebugManagedCallback2_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugExceptionCallbackType { - DEBUG_EXCEPTION_FIRST_CHANCE = 1, - DEBUG_EXCEPTION_USER_FIRST_CHANCE = 2, - DEBUG_EXCEPTION_CATCH_HANDLER_FOUND = 3, - DEBUG_EXCEPTION_UNHANDLED = 4 - } CorDebugExceptionCallbackType; + DEBUG_EXCEPTION_FIRST_CHANCE = 1, + DEBUG_EXCEPTION_USER_FIRST_CHANCE = 2, + DEBUG_EXCEPTION_CATCH_HANDLER_FOUND = 3, + DEBUG_EXCEPTION_UNHANDLED = 4 + } CorDebugExceptionCallbackType; -typedef +typedef enum CorDebugExceptionFlags { - DEBUG_EXCEPTION_NONE = 0, - DEBUG_EXCEPTION_CAN_BE_INTERCEPTED = 0x1 - } CorDebugExceptionFlags; + DEBUG_EXCEPTION_NONE = 0, + DEBUG_EXCEPTION_CAN_BE_INTERCEPTED = 0x1 + } CorDebugExceptionFlags; -typedef +typedef enum CorDebugExceptionUnwindCallbackType { - DEBUG_EXCEPTION_UNWIND_BEGIN = 1, - DEBUG_EXCEPTION_INTERCEPTED = 2 - } CorDebugExceptionUnwindCallbackType; + DEBUG_EXCEPTION_UNWIND_BEGIN = 1, + DEBUG_EXCEPTION_INTERCEPTED = 2 + } CorDebugExceptionUnwindCallbackType; EXTERN_C const IID IID_ICorDebugManagedCallback2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("250E5EEA-DB5C-4C76-B6F3-8C46F12E3203") ICorDebugManagedCallback2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE FunctionRemapOpportunity( + virtual HRESULT STDMETHODCALLTYPE FunctionRemapOpportunity( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pOldFunction, /* [in] */ ICorDebugFunction *pNewFunction, /* [in] */ ULONG32 oldILOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateConnection( + + virtual HRESULT STDMETHODCALLTYPE CreateConnection( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId, /* [in] */ WCHAR *pConnName) = 0; - - virtual HRESULT STDMETHODCALLTYPE ChangeConnection( + + virtual HRESULT STDMETHODCALLTYPE ChangeConnection( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId) = 0; - - virtual HRESULT STDMETHODCALLTYPE DestroyConnection( + + virtual HRESULT STDMETHODCALLTYPE DestroyConnection( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId) = 0; - - virtual HRESULT STDMETHODCALLTYPE Exception( + + virtual HRESULT STDMETHODCALLTYPE Exception( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFrame *pFrame, /* [in] */ ULONG32 nOffset, /* [in] */ CorDebugExceptionCallbackType dwEventType, /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExceptionUnwind( + + virtual HRESULT STDMETHODCALLTYPE ExceptionUnwind( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ CorDebugExceptionUnwindCallbackType dwEventType, /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE FunctionRemapComplete( + + virtual HRESULT STDMETHODCALLTYPE FunctionRemapComplete( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE MDANotification( + + virtual HRESULT STDMETHODCALLTYPE MDANotification( /* [in] */ ICorDebugController *pController, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugMDA *pMDA) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugManagedCallback2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback2 * This); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, FunctionRemapOpportunity) - HRESULT ( STDMETHODCALLTYPE *FunctionRemapOpportunity )( + + HRESULT ( STDMETHODCALLTYPE *FunctionRemapOpportunity )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pOldFunction, /* [in] */ ICorDebugFunction *pNewFunction, /* [in] */ ULONG32 oldILOffset); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, CreateConnection) - HRESULT ( STDMETHODCALLTYPE *CreateConnection )( + + HRESULT ( STDMETHODCALLTYPE *CreateConnection )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId, /* [in] */ WCHAR *pConnName); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, ChangeConnection) - HRESULT ( STDMETHODCALLTYPE *ChangeConnection )( + + HRESULT ( STDMETHODCALLTYPE *ChangeConnection )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, DestroyConnection) - HRESULT ( STDMETHODCALLTYPE *DestroyConnection )( + + HRESULT ( STDMETHODCALLTYPE *DestroyConnection )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, Exception) - HRESULT ( STDMETHODCALLTYPE *Exception )( + + HRESULT ( STDMETHODCALLTYPE *Exception )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, @@ -4220,29 +4060,26 @@ EXTERN_C const IID IID_ICorDebugManagedCallback2; /* [in] */ ULONG32 nOffset, /* [in] */ CorDebugExceptionCallbackType dwEventType, /* [in] */ DWORD dwFlags); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, ExceptionUnwind) - HRESULT ( STDMETHODCALLTYPE *ExceptionUnwind )( + + HRESULT ( STDMETHODCALLTYPE *ExceptionUnwind )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ CorDebugExceptionUnwindCallbackType dwEventType, /* [in] */ DWORD dwFlags); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, FunctionRemapComplete) - HRESULT ( STDMETHODCALLTYPE *FunctionRemapComplete )( + + HRESULT ( STDMETHODCALLTYPE *FunctionRemapComplete )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction); - - DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, MDANotification) - HRESULT ( STDMETHODCALLTYPE *MDANotification )( + + HRESULT ( STDMETHODCALLTYPE *MDANotification )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugController *pController, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugMDA *pMDA); - + END_INTERFACE } ICorDebugManagedCallback2Vtbl; @@ -4251,58 +4088,58 @@ EXTERN_C const IID IID_ICorDebugManagedCallback2; CONST_VTBL struct ICorDebugManagedCallback2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugManagedCallback2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugManagedCallback2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugManagedCallback2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugManagedCallback2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugManagedCallback2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugManagedCallback2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugManagedCallback2_FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) \ - ( (This)->lpVtbl -> FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) ) +#define ICorDebugManagedCallback2_FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) \ + ( (This)->lpVtbl -> FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) ) -#define ICorDebugManagedCallback2_CreateConnection(This,pProcess,dwConnectionId,pConnName) \ - ( (This)->lpVtbl -> CreateConnection(This,pProcess,dwConnectionId,pConnName) ) +#define ICorDebugManagedCallback2_CreateConnection(This,pProcess,dwConnectionId,pConnName) \ + ( (This)->lpVtbl -> CreateConnection(This,pProcess,dwConnectionId,pConnName) ) -#define ICorDebugManagedCallback2_ChangeConnection(This,pProcess,dwConnectionId) \ - ( (This)->lpVtbl -> ChangeConnection(This,pProcess,dwConnectionId) ) +#define ICorDebugManagedCallback2_ChangeConnection(This,pProcess,dwConnectionId) \ + ( (This)->lpVtbl -> ChangeConnection(This,pProcess,dwConnectionId) ) -#define ICorDebugManagedCallback2_DestroyConnection(This,pProcess,dwConnectionId) \ - ( (This)->lpVtbl -> DestroyConnection(This,pProcess,dwConnectionId) ) +#define ICorDebugManagedCallback2_DestroyConnection(This,pProcess,dwConnectionId) \ + ( (This)->lpVtbl -> DestroyConnection(This,pProcess,dwConnectionId) ) -#define ICorDebugManagedCallback2_Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) \ - ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) ) +#define ICorDebugManagedCallback2_Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) \ + ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) ) -#define ICorDebugManagedCallback2_ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) \ - ( (This)->lpVtbl -> ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) ) +#define ICorDebugManagedCallback2_ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) \ + ( (This)->lpVtbl -> ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) ) -#define ICorDebugManagedCallback2_FunctionRemapComplete(This,pAppDomain,pThread,pFunction) \ - ( (This)->lpVtbl -> FunctionRemapComplete(This,pAppDomain,pThread,pFunction) ) +#define ICorDebugManagedCallback2_FunctionRemapComplete(This,pAppDomain,pThread,pFunction) \ + ( (This)->lpVtbl -> FunctionRemapComplete(This,pAppDomain,pThread,pFunction) ) -#define ICorDebugManagedCallback2_MDANotification(This,pController,pThread,pMDA) \ - ( (This)->lpVtbl -> MDANotification(This,pController,pThread,pMDA) ) +#define ICorDebugManagedCallback2_MDANotification(This,pController,pThread,pMDA) \ + ( (This)->lpVtbl -> MDANotification(This,pController,pThread,pMDA) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugManagedCallback2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugManagedCallback2_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0019 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -4314,51 +4151,47 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0019_v0_0_s_ifspec; #define __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ /* interface ICorDebugUnmanagedCallback */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugUnmanagedCallback; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5263E909-8CB5-11d3-BD2F-0000F80849BD") ICorDebugUnmanagedCallback : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE DebugEvent( + virtual HRESULT STDMETHODCALLTYPE DebugEvent( /* [in] */ LPDEBUG_EVENT pDebugEvent, /* [in] */ BOOL fOutOfBand) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugUnmanagedCallbackVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugUnmanagedCallback * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugUnmanagedCallback * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugUnmanagedCallback * This); - - DECLSPEC_XFGVIRT(ICorDebugUnmanagedCallback, DebugEvent) - HRESULT ( STDMETHODCALLTYPE *DebugEvent )( + + HRESULT ( STDMETHODCALLTYPE *DebugEvent )( ICorDebugUnmanagedCallback * This, /* [in] */ LPDEBUG_EVENT pDebugEvent, /* [in] */ BOOL fOutOfBand); - + END_INTERFACE } ICorDebugUnmanagedCallbackVtbl; @@ -4367,54 +4200,54 @@ EXTERN_C const IID IID_ICorDebugUnmanagedCallback; CONST_VTBL struct ICorDebugUnmanagedCallbackVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugUnmanagedCallback_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugUnmanagedCallback_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugUnmanagedCallback_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugUnmanagedCallback_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugUnmanagedCallback_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugUnmanagedCallback_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugUnmanagedCallback_DebugEvent(This,pDebugEvent,fOutOfBand) \ - ( (This)->lpVtbl -> DebugEvent(This,pDebugEvent,fOutOfBand) ) +#define ICorDebugUnmanagedCallback_DebugEvent(This,pDebugEvent,fOutOfBand) \ + ( (This)->lpVtbl -> DebugEvent(This,pDebugEvent,fOutOfBand) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0020 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugCreateProcessFlags { - DEBUG_NO_SPECIAL_OPTIONS = 0 - } CorDebugCreateProcessFlags; + DEBUG_NO_SPECIAL_OPTIONS = 0 + } CorDebugCreateProcessFlags; -typedef +typedef enum CorDebugHandleType { - HANDLE_STRONG = 1, - HANDLE_WEAK_TRACK_RESURRECTION = 2, - HANDLE_PINNED = 3 - } CorDebugHandleType; + HANDLE_STRONG = 1, + HANDLE_WEAK_TRACK_RESURRECTION = 2, + HANDLE_PINNED = 3 + } CorDebugHandleType; #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_c_ifspec; @@ -4424,28 +4257,28 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_s_ifspec; #define __ICorDebug_INTERFACE_DEFINED__ /* interface ICorDebug */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebug; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f61-7538-11d3-8d5b-00104b35e7ef") ICorDebug : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Initialize( void) = 0; - + virtual HRESULT STDMETHODCALLTYPE Terminate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetManagedHandler( + + virtual HRESULT STDMETHODCALLTYPE SetManagedHandler( /* [in] */ ICorDebugManagedCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnmanagedHandler( + + virtual HRESULT STDMETHODCALLTYPE SetUnmanagedHandler( /* [in] */ ICorDebugUnmanagedCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateProcess( + + virtual HRESULT STDMETHODCALLTYPE CreateProcess( /* [in] */ LPCWSTR lpApplicationName, /* [in] */ LPWSTR lpCommandLine, /* [in] */ LPSECURITY_ATTRIBUTES lpProcessAttributes, @@ -4458,67 +4291,59 @@ EXTERN_C const IID IID_ICorDebug; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebugActiveProcess( + + virtual HRESULT STDMETHODCALLTYPE DebugActiveProcess( /* [in] */ DWORD id, /* [in] */ BOOL win32Attach, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateProcesses( + + virtual HRESULT STDMETHODCALLTYPE EnumerateProcesses( /* [out] */ ICorDebugProcessEnum **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetProcess( + + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [in] */ DWORD dwProcessId, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanLaunchOrAttach( + + virtual HRESULT STDMETHODCALLTYPE CanLaunchOrAttach( /* [in] */ DWORD dwProcessId, /* [in] */ BOOL win32DebuggingEnabled) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebug * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebug * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebug * This); - - DECLSPEC_XFGVIRT(ICorDebug, Initialize) - HRESULT ( STDMETHODCALLTYPE *Initialize )( + + HRESULT ( STDMETHODCALLTYPE *Initialize )( ICorDebug * This); - - DECLSPEC_XFGVIRT(ICorDebug, Terminate) - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebug * This); - - DECLSPEC_XFGVIRT(ICorDebug, SetManagedHandler) - HRESULT ( STDMETHODCALLTYPE *SetManagedHandler )( + + HRESULT ( STDMETHODCALLTYPE *SetManagedHandler )( ICorDebug * This, /* [in] */ ICorDebugManagedCallback *pCallback); - - DECLSPEC_XFGVIRT(ICorDebug, SetUnmanagedHandler) - HRESULT ( STDMETHODCALLTYPE *SetUnmanagedHandler )( + + HRESULT ( STDMETHODCALLTYPE *SetUnmanagedHandler )( ICorDebug * This, /* [in] */ ICorDebugUnmanagedCallback *pCallback); - - DECLSPEC_XFGVIRT(ICorDebug, CreateProcess) - HRESULT ( STDMETHODCALLTYPE *CreateProcess )( + + HRESULT ( STDMETHODCALLTYPE *CreateProcess )( ICorDebug * This, /* [in] */ LPCWSTR lpApplicationName, /* [in] */ LPWSTR lpCommandLine, @@ -4532,31 +4357,27 @@ EXTERN_C const IID IID_ICorDebug; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess); - - DECLSPEC_XFGVIRT(ICorDebug, DebugActiveProcess) - HRESULT ( STDMETHODCALLTYPE *DebugActiveProcess )( + + HRESULT ( STDMETHODCALLTYPE *DebugActiveProcess )( ICorDebug * This, /* [in] */ DWORD id, /* [in] */ BOOL win32Attach, /* [out] */ ICorDebugProcess **ppProcess); - - DECLSPEC_XFGVIRT(ICorDebug, EnumerateProcesses) - HRESULT ( STDMETHODCALLTYPE *EnumerateProcesses )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateProcesses )( ICorDebug * This, /* [out] */ ICorDebugProcessEnum **ppProcess); - - DECLSPEC_XFGVIRT(ICorDebug, GetProcess) - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebug * This, /* [in] */ DWORD dwProcessId, /* [out] */ ICorDebugProcess **ppProcess); - - DECLSPEC_XFGVIRT(ICorDebug, CanLaunchOrAttach) - HRESULT ( STDMETHODCALLTYPE *CanLaunchOrAttach )( + + HRESULT ( STDMETHODCALLTYPE *CanLaunchOrAttach )( ICorDebug * This, /* [in] */ DWORD dwProcessId, /* [in] */ BOOL win32DebuggingEnabled); - + END_INTERFACE } ICorDebugVtbl; @@ -4565,61 +4386,61 @@ EXTERN_C const IID IID_ICorDebug; CONST_VTBL struct ICorDebugVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebug_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebug_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebug_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebug_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebug_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebug_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebug_Initialize(This) \ - ( (This)->lpVtbl -> Initialize(This) ) +#define ICorDebug_Initialize(This) \ + ( (This)->lpVtbl -> Initialize(This) ) -#define ICorDebug_Terminate(This) \ - ( (This)->lpVtbl -> Terminate(This) ) +#define ICorDebug_Terminate(This) \ + ( (This)->lpVtbl -> Terminate(This) ) -#define ICorDebug_SetManagedHandler(This,pCallback) \ - ( (This)->lpVtbl -> SetManagedHandler(This,pCallback) ) +#define ICorDebug_SetManagedHandler(This,pCallback) \ + ( (This)->lpVtbl -> SetManagedHandler(This,pCallback) ) -#define ICorDebug_SetUnmanagedHandler(This,pCallback) \ - ( (This)->lpVtbl -> SetUnmanagedHandler(This,pCallback) ) +#define ICorDebug_SetUnmanagedHandler(This,pCallback) \ + ( (This)->lpVtbl -> SetUnmanagedHandler(This,pCallback) ) -#define ICorDebug_CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ - ( (This)->lpVtbl -> CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) +#define ICorDebug_CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ + ( (This)->lpVtbl -> CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) -#define ICorDebug_DebugActiveProcess(This,id,win32Attach,ppProcess) \ - ( (This)->lpVtbl -> DebugActiveProcess(This,id,win32Attach,ppProcess) ) +#define ICorDebug_DebugActiveProcess(This,id,win32Attach,ppProcess) \ + ( (This)->lpVtbl -> DebugActiveProcess(This,id,win32Attach,ppProcess) ) -#define ICorDebug_EnumerateProcesses(This,ppProcess) \ - ( (This)->lpVtbl -> EnumerateProcesses(This,ppProcess) ) +#define ICorDebug_EnumerateProcesses(This,ppProcess) \ + ( (This)->lpVtbl -> EnumerateProcesses(This,ppProcess) ) -#define ICorDebug_GetProcess(This,dwProcessId,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,dwProcessId,ppProcess) ) +#define ICorDebug_GetProcess(This,dwProcessId,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,dwProcessId,ppProcess) ) -#define ICorDebug_CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) \ - ( (This)->lpVtbl -> CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) ) +#define ICorDebug_CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) \ + ( (This)->lpVtbl -> CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebug_INTERFACE_DEFINED__ */ +#endif /* __ICorDebug_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0021 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -4631,57 +4452,53 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0021_v0_0_s_ifspec; #define __ICorDebugRemoteTarget_INTERFACE_DEFINED__ /* interface ICorDebugRemoteTarget */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRemoteTarget; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("C3ED8383-5A49-4cf5-B4B7-01864D9E582D") ICorDebugRemoteTarget : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetHostName( + virtual HRESULT STDMETHODCALLTYPE GetHostName( /* [in] */ ULONG32 cchHostName, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchHostName, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_opt_(cchHostName, *pcchHostName) WCHAR szHostName[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRemoteTargetVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRemoteTarget * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRemoteTarget * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRemoteTarget * This); - - DECLSPEC_XFGVIRT(ICorDebugRemoteTarget, GetHostName) - HRESULT ( STDMETHODCALLTYPE *GetHostName )( + + HRESULT ( STDMETHODCALLTYPE *GetHostName )( ICorDebugRemoteTarget * This, /* [in] */ ULONG32 cchHostName, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchHostName, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_opt_(cchHostName, *pcchHostName) WCHAR szHostName[ ]); - + END_INTERFACE } ICorDebugRemoteTargetVtbl; @@ -4690,54 +4507,54 @@ EXTERN_C const IID IID_ICorDebugRemoteTarget; CONST_VTBL struct ICorDebugRemoteTargetVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRemoteTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRemoteTarget_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRemoteTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRemoteTarget_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRemoteTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRemoteTarget_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRemoteTarget_GetHostName(This,cchHostName,pcchHostName,szHostName) \ - ( (This)->lpVtbl -> GetHostName(This,cchHostName,pcchHostName,szHostName) ) +#define ICorDebugRemoteTarget_GetHostName(This,cchHostName,pcchHostName,szHostName) \ + ( (This)->lpVtbl -> GetHostName(This,cchHostName,pcchHostName,szHostName) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRemoteTarget_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRemoteTarget_INTERFACE_DEFINED__ */ #ifndef __ICorDebugRemote_INTERFACE_DEFINED__ #define __ICorDebugRemote_INTERFACE_DEFINED__ /* interface ICorDebugRemote */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRemote; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D5EBB8E2-7BBE-4c1d-98A6-A3C04CBDEF64") ICorDebugRemote : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateProcessEx( + virtual HRESULT STDMETHODCALLTYPE CreateProcessEx( /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ LPCWSTR lpApplicationName, - /* [annotation][in] */ + /* [annotation][in] */ _In_ LPWSTR lpCommandLine, /* [in] */ LPSECURITY_ATTRIBUTES lpProcessAttributes, /* [in] */ LPSECURITY_ATTRIBUTES lpThreadAttributes, @@ -4749,43 +4566,39 @@ EXTERN_C const IID IID_ICorDebugRemote; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebugActiveProcessEx( + + virtual HRESULT STDMETHODCALLTYPE DebugActiveProcessEx( /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ DWORD dwProcessId, /* [in] */ BOOL fWin32Attach, /* [out] */ ICorDebugProcess **ppProcess) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRemoteVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRemote * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRemote * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRemote * This); - - DECLSPEC_XFGVIRT(ICorDebugRemote, CreateProcessEx) - HRESULT ( STDMETHODCALLTYPE *CreateProcessEx )( + + HRESULT ( STDMETHODCALLTYPE *CreateProcessEx )( ICorDebugRemote * This, /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ LPCWSTR lpApplicationName, - /* [annotation][in] */ + /* [annotation][in] */ _In_ LPWSTR lpCommandLine, /* [in] */ LPSECURITY_ATTRIBUTES lpProcessAttributes, /* [in] */ LPSECURITY_ATTRIBUTES lpThreadAttributes, @@ -4797,15 +4610,14 @@ EXTERN_C const IID IID_ICorDebugRemote; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess); - - DECLSPEC_XFGVIRT(ICorDebugRemote, DebugActiveProcessEx) - HRESULT ( STDMETHODCALLTYPE *DebugActiveProcessEx )( + + HRESULT ( STDMETHODCALLTYPE *DebugActiveProcessEx )( ICorDebugRemote * This, /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ DWORD dwProcessId, /* [in] */ BOOL fWin32Attach, /* [out] */ ICorDebugProcess **ppProcess); - + END_INTERFACE } ICorDebugRemoteVtbl; @@ -4814,40 +4626,40 @@ EXTERN_C const IID IID_ICorDebugRemote; CONST_VTBL struct ICorDebugRemoteVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRemote_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRemote_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRemote_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRemote_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRemote_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRemote_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRemote_CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ - ( (This)->lpVtbl -> CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) +#define ICorDebugRemote_CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ + ( (This)->lpVtbl -> CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) -#define ICorDebugRemote_DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) \ - ( (This)->lpVtbl -> DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) ) +#define ICorDebugRemote_DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) \ + ( (This)->lpVtbl -> DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRemote_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRemote_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0023 */ -/* [local] */ +/* [local] */ typedef struct _COR_VERSION { @@ -4855,7 +4667,7 @@ typedef struct _COR_VERSION DWORD dwMinor; DWORD dwBuild; DWORD dwSubBuild; - } COR_VERSION; + } COR_VERSION; @@ -4866,131 +4678,128 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0023_v0_0_s_ifspec; #define __ICorDebug2_INTERFACE_DEFINED__ /* interface ICorDebug2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugInterfaceVersion { - CorDebugInvalidVersion = 0, - CorDebugVersion_1_0 = ( CorDebugInvalidVersion + 1 ) , - ver_ICorDebugManagedCallback = CorDebugVersion_1_0, - ver_ICorDebugUnmanagedCallback = CorDebugVersion_1_0, - ver_ICorDebug = CorDebugVersion_1_0, - ver_ICorDebugController = CorDebugVersion_1_0, - ver_ICorDebugAppDomain = CorDebugVersion_1_0, - ver_ICorDebugAssembly = CorDebugVersion_1_0, - ver_ICorDebugProcess = CorDebugVersion_1_0, - ver_ICorDebugBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugFunctionBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugModuleBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugValueBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugStepper = CorDebugVersion_1_0, - ver_ICorDebugRegisterSet = CorDebugVersion_1_0, - ver_ICorDebugThread = CorDebugVersion_1_0, - ver_ICorDebugChain = CorDebugVersion_1_0, - ver_ICorDebugFrame = CorDebugVersion_1_0, - ver_ICorDebugILFrame = CorDebugVersion_1_0, - ver_ICorDebugNativeFrame = CorDebugVersion_1_0, - ver_ICorDebugModule = CorDebugVersion_1_0, - ver_ICorDebugFunction = CorDebugVersion_1_0, - ver_ICorDebugCode = CorDebugVersion_1_0, - ver_ICorDebugClass = CorDebugVersion_1_0, - ver_ICorDebugEval = CorDebugVersion_1_0, - ver_ICorDebugValue = CorDebugVersion_1_0, - ver_ICorDebugGenericValue = CorDebugVersion_1_0, - ver_ICorDebugReferenceValue = CorDebugVersion_1_0, - ver_ICorDebugHeapValue = CorDebugVersion_1_0, - ver_ICorDebugObjectValue = CorDebugVersion_1_0, - ver_ICorDebugBoxValue = CorDebugVersion_1_0, - ver_ICorDebugStringValue = CorDebugVersion_1_0, - ver_ICorDebugArrayValue = CorDebugVersion_1_0, - ver_ICorDebugContext = CorDebugVersion_1_0, - ver_ICorDebugEnum = CorDebugVersion_1_0, - ver_ICorDebugObjectEnum = CorDebugVersion_1_0, - ver_ICorDebugBreakpointEnum = CorDebugVersion_1_0, - ver_ICorDebugStepperEnum = CorDebugVersion_1_0, - ver_ICorDebugProcessEnum = CorDebugVersion_1_0, - ver_ICorDebugThreadEnum = CorDebugVersion_1_0, - ver_ICorDebugFrameEnum = CorDebugVersion_1_0, - ver_ICorDebugChainEnum = CorDebugVersion_1_0, - ver_ICorDebugModuleEnum = CorDebugVersion_1_0, - ver_ICorDebugValueEnum = CorDebugVersion_1_0, - ver_ICorDebugCodeEnum = CorDebugVersion_1_0, - ver_ICorDebugTypeEnum = CorDebugVersion_1_0, - ver_ICorDebugErrorInfoEnum = CorDebugVersion_1_0, - ver_ICorDebugAppDomainEnum = CorDebugVersion_1_0, - ver_ICorDebugAssemblyEnum = CorDebugVersion_1_0, - ver_ICorDebugEditAndContinueErrorInfo = CorDebugVersion_1_0, - ver_ICorDebugEditAndContinueSnapshot = CorDebugVersion_1_0, - CorDebugVersion_1_1 = ( CorDebugVersion_1_0 + 1 ) , - CorDebugVersion_2_0 = ( CorDebugVersion_1_1 + 1 ) , - ver_ICorDebugManagedCallback2 = CorDebugVersion_2_0, - ver_ICorDebugAppDomain2 = CorDebugVersion_2_0, - ver_ICorDebugAssembly2 = CorDebugVersion_2_0, - ver_ICorDebugProcess2 = CorDebugVersion_2_0, - ver_ICorDebugStepper2 = CorDebugVersion_2_0, - ver_ICorDebugRegisterSet2 = CorDebugVersion_2_0, - ver_ICorDebugThread2 = CorDebugVersion_2_0, - ver_ICorDebugILFrame2 = CorDebugVersion_2_0, - ver_ICorDebugInternalFrame = CorDebugVersion_2_0, - ver_ICorDebugModule2 = CorDebugVersion_2_0, - ver_ICorDebugFunction2 = CorDebugVersion_2_0, - ver_ICorDebugCode2 = CorDebugVersion_2_0, - ver_ICorDebugClass2 = CorDebugVersion_2_0, - ver_ICorDebugValue2 = CorDebugVersion_2_0, - ver_ICorDebugEval2 = CorDebugVersion_2_0, - ver_ICorDebugObjectValue2 = CorDebugVersion_2_0, - CorDebugVersion_4_0 = ( CorDebugVersion_2_0 + 1 ) , - ver_ICorDebugThread3 = CorDebugVersion_4_0, - ver_ICorDebugThread4 = CorDebugVersion_4_0, - ver_ICorDebugStackWalk = CorDebugVersion_4_0, - ver_ICorDebugNativeFrame2 = CorDebugVersion_4_0, - ver_ICorDebugInternalFrame2 = CorDebugVersion_4_0, - ver_ICorDebugRuntimeUnwindableFrame = CorDebugVersion_4_0, - ver_ICorDebugHeapValue3 = CorDebugVersion_4_0, - ver_ICorDebugBlockingObjectEnum = CorDebugVersion_4_0, - ver_ICorDebugValue3 = CorDebugVersion_4_0, - CorDebugVersion_4_5 = ( CorDebugVersion_4_0 + 1 ) , - ver_ICorDebugComObjectValue = CorDebugVersion_4_5, - ver_ICorDebugAppDomain3 = CorDebugVersion_4_5, - ver_ICorDebugCode3 = CorDebugVersion_4_5, - ver_ICorDebugILFrame3 = CorDebugVersion_4_5, - CorDebugLatestVersion = CorDebugVersion_4_5 - } CorDebugInterfaceVersion; + CorDebugInvalidVersion = 0, + CorDebugVersion_1_0 = ( CorDebugInvalidVersion + 1 ) , + ver_ICorDebugManagedCallback = CorDebugVersion_1_0, + ver_ICorDebugUnmanagedCallback = CorDebugVersion_1_0, + ver_ICorDebug = CorDebugVersion_1_0, + ver_ICorDebugController = CorDebugVersion_1_0, + ver_ICorDebugAppDomain = CorDebugVersion_1_0, + ver_ICorDebugAssembly = CorDebugVersion_1_0, + ver_ICorDebugProcess = CorDebugVersion_1_0, + ver_ICorDebugBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugFunctionBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugModuleBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugValueBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugStepper = CorDebugVersion_1_0, + ver_ICorDebugRegisterSet = CorDebugVersion_1_0, + ver_ICorDebugThread = CorDebugVersion_1_0, + ver_ICorDebugChain = CorDebugVersion_1_0, + ver_ICorDebugFrame = CorDebugVersion_1_0, + ver_ICorDebugILFrame = CorDebugVersion_1_0, + ver_ICorDebugNativeFrame = CorDebugVersion_1_0, + ver_ICorDebugModule = CorDebugVersion_1_0, + ver_ICorDebugFunction = CorDebugVersion_1_0, + ver_ICorDebugCode = CorDebugVersion_1_0, + ver_ICorDebugClass = CorDebugVersion_1_0, + ver_ICorDebugEval = CorDebugVersion_1_0, + ver_ICorDebugValue = CorDebugVersion_1_0, + ver_ICorDebugGenericValue = CorDebugVersion_1_0, + ver_ICorDebugReferenceValue = CorDebugVersion_1_0, + ver_ICorDebugHeapValue = CorDebugVersion_1_0, + ver_ICorDebugObjectValue = CorDebugVersion_1_0, + ver_ICorDebugBoxValue = CorDebugVersion_1_0, + ver_ICorDebugStringValue = CorDebugVersion_1_0, + ver_ICorDebugArrayValue = CorDebugVersion_1_0, + ver_ICorDebugContext = CorDebugVersion_1_0, + ver_ICorDebugEnum = CorDebugVersion_1_0, + ver_ICorDebugObjectEnum = CorDebugVersion_1_0, + ver_ICorDebugBreakpointEnum = CorDebugVersion_1_0, + ver_ICorDebugStepperEnum = CorDebugVersion_1_0, + ver_ICorDebugProcessEnum = CorDebugVersion_1_0, + ver_ICorDebugThreadEnum = CorDebugVersion_1_0, + ver_ICorDebugFrameEnum = CorDebugVersion_1_0, + ver_ICorDebugChainEnum = CorDebugVersion_1_0, + ver_ICorDebugModuleEnum = CorDebugVersion_1_0, + ver_ICorDebugValueEnum = CorDebugVersion_1_0, + ver_ICorDebugCodeEnum = CorDebugVersion_1_0, + ver_ICorDebugTypeEnum = CorDebugVersion_1_0, + ver_ICorDebugErrorInfoEnum = CorDebugVersion_1_0, + ver_ICorDebugAppDomainEnum = CorDebugVersion_1_0, + ver_ICorDebugAssemblyEnum = CorDebugVersion_1_0, + ver_ICorDebugEditAndContinueErrorInfo = CorDebugVersion_1_0, + ver_ICorDebugEditAndContinueSnapshot = CorDebugVersion_1_0, + CorDebugVersion_1_1 = ( CorDebugVersion_1_0 + 1 ) , + CorDebugVersion_2_0 = ( CorDebugVersion_1_1 + 1 ) , + ver_ICorDebugManagedCallback2 = CorDebugVersion_2_0, + ver_ICorDebugAppDomain2 = CorDebugVersion_2_0, + ver_ICorDebugAssembly2 = CorDebugVersion_2_0, + ver_ICorDebugProcess2 = CorDebugVersion_2_0, + ver_ICorDebugStepper2 = CorDebugVersion_2_0, + ver_ICorDebugRegisterSet2 = CorDebugVersion_2_0, + ver_ICorDebugThread2 = CorDebugVersion_2_0, + ver_ICorDebugILFrame2 = CorDebugVersion_2_0, + ver_ICorDebugInternalFrame = CorDebugVersion_2_0, + ver_ICorDebugModule2 = CorDebugVersion_2_0, + ver_ICorDebugFunction2 = CorDebugVersion_2_0, + ver_ICorDebugCode2 = CorDebugVersion_2_0, + ver_ICorDebugClass2 = CorDebugVersion_2_0, + ver_ICorDebugValue2 = CorDebugVersion_2_0, + ver_ICorDebugEval2 = CorDebugVersion_2_0, + ver_ICorDebugObjectValue2 = CorDebugVersion_2_0, + CorDebugVersion_4_0 = ( CorDebugVersion_2_0 + 1 ) , + ver_ICorDebugThread3 = CorDebugVersion_4_0, + ver_ICorDebugThread4 = CorDebugVersion_4_0, + ver_ICorDebugStackWalk = CorDebugVersion_4_0, + ver_ICorDebugNativeFrame2 = CorDebugVersion_4_0, + ver_ICorDebugInternalFrame2 = CorDebugVersion_4_0, + ver_ICorDebugRuntimeUnwindableFrame = CorDebugVersion_4_0, + ver_ICorDebugHeapValue3 = CorDebugVersion_4_0, + ver_ICorDebugBlockingObjectEnum = CorDebugVersion_4_0, + ver_ICorDebugValue3 = CorDebugVersion_4_0, + CorDebugVersion_4_5 = ( CorDebugVersion_4_0 + 1 ) , + ver_ICorDebugComObjectValue = CorDebugVersion_4_5, + ver_ICorDebugAppDomain3 = CorDebugVersion_4_5, + ver_ICorDebugCode3 = CorDebugVersion_4_5, + ver_ICorDebugILFrame3 = CorDebugVersion_4_5, + CorDebugLatestVersion = CorDebugVersion_4_5 + } CorDebugInterfaceVersion; EXTERN_C const IID IID_ICorDebug2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("ECCCCF2E-B286-4b3e-A983-860A8793D105") ICorDebug2 : public IUnknown { public: }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebug2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebug2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebug2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebug2 * This); - + END_INTERFACE } ICorDebug2Vtbl; @@ -4999,41 +4808,41 @@ EXTERN_C const IID IID_ICorDebug2; CONST_VTBL struct ICorDebug2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebug2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebug2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebug2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebug2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebug2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebug2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebug2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebug2_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0024 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugThreadState { - THREAD_RUN = 0, - THREAD_SUSPEND = ( THREAD_RUN + 1 ) - } CorDebugThreadState; + THREAD_RUN = 0, + THREAD_SUSPEND = ( THREAD_RUN + 1 ) + } CorDebugThreadState; @@ -5044,131 +4853,118 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0024_v0_0_s_ifspec; #define __ICorDebugController_INTERFACE_DEFINED__ /* interface ICorDebugController */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugController; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f62-7538-11d3-8d5b-00104b35e7ef") ICorDebugController : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Stop( + virtual HRESULT STDMETHODCALLTYPE Stop( /* [in] */ DWORD dwTimeoutIgnored) = 0; - - virtual HRESULT STDMETHODCALLTYPE Continue( + + virtual HRESULT STDMETHODCALLTYPE Continue( /* [in] */ BOOL fIsOutOfBand) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsRunning( + + virtual HRESULT STDMETHODCALLTYPE IsRunning( /* [out] */ BOOL *pbRunning) = 0; - - virtual HRESULT STDMETHODCALLTYPE HasQueuedCallbacks( + + virtual HRESULT STDMETHODCALLTYPE HasQueuedCallbacks( /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateThreads( + + virtual HRESULT STDMETHODCALLTYPE EnumerateThreads( /* [out] */ ICorDebugThreadEnum **ppThreads) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAllThreadsDebugState( + + virtual HRESULT STDMETHODCALLTYPE SetAllThreadsDebugState( /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread) = 0; - + virtual HRESULT STDMETHODCALLTYPE Detach( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Terminate( + + virtual HRESULT STDMETHODCALLTYPE Terminate( /* [in] */ UINT exitCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanCommitChanges( + + virtual HRESULT STDMETHODCALLTYPE CanCommitChanges( /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError) = 0; - - virtual HRESULT STDMETHODCALLTYPE CommitChanges( + + virtual HRESULT STDMETHODCALLTYPE CommitChanges( /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugControllerVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugController * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugController * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugController * This); - - DECLSPEC_XFGVIRT(ICorDebugController, Stop) - HRESULT ( STDMETHODCALLTYPE *Stop )( + + HRESULT ( STDMETHODCALLTYPE *Stop )( ICorDebugController * This, /* [in] */ DWORD dwTimeoutIgnored); - - DECLSPEC_XFGVIRT(ICorDebugController, Continue) - HRESULT ( STDMETHODCALLTYPE *Continue )( + + HRESULT ( STDMETHODCALLTYPE *Continue )( ICorDebugController * This, /* [in] */ BOOL fIsOutOfBand); - - DECLSPEC_XFGVIRT(ICorDebugController, IsRunning) - HRESULT ( STDMETHODCALLTYPE *IsRunning )( + + HRESULT ( STDMETHODCALLTYPE *IsRunning )( ICorDebugController * This, /* [out] */ BOOL *pbRunning); - - DECLSPEC_XFGVIRT(ICorDebugController, HasQueuedCallbacks) - HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( + + HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( ICorDebugController * This, /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued); - - DECLSPEC_XFGVIRT(ICorDebugController, EnumerateThreads) - HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( ICorDebugController * This, /* [out] */ ICorDebugThreadEnum **ppThreads); - - DECLSPEC_XFGVIRT(ICorDebugController, SetAllThreadsDebugState) - HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( + + HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( ICorDebugController * This, /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread); - - DECLSPEC_XFGVIRT(ICorDebugController, Detach) - HRESULT ( STDMETHODCALLTYPE *Detach )( + + HRESULT ( STDMETHODCALLTYPE *Detach )( ICorDebugController * This); - - DECLSPEC_XFGVIRT(ICorDebugController, Terminate) - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebugController * This, /* [in] */ UINT exitCode); - - DECLSPEC_XFGVIRT(ICorDebugController, CanCommitChanges) - HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( ICorDebugController * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - DECLSPEC_XFGVIRT(ICorDebugController, CommitChanges) - HRESULT ( STDMETHODCALLTYPE *CommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CommitChanges )( ICorDebugController * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - + END_INTERFACE } ICorDebugControllerVtbl; @@ -5177,67 +4973,67 @@ EXTERN_C const IID IID_ICorDebugController; CONST_VTBL struct ICorDebugControllerVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugController_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugController_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugController_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugController_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugController_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugController_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugController_Stop(This,dwTimeoutIgnored) \ - ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) +#define ICorDebugController_Stop(This,dwTimeoutIgnored) \ + ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) -#define ICorDebugController_Continue(This,fIsOutOfBand) \ - ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) +#define ICorDebugController_Continue(This,fIsOutOfBand) \ + ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) -#define ICorDebugController_IsRunning(This,pbRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) +#define ICorDebugController_IsRunning(This,pbRunning) \ + ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) -#define ICorDebugController_HasQueuedCallbacks(This,pThread,pbQueued) \ - ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) +#define ICorDebugController_HasQueuedCallbacks(This,pThread,pbQueued) \ + ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) -#define ICorDebugController_EnumerateThreads(This,ppThreads) \ - ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) +#define ICorDebugController_EnumerateThreads(This,ppThreads) \ + ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) -#define ICorDebugController_SetAllThreadsDebugState(This,state,pExceptThisThread) \ - ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) +#define ICorDebugController_SetAllThreadsDebugState(This,state,pExceptThisThread) \ + ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) -#define ICorDebugController_Detach(This) \ - ( (This)->lpVtbl -> Detach(This) ) +#define ICorDebugController_Detach(This) \ + ( (This)->lpVtbl -> Detach(This) ) -#define ICorDebugController_Terminate(This,exitCode) \ - ( (This)->lpVtbl -> Terminate(This,exitCode) ) +#define ICorDebugController_Terminate(This,exitCode) \ + ( (This)->lpVtbl -> Terminate(This,exitCode) ) -#define ICorDebugController_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugController_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugController_CommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugController_CommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugController_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugController_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0025 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_c_ifspec; @@ -5247,180 +5043,157 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_s_ifspec; #define __ICorDebugAppDomain_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f63-7538-11d3-8d5b-00104b35e7ef") ICorDebugAppDomain : public ICorDebugController { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateAssemblies( + + virtual HRESULT STDMETHODCALLTYPE EnumerateAssemblies( /* [out] */ ICorDebugAssemblyEnum **ppAssemblies) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetModuleFromMetaDataInterface( + + virtual HRESULT STDMETHODCALLTYPE GetModuleFromMetaDataInterface( /* [in] */ IUnknown *pIMetaData, /* [out] */ ICorDebugModule **ppModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateBreakpoints( + + virtual HRESULT STDMETHODCALLTYPE EnumerateBreakpoints( /* [out] */ ICorDebugBreakpointEnum **ppBreakpoints) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateSteppers( + + virtual HRESULT STDMETHODCALLTYPE EnumerateSteppers( /* [out] */ ICorDebugStepperEnum **ppSteppers) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsAttached( + + virtual HRESULT STDMETHODCALLTYPE IsAttached( /* [out] */ BOOL *pbAttached) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugValue **ppObject) = 0; - + virtual HRESULT STDMETHODCALLTYPE Attach( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetID( + + virtual HRESULT STDMETHODCALLTYPE GetID( /* [out] */ ULONG32 *pId) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomainVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain * This); - - DECLSPEC_XFGVIRT(ICorDebugController, Stop) - HRESULT ( STDMETHODCALLTYPE *Stop )( + + HRESULT ( STDMETHODCALLTYPE *Stop )( ICorDebugAppDomain * This, /* [in] */ DWORD dwTimeoutIgnored); - - DECLSPEC_XFGVIRT(ICorDebugController, Continue) - HRESULT ( STDMETHODCALLTYPE *Continue )( + + HRESULT ( STDMETHODCALLTYPE *Continue )( ICorDebugAppDomain * This, /* [in] */ BOOL fIsOutOfBand); - - DECLSPEC_XFGVIRT(ICorDebugController, IsRunning) - HRESULT ( STDMETHODCALLTYPE *IsRunning )( + + HRESULT ( STDMETHODCALLTYPE *IsRunning )( ICorDebugAppDomain * This, /* [out] */ BOOL *pbRunning); - - DECLSPEC_XFGVIRT(ICorDebugController, HasQueuedCallbacks) - HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( + + HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( ICorDebugAppDomain * This, /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued); - - DECLSPEC_XFGVIRT(ICorDebugController, EnumerateThreads) - HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( ICorDebugAppDomain * This, /* [out] */ ICorDebugThreadEnum **ppThreads); - - DECLSPEC_XFGVIRT(ICorDebugController, SetAllThreadsDebugState) - HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( + + HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( ICorDebugAppDomain * This, /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread); - - DECLSPEC_XFGVIRT(ICorDebugController, Detach) - HRESULT ( STDMETHODCALLTYPE *Detach )( + + HRESULT ( STDMETHODCALLTYPE *Detach )( ICorDebugAppDomain * This); - - DECLSPEC_XFGVIRT(ICorDebugController, Terminate) - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebugAppDomain * This, /* [in] */ UINT exitCode); - - DECLSPEC_XFGVIRT(ICorDebugController, CanCommitChanges) - HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( ICorDebugAppDomain * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - DECLSPEC_XFGVIRT(ICorDebugController, CommitChanges) - HRESULT ( STDMETHODCALLTYPE *CommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CommitChanges )( ICorDebugAppDomain * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetProcess) - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugAppDomain * This, /* [out] */ ICorDebugProcess **ppProcess); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, EnumerateAssemblies) - HRESULT ( STDMETHODCALLTYPE *EnumerateAssemblies )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateAssemblies )( ICorDebugAppDomain * This, /* [out] */ ICorDebugAssemblyEnum **ppAssemblies); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetModuleFromMetaDataInterface) - HRESULT ( STDMETHODCALLTYPE *GetModuleFromMetaDataInterface )( + + HRESULT ( STDMETHODCALLTYPE *GetModuleFromMetaDataInterface )( ICorDebugAppDomain * This, /* [in] */ IUnknown *pIMetaData, /* [out] */ ICorDebugModule **ppModule); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, EnumerateBreakpoints) - HRESULT ( STDMETHODCALLTYPE *EnumerateBreakpoints )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateBreakpoints )( ICorDebugAppDomain * This, /* [out] */ ICorDebugBreakpointEnum **ppBreakpoints); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, EnumerateSteppers) - HRESULT ( STDMETHODCALLTYPE *EnumerateSteppers )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateSteppers )( ICorDebugAppDomain * This, /* [out] */ ICorDebugStepperEnum **ppSteppers); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, IsAttached) - HRESULT ( STDMETHODCALLTYPE *IsAttached )( + + HRESULT ( STDMETHODCALLTYPE *IsAttached )( ICorDebugAppDomain * This, /* [out] */ BOOL *pbAttached); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetName) - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugAppDomain * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetObject) - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugAppDomain * This, /* [out] */ ICorDebugValue **ppObject); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, Attach) - HRESULT ( STDMETHODCALLTYPE *Attach )( + + HRESULT ( STDMETHODCALLTYPE *Attach )( ICorDebugAppDomain * This); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetID) - HRESULT ( STDMETHODCALLTYPE *GetID )( + + HRESULT ( STDMETHODCALLTYPE *GetID )( ICorDebugAppDomain * This, /* [out] */ ULONG32 *pId); - + END_INTERFACE } ICorDebugAppDomainVtbl; @@ -5429,95 +5202,95 @@ EXTERN_C const IID IID_ICorDebugAppDomain; CONST_VTBL struct ICorDebugAppDomainVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomain_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomain_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomain_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomain_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomain_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomain_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomain_Stop(This,dwTimeoutIgnored) \ - ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) +#define ICorDebugAppDomain_Stop(This,dwTimeoutIgnored) \ + ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) -#define ICorDebugAppDomain_Continue(This,fIsOutOfBand) \ - ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) +#define ICorDebugAppDomain_Continue(This,fIsOutOfBand) \ + ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) -#define ICorDebugAppDomain_IsRunning(This,pbRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) +#define ICorDebugAppDomain_IsRunning(This,pbRunning) \ + ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) -#define ICorDebugAppDomain_HasQueuedCallbacks(This,pThread,pbQueued) \ - ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) +#define ICorDebugAppDomain_HasQueuedCallbacks(This,pThread,pbQueued) \ + ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) -#define ICorDebugAppDomain_EnumerateThreads(This,ppThreads) \ - ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) +#define ICorDebugAppDomain_EnumerateThreads(This,ppThreads) \ + ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) -#define ICorDebugAppDomain_SetAllThreadsDebugState(This,state,pExceptThisThread) \ - ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) +#define ICorDebugAppDomain_SetAllThreadsDebugState(This,state,pExceptThisThread) \ + ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) -#define ICorDebugAppDomain_Detach(This) \ - ( (This)->lpVtbl -> Detach(This) ) +#define ICorDebugAppDomain_Detach(This) \ + ( (This)->lpVtbl -> Detach(This) ) -#define ICorDebugAppDomain_Terminate(This,exitCode) \ - ( (This)->lpVtbl -> Terminate(This,exitCode) ) +#define ICorDebugAppDomain_Terminate(This,exitCode) \ + ( (This)->lpVtbl -> Terminate(This,exitCode) ) -#define ICorDebugAppDomain_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugAppDomain_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugAppDomain_CommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugAppDomain_CommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugAppDomain_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) +#define ICorDebugAppDomain_GetProcess(This,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) -#define ICorDebugAppDomain_EnumerateAssemblies(This,ppAssemblies) \ - ( (This)->lpVtbl -> EnumerateAssemblies(This,ppAssemblies) ) +#define ICorDebugAppDomain_EnumerateAssemblies(This,ppAssemblies) \ + ( (This)->lpVtbl -> EnumerateAssemblies(This,ppAssemblies) ) -#define ICorDebugAppDomain_GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) \ - ( (This)->lpVtbl -> GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) ) +#define ICorDebugAppDomain_GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) \ + ( (This)->lpVtbl -> GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) ) -#define ICorDebugAppDomain_EnumerateBreakpoints(This,ppBreakpoints) \ - ( (This)->lpVtbl -> EnumerateBreakpoints(This,ppBreakpoints) ) +#define ICorDebugAppDomain_EnumerateBreakpoints(This,ppBreakpoints) \ + ( (This)->lpVtbl -> EnumerateBreakpoints(This,ppBreakpoints) ) -#define ICorDebugAppDomain_EnumerateSteppers(This,ppSteppers) \ - ( (This)->lpVtbl -> EnumerateSteppers(This,ppSteppers) ) +#define ICorDebugAppDomain_EnumerateSteppers(This,ppSteppers) \ + ( (This)->lpVtbl -> EnumerateSteppers(This,ppSteppers) ) -#define ICorDebugAppDomain_IsAttached(This,pbAttached) \ - ( (This)->lpVtbl -> IsAttached(This,pbAttached) ) +#define ICorDebugAppDomain_IsAttached(This,pbAttached) \ + ( (This)->lpVtbl -> IsAttached(This,pbAttached) ) -#define ICorDebugAppDomain_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugAppDomain_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugAppDomain_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) +#define ICorDebugAppDomain_GetObject(This,ppObject) \ + ( (This)->lpVtbl -> GetObject(This,ppObject) ) -#define ICorDebugAppDomain_Attach(This) \ - ( (This)->lpVtbl -> Attach(This) ) +#define ICorDebugAppDomain_Attach(This) \ + ( (This)->lpVtbl -> Attach(This) ) -#define ICorDebugAppDomain_GetID(This,pId) \ - ( (This)->lpVtbl -> GetID(This,pId) ) +#define ICorDebugAppDomain_GetID(This,pId) \ + ( (This)->lpVtbl -> GetID(This,pId) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomain_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomain_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0026 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -5529,67 +5302,62 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0026_v0_0_s_ifspec; #define __ICorDebugAppDomain2_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("096E81D5-ECDA-4202-83F5-C65980A9EF75") ICorDebugAppDomain2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetArrayOrPointerType( + virtual HRESULT STDMETHODCALLTYPE GetArrayOrPointerType( /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nRank, /* [in] */ ICorDebugType *pTypeArg, /* [out] */ ICorDebugType **ppType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionPointerType( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionPointerType( /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomain2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain2 * This); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain2, GetArrayOrPointerType) - HRESULT ( STDMETHODCALLTYPE *GetArrayOrPointerType )( + + HRESULT ( STDMETHODCALLTYPE *GetArrayOrPointerType )( ICorDebugAppDomain2 * This, /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nRank, /* [in] */ ICorDebugType *pTypeArg, /* [out] */ ICorDebugType **ppType); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain2, GetFunctionPointerType) - HRESULT ( STDMETHODCALLTYPE *GetFunctionPointerType )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionPointerType )( ICorDebugAppDomain2 * This, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType); - + END_INTERFACE } ICorDebugAppDomain2Vtbl; @@ -5598,107 +5366,100 @@ EXTERN_C const IID IID_ICorDebugAppDomain2; CONST_VTBL struct ICorDebugAppDomain2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomain2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomain2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomain2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomain2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomain2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomain2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomain2_GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) \ - ( (This)->lpVtbl -> GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) ) +#define ICorDebugAppDomain2_GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) \ + ( (This)->lpVtbl -> GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) ) -#define ICorDebugAppDomain2_GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) \ - ( (This)->lpVtbl -> GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) ) +#define ICorDebugAppDomain2_GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) \ + ( (This)->lpVtbl -> GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomain2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomain2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugEnum_INTERFACE_DEFINED__ #define __ICorDebugEnum_INTERFACE_DEFINED__ /* interface ICorDebugEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB01-8A68-11d2-983C-0000F808342D") ICorDebugEnum : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Skip( + virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; - + virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( + + virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ ICorDebugEnum **ppEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCount( + + virtual HRESULT STDMETHODCALLTYPE GetCount( /* [out] */ ULONG *pcelt) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugEnum * This, /* [out] */ ULONG *pcelt); - + END_INTERFACE } ICorDebugEnumVtbl; @@ -5707,114 +5468,106 @@ EXTERN_C const IID IID_ICorDebugEnum; CONST_VTBL struct ICorDebugEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugGuidToTypeEnum_INTERFACE_DEFINED__ #define __ICorDebugGuidToTypeEnum_INTERFACE_DEFINED__ /* interface ICorDebugGuidToTypeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugGuidToTypeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("6164D242-1015-4BD6-8CBE-D0DBD4B8275A") ICorDebugGuidToTypeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugGuidToTypeMapping values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugGuidToTypeEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugGuidToTypeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugGuidToTypeEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugGuidToTypeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugGuidToTypeEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugGuidToTypeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugGuidToTypeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugGuidToTypeEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugGuidToTypeEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugGuidToTypeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugGuidToTypeMapping values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugGuidToTypeEnumVtbl; @@ -5823,107 +5576,102 @@ EXTERN_C const IID IID_ICorDebugGuidToTypeEnum; CONST_VTBL struct ICorDebugGuidToTypeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugGuidToTypeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugGuidToTypeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugGuidToTypeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugGuidToTypeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugGuidToTypeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugGuidToTypeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugGuidToTypeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugGuidToTypeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugGuidToTypeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugGuidToTypeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugGuidToTypeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugGuidToTypeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugGuidToTypeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugGuidToTypeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugGuidToTypeEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugGuidToTypeEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugGuidToTypeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugGuidToTypeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAppDomain3_INTERFACE_DEFINED__ #define __ICorDebugAppDomain3_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("8CB96A16-B588-42E2-B71C-DD849FC2ECCC") ICorDebugAppDomain3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypesForIIDs( + virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypesForIIDs( /* [in] */ ULONG32 cReqTypes, /* [size_is][in] */ GUID *iidsToResolve, /* [out] */ ICorDebugTypeEnum **ppTypesEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypes( + + virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypes( /* [out] */ ICorDebugGuidToTypeEnum **ppGuidToTypeEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomain3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain3 * This); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain3, GetCachedWinRTTypesForIIDs) - HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypesForIIDs )( + + HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypesForIIDs )( ICorDebugAppDomain3 * This, /* [in] */ ULONG32 cReqTypes, /* [size_is][in] */ GUID *iidsToResolve, /* [out] */ ICorDebugTypeEnum **ppTypesEnum); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain3, GetCachedWinRTTypes) - HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypes )( + + HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypes )( ICorDebugAppDomain3 * This, /* [out] */ ICorDebugGuidToTypeEnum **ppGuidToTypeEnum); - + END_INTERFACE } ICorDebugAppDomain3Vtbl; @@ -5932,87 +5680,83 @@ EXTERN_C const IID IID_ICorDebugAppDomain3; CONST_VTBL struct ICorDebugAppDomain3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomain3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomain3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomain3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomain3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomain3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomain3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomain3_GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) \ - ( (This)->lpVtbl -> GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) ) +#define ICorDebugAppDomain3_GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) \ + ( (This)->lpVtbl -> GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) ) -#define ICorDebugAppDomain3_GetCachedWinRTTypes(This,ppGuidToTypeEnum) \ - ( (This)->lpVtbl -> GetCachedWinRTTypes(This,ppGuidToTypeEnum) ) +#define ICorDebugAppDomain3_GetCachedWinRTTypes(This,ppGuidToTypeEnum) \ + ( (This)->lpVtbl -> GetCachedWinRTTypes(This,ppGuidToTypeEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomain3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomain3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAppDomain4_INTERFACE_DEFINED__ #define __ICorDebugAppDomain4_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FB99CC40-83BE-4724-AB3B-768E796EBAC2") ICorDebugAppDomain4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetObjectForCCW( + virtual HRESULT STDMETHODCALLTYPE GetObjectForCCW( /* [in] */ CORDB_ADDRESS ccwPointer, /* [out] */ ICorDebugValue **ppManagedObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomain4Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain4 * This); - - DECLSPEC_XFGVIRT(ICorDebugAppDomain4, GetObjectForCCW) - HRESULT ( STDMETHODCALLTYPE *GetObjectForCCW )( + + HRESULT ( STDMETHODCALLTYPE *GetObjectForCCW )( ICorDebugAppDomain4 * This, /* [in] */ CORDB_ADDRESS ccwPointer, /* [out] */ ICorDebugValue **ppManagedObject); - + END_INTERFACE } ICorDebugAppDomain4Vtbl; @@ -6021,40 +5765,40 @@ EXTERN_C const IID IID_ICorDebugAppDomain4; CONST_VTBL struct ICorDebugAppDomain4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomain4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomain4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomain4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomain4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomain4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomain4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomain4_GetObjectForCCW(This,ccwPointer,ppManagedObject) \ - ( (This)->lpVtbl -> GetObjectForCCW(This,ccwPointer,ppManagedObject) ) +#define ICorDebugAppDomain4_GetObjectForCCW(This,ccwPointer,ppManagedObject) \ + ( (This)->lpVtbl -> GetObjectForCCW(This,ccwPointer,ppManagedObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomain4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomain4_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0030 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_c_ifspec; @@ -6064,89 +5808,81 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_s_ifspec; #define __ICorDebugAssembly_INTERFACE_DEFINED__ /* interface ICorDebugAssembly */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssembly; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("df59507c-d47a-459e-bce2-6427eac8fd06") ICorDebugAssembly : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAppDomain( + + virtual HRESULT STDMETHODCALLTYPE GetAppDomain( /* [out] */ ICorDebugAppDomain **ppAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateModules( + + virtual HRESULT STDMETHODCALLTYPE EnumerateModules( /* [out] */ ICorDebugModuleEnum **ppModules) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodeBase( + + virtual HRESULT STDMETHODCALLTYPE GetCodeBase( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAssemblyVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssembly * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssembly * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssembly * This); - - DECLSPEC_XFGVIRT(ICorDebugAssembly, GetProcess) - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugAssembly * This, /* [out] */ ICorDebugProcess **ppProcess); - - DECLSPEC_XFGVIRT(ICorDebugAssembly, GetAppDomain) - HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( + + HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( ICorDebugAssembly * This, /* [out] */ ICorDebugAppDomain **ppAppDomain); - - DECLSPEC_XFGVIRT(ICorDebugAssembly, EnumerateModules) - HRESULT ( STDMETHODCALLTYPE *EnumerateModules )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateModules )( ICorDebugAssembly * This, /* [out] */ ICorDebugModuleEnum **ppModules); - - DECLSPEC_XFGVIRT(ICorDebugAssembly, GetCodeBase) - HRESULT ( STDMETHODCALLTYPE *GetCodeBase )( + + HRESULT ( STDMETHODCALLTYPE *GetCodeBase )( ICorDebugAssembly * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugAssembly, GetName) - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugAssembly * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - + END_INTERFACE } ICorDebugAssemblyVtbl; @@ -6155,49 +5891,49 @@ EXTERN_C const IID IID_ICorDebugAssembly; CONST_VTBL struct ICorDebugAssemblyVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAssembly_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAssembly_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAssembly_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAssembly_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAssembly_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAssembly_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAssembly_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) +#define ICorDebugAssembly_GetProcess(This,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) -#define ICorDebugAssembly_GetAppDomain(This,ppAppDomain) \ - ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) +#define ICorDebugAssembly_GetAppDomain(This,ppAppDomain) \ + ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) -#define ICorDebugAssembly_EnumerateModules(This,ppModules) \ - ( (This)->lpVtbl -> EnumerateModules(This,ppModules) ) +#define ICorDebugAssembly_EnumerateModules(This,ppModules) \ + ( (This)->lpVtbl -> EnumerateModules(This,ppModules) ) -#define ICorDebugAssembly_GetCodeBase(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetCodeBase(This,cchName,pcchName,szName) ) +#define ICorDebugAssembly_GetCodeBase(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetCodeBase(This,cchName,pcchName,szName) ) -#define ICorDebugAssembly_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugAssembly_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAssembly_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAssembly_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0031 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -6209,49 +5945,45 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0031_v0_0_s_ifspec; #define __ICorDebugAssembly2_INTERFACE_DEFINED__ /* interface ICorDebugAssembly2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssembly2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("426d1f9e-6dd4-44c8-aec7-26cdbaf4e398") ICorDebugAssembly2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsFullyTrusted( + virtual HRESULT STDMETHODCALLTYPE IsFullyTrusted( /* [out] */ BOOL *pbFullyTrusted) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAssembly2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssembly2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssembly2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssembly2 * This); - - DECLSPEC_XFGVIRT(ICorDebugAssembly2, IsFullyTrusted) - HRESULT ( STDMETHODCALLTYPE *IsFullyTrusted )( + + HRESULT ( STDMETHODCALLTYPE *IsFullyTrusted )( ICorDebugAssembly2 * This, /* [out] */ BOOL *pbFullyTrusted); - + END_INTERFACE } ICorDebugAssembly2Vtbl; @@ -6260,90 +5992,85 @@ EXTERN_C const IID IID_ICorDebugAssembly2; CONST_VTBL struct ICorDebugAssembly2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAssembly2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAssembly2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAssembly2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAssembly2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAssembly2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAssembly2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAssembly2_IsFullyTrusted(This,pbFullyTrusted) \ - ( (This)->lpVtbl -> IsFullyTrusted(This,pbFullyTrusted) ) +#define ICorDebugAssembly2_IsFullyTrusted(This,pbFullyTrusted) \ + ( (This)->lpVtbl -> IsFullyTrusted(This,pbFullyTrusted) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAssembly2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAssembly2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAssembly3_INTERFACE_DEFINED__ #define __ICorDebugAssembly3_INTERFACE_DEFINED__ /* interface ICorDebugAssembly3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssembly3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("76361AB2-8C86-4FE9-96F2-F73D8843570A") ICorDebugAssembly3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetContainerAssembly( + virtual HRESULT STDMETHODCALLTYPE GetContainerAssembly( ICorDebugAssembly **ppAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateContainedAssemblies( + + virtual HRESULT STDMETHODCALLTYPE EnumerateContainedAssemblies( ICorDebugAssemblyEnum **ppAssemblies) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAssembly3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssembly3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssembly3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssembly3 * This); - - DECLSPEC_XFGVIRT(ICorDebugAssembly3, GetContainerAssembly) - HRESULT ( STDMETHODCALLTYPE *GetContainerAssembly )( + + HRESULT ( STDMETHODCALLTYPE *GetContainerAssembly )( ICorDebugAssembly3 * This, ICorDebugAssembly **ppAssembly); - - DECLSPEC_XFGVIRT(ICorDebugAssembly3, EnumerateContainedAssemblies) - HRESULT ( STDMETHODCALLTYPE *EnumerateContainedAssemblies )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateContainedAssemblies )( ICorDebugAssembly3 * This, ICorDebugAssemblyEnum **ppAssemblies); - + END_INTERFACE } ICorDebugAssembly3Vtbl; @@ -6352,40 +6079,40 @@ EXTERN_C const IID IID_ICorDebugAssembly3; CONST_VTBL struct ICorDebugAssembly3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAssembly3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAssembly3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAssembly3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAssembly3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAssembly3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAssembly3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAssembly3_GetContainerAssembly(This,ppAssembly) \ - ( (This)->lpVtbl -> GetContainerAssembly(This,ppAssembly) ) +#define ICorDebugAssembly3_GetContainerAssembly(This,ppAssembly) \ + ( (This)->lpVtbl -> GetContainerAssembly(This,ppAssembly) ) -#define ICorDebugAssembly3_EnumerateContainedAssemblies(This,ppAssemblies) \ - ( (This)->lpVtbl -> EnumerateContainedAssemblies(This,ppAssemblies) ) +#define ICorDebugAssembly3_EnumerateContainedAssemblies(This,ppAssemblies) \ + ( (This)->lpVtbl -> EnumerateContainedAssemblies(This,ppAssemblies) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAssembly3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAssembly3_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0033 */ -/* [local] */ +/* [local] */ #ifndef _DEF_COR_TYPEID_ #define _DEF_COR_TYPEID_ @@ -6393,7 +6120,7 @@ typedef struct COR_TYPEID { UINT64 token1; UINT64 token2; - } COR_TYPEID; + } COR_TYPEID; #endif // _DEF_COR_TYPEID_ typedef struct _COR_HEAPOBJECT @@ -6401,7 +6128,7 @@ typedef struct _COR_HEAPOBJECT CORDB_ADDRESS address; ULONG64 size; COR_TYPEID type; - } COR_HEAPOBJECT; + } COR_HEAPOBJECT; @@ -6412,72 +6139,64 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0033_v0_0_s_ifspec; #define __ICorDebugHeapEnum_INTERFACE_DEFINED__ /* interface ICorDebugHeapEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("76D7DAB8-D044-11DF-9A15-7E29DFD72085") ICorDebugHeapEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_HEAPOBJECT objects[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugHeapEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugHeapEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugHeapEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugHeapEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugHeapEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugHeapEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_HEAPOBJECT objects[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugHeapEnumVtbl; @@ -6486,60 +6205,60 @@ EXTERN_C const IID IID_ICorDebugHeapEnum; CONST_VTBL struct ICorDebugHeapEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugHeapEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugHeapEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugHeapEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugHeapEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugHeapEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugHeapEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugHeapEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugHeapEnum_Next(This,celt,objects,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) +#define ICorDebugHeapEnum_Next(This,celt,objects,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapEnum_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0034 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugGenerationTypes { - CorDebug_Gen0 = 0, - CorDebug_Gen1 = 1, - CorDebug_Gen2 = 2, - CorDebug_LOH = 3, - CorDebug_POH = 4 - } CorDebugGenerationTypes; + CorDebug_Gen0 = 0, + CorDebug_Gen1 = 1, + CorDebug_Gen2 = 2, + CorDebug_LOH = 3, + CorDebug_POH = 4 + } CorDebugGenerationTypes; typedef struct _COR_SEGMENT { @@ -6547,14 +6266,14 @@ typedef struct _COR_SEGMENT CORDB_ADDRESS end; CorDebugGenerationTypes type; ULONG heap; - } COR_SEGMENT; + } COR_SEGMENT; -typedef +typedef enum CorDebugGCType { - CorDebugWorkstationGC = 0, - CorDebugServerGC = ( CorDebugWorkstationGC + 1 ) - } CorDebugGCType; + CorDebugWorkstationGC = 0, + CorDebugServerGC = ( CorDebugWorkstationGC + 1 ) + } CorDebugGCType; typedef struct _COR_HEAPINFO { @@ -6563,7 +6282,7 @@ typedef struct _COR_HEAPINFO DWORD numHeaps; BOOL concurrent; CorDebugGCType gcType; - } COR_HEAPINFO; + } COR_HEAPINFO; @@ -6574,72 +6293,64 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0034_v0_0_s_ifspec; #define __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ /* interface ICorDebugHeapSegmentEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapSegmentEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A2FA0F8E-D045-11DF-AC8E-CE2ADFD72085") ICorDebugHeapSegmentEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_SEGMENT segments[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapSegmentEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapSegmentEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapSegmentEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapSegmentEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugHeapSegmentEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugHeapSegmentEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugHeapSegmentEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugHeapSegmentEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugHeapSegmentEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugHeapSegmentEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_SEGMENT segments[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugHeapSegmentEnumVtbl; @@ -6648,71 +6359,71 @@ EXTERN_C const IID IID_ICorDebugHeapSegmentEnum; CONST_VTBL struct ICorDebugHeapSegmentEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapSegmentEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapSegmentEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapSegmentEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapSegmentEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapSegmentEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapSegmentEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapSegmentEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugHeapSegmentEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugHeapSegmentEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugHeapSegmentEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugHeapSegmentEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugHeapSegmentEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugHeapSegmentEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugHeapSegmentEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugHeapSegmentEnum_Next(This,celt,segments,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,segments,pceltFetched) ) +#define ICorDebugHeapSegmentEnum_Next(This,celt,segments,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,segments,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0035 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorGCReferenceType { - CorHandleStrong = ( 1 << 0 ) , - CorHandleStrongPinning = ( 1 << 1 ) , - CorHandleWeakShort = ( 1 << 2 ) , - CorHandleWeakLong = ( 1 << 3 ) , - CorHandleWeakRefCount = ( 1 << 4 ) , - CorHandleStrongRefCount = ( 1 << 5 ) , - CorHandleStrongDependent = ( 1 << 6 ) , - CorHandleStrongAsyncPinned = ( 1 << 7 ) , - CorHandleStrongSizedByref = ( 1 << 8 ) , - CorHandleWeakNativeCom = ( 1 << 9 ) , - CorHandleWeakWinRT = CorHandleWeakNativeCom, - CorReferenceStack = 0x80000001, - CorReferenceFinalizer = 80000002, - CorHandleStrongOnly = 0x1e3, - CorHandleWeakOnly = 0x21c, - CorHandleAll = 0x7fffffff - } CorGCReferenceType; + CorHandleStrong = ( 1 << 0 ) , + CorHandleStrongPinning = ( 1 << 1 ) , + CorHandleWeakShort = ( 1 << 2 ) , + CorHandleWeakLong = ( 1 << 3 ) , + CorHandleWeakRefCount = ( 1 << 4 ) , + CorHandleStrongRefCount = ( 1 << 5 ) , + CorHandleStrongDependent = ( 1 << 6 ) , + CorHandleStrongAsyncPinned = ( 1 << 7 ) , + CorHandleStrongSizedByref = ( 1 << 8 ) , + CorHandleWeakNativeCom = ( 1 << 9 ) , + CorHandleWeakWinRT = CorHandleWeakNativeCom, + CorReferenceStack = 0x80000001, + CorReferenceFinalizer = 80000002, + CorHandleStrongOnly = 0x1e3, + CorHandleWeakOnly = 0x21c, + CorHandleAll = 0x7fffffff + } CorGCReferenceType; #ifndef _DEF_COR_GC_REFERENCE_ #define _DEF_COR_GC_REFERENCE_ @@ -6722,7 +6433,7 @@ typedef struct COR_GC_REFERENCE ICorDebugValue *Location; CorGCReferenceType Type; UINT64 ExtraData; - } COR_GC_REFERENCE; + } COR_GC_REFERENCE; #endif // _DEF_COR_GC_REFERENCE_ @@ -6734,72 +6445,64 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0035_v0_0_s_ifspec; #define __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ /* interface ICorDebugGCReferenceEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugGCReferenceEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("7F3C24D3-7E1D-4245-AC3A-F72F8859C80C") ICorDebugGCReferenceEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_GC_REFERENCE roots[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugGCReferenceEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugGCReferenceEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugGCReferenceEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugGCReferenceEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugGCReferenceEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugGCReferenceEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugGCReferenceEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugGCReferenceEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugGCReferenceEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugGCReferenceEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_GC_REFERENCE roots[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugGCReferenceEnumVtbl; @@ -6808,50 +6511,50 @@ EXTERN_C const IID IID_ICorDebugGCReferenceEnum; CONST_VTBL struct ICorDebugGCReferenceEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugGCReferenceEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugGCReferenceEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugGCReferenceEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugGCReferenceEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugGCReferenceEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugGCReferenceEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugGCReferenceEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugGCReferenceEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugGCReferenceEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugGCReferenceEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugGCReferenceEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugGCReferenceEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugGCReferenceEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugGCReferenceEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugGCReferenceEnum_Next(This,celt,roots,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,roots,pceltFetched) ) +#define ICorDebugGCReferenceEnum_Next(This,celt,roots,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,roots,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0036 */ -/* [local] */ +/* [local] */ #ifndef _DEF_COR_ARRAY_LAYOUT_ #define _DEF_COR_ARRAY_LAYOUT_ @@ -6865,7 +6568,7 @@ typedef struct COR_ARRAY_LAYOUT ULONG32 rankSize; ULONG32 numRanks; ULONG32 rankOffset; - } COR_ARRAY_LAYOUT; + } COR_ARRAY_LAYOUT; #endif // _DEF_COR_ARRAY_LAYOUT_ #ifndef _DEF_COR_TYPE_LAYOUT_ @@ -6877,7 +6580,7 @@ typedef struct COR_TYPE_LAYOUT ULONG32 numFields; ULONG32 boxOffset; CorElementType type; - } COR_TYPE_LAYOUT; + } COR_TYPE_LAYOUT; #endif // _DEF_COR_TYPE_LAYOUT_ #ifndef _DEF_COR_FIELD_ @@ -6888,11 +6591,11 @@ typedef struct COR_FIELD ULONG32 offset; COR_TYPEID id; CorElementType fieldType; - } COR_FIELD; + } COR_FIELD; #endif // _DEF_COR_FIELD_ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_c_ifspec; @@ -6902,264 +6605,234 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_s_ifspec; #define __ICorDebugProcess_INTERFACE_DEFINED__ /* interface ICorDebugProcess */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f64-7538-11d3-8d5b-00104b35e7ef") ICorDebugProcess : public ICorDebugController { public: - virtual HRESULT STDMETHODCALLTYPE GetID( + virtual HRESULT STDMETHODCALLTYPE GetID( /* [out] */ DWORD *pdwProcessId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHandle( + + virtual HRESULT STDMETHODCALLTYPE GetHandle( /* [out] */ HPROCESS *phProcessHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThread( + + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateObjects( + + virtual HRESULT STDMETHODCALLTYPE EnumerateObjects( /* [out] */ ICorDebugObjectEnum **ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsTransitionStub( + + virtual HRESULT STDMETHODCALLTYPE IsTransitionStub( /* [in] */ CORDB_ADDRESS address, /* [out] */ BOOL *pbTransitionStub) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsOSSuspended( + + virtual HRESULT STDMETHODCALLTYPE IsOSSuspended( /* [in] */ DWORD threadID, /* [out] */ BOOL *pbSuspended) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE GetThreadContext( /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE SetThreadContext( /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadMemory( + + virtual HRESULT STDMETHODCALLTYPE ReadMemory( /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ SIZE_T *read) = 0; - - virtual HRESULT STDMETHODCALLTYPE WriteMemory( + + virtual HRESULT STDMETHODCALLTYPE WriteMemory( /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [size_is][in] */ BYTE buffer[ ], /* [out] */ SIZE_T *written) = 0; - - virtual HRESULT STDMETHODCALLTYPE ClearCurrentException( + + virtual HRESULT STDMETHODCALLTYPE ClearCurrentException( /* [in] */ DWORD threadID) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableLogMessages( + + virtual HRESULT STDMETHODCALLTYPE EnableLogMessages( /* [in] */ BOOL fOnOff) = 0; - - virtual HRESULT STDMETHODCALLTYPE ModifyLogSwitch( - /* [annotation][in] */ + + virtual HRESULT STDMETHODCALLTYPE ModifyLogSwitch( + /* [annotation][in] */ _In_ WCHAR *pLogSwitchName, /* [in] */ LONG lLevel) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateAppDomains( + + virtual HRESULT STDMETHODCALLTYPE EnumerateAppDomains( /* [out] */ ICorDebugAppDomainEnum **ppAppDomains) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugValue **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE ThreadForFiberCookie( + + virtual HRESULT STDMETHODCALLTYPE ThreadForFiberCookie( /* [in] */ DWORD fiberCookie, /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHelperThreadID( + + virtual HRESULT STDMETHODCALLTYPE GetHelperThreadID( /* [out] */ DWORD *pThreadID) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcessVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess * This); - - DECLSPEC_XFGVIRT(ICorDebugController, Stop) - HRESULT ( STDMETHODCALLTYPE *Stop )( + + HRESULT ( STDMETHODCALLTYPE *Stop )( ICorDebugProcess * This, /* [in] */ DWORD dwTimeoutIgnored); - - DECLSPEC_XFGVIRT(ICorDebugController, Continue) - HRESULT ( STDMETHODCALLTYPE *Continue )( + + HRESULT ( STDMETHODCALLTYPE *Continue )( ICorDebugProcess * This, /* [in] */ BOOL fIsOutOfBand); - - DECLSPEC_XFGVIRT(ICorDebugController, IsRunning) - HRESULT ( STDMETHODCALLTYPE *IsRunning )( + + HRESULT ( STDMETHODCALLTYPE *IsRunning )( ICorDebugProcess * This, /* [out] */ BOOL *pbRunning); - - DECLSPEC_XFGVIRT(ICorDebugController, HasQueuedCallbacks) - HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( + + HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( ICorDebugProcess * This, /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued); - - DECLSPEC_XFGVIRT(ICorDebugController, EnumerateThreads) - HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( ICorDebugProcess * This, /* [out] */ ICorDebugThreadEnum **ppThreads); - - DECLSPEC_XFGVIRT(ICorDebugController, SetAllThreadsDebugState) - HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( + + HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( ICorDebugProcess * This, /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread); - - DECLSPEC_XFGVIRT(ICorDebugController, Detach) - HRESULT ( STDMETHODCALLTYPE *Detach )( + + HRESULT ( STDMETHODCALLTYPE *Detach )( ICorDebugProcess * This); - - DECLSPEC_XFGVIRT(ICorDebugController, Terminate) - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebugProcess * This, /* [in] */ UINT exitCode); - - DECLSPEC_XFGVIRT(ICorDebugController, CanCommitChanges) - HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( ICorDebugProcess * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - DECLSPEC_XFGVIRT(ICorDebugController, CommitChanges) - HRESULT ( STDMETHODCALLTYPE *CommitChanges )( + + HRESULT ( STDMETHODCALLTYPE *CommitChanges )( ICorDebugProcess * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - DECLSPEC_XFGVIRT(ICorDebugProcess, GetID) - HRESULT ( STDMETHODCALLTYPE *GetID )( + + HRESULT ( STDMETHODCALLTYPE *GetID )( ICorDebugProcess * This, /* [out] */ DWORD *pdwProcessId); - - DECLSPEC_XFGVIRT(ICorDebugProcess, GetHandle) - HRESULT ( STDMETHODCALLTYPE *GetHandle )( + + HRESULT ( STDMETHODCALLTYPE *GetHandle )( ICorDebugProcess * This, /* [out] */ HPROCESS *phProcessHandle); - - DECLSPEC_XFGVIRT(ICorDebugProcess, GetThread) - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugProcess * This, /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugThread **ppThread); - - DECLSPEC_XFGVIRT(ICorDebugProcess, EnumerateObjects) - HRESULT ( STDMETHODCALLTYPE *EnumerateObjects )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateObjects )( ICorDebugProcess * This, /* [out] */ ICorDebugObjectEnum **ppObjects); - - DECLSPEC_XFGVIRT(ICorDebugProcess, IsTransitionStub) - HRESULT ( STDMETHODCALLTYPE *IsTransitionStub )( + + HRESULT ( STDMETHODCALLTYPE *IsTransitionStub )( ICorDebugProcess * This, /* [in] */ CORDB_ADDRESS address, /* [out] */ BOOL *pbTransitionStub); - - DECLSPEC_XFGVIRT(ICorDebugProcess, IsOSSuspended) - HRESULT ( STDMETHODCALLTYPE *IsOSSuspended )( + + HRESULT ( STDMETHODCALLTYPE *IsOSSuspended )( ICorDebugProcess * This, /* [in] */ DWORD threadID, /* [out] */ BOOL *pbSuspended); - - DECLSPEC_XFGVIRT(ICorDebugProcess, GetThreadContext) - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugProcess * This, /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]); - - DECLSPEC_XFGVIRT(ICorDebugProcess, SetThreadContext) - HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( ICorDebugProcess * This, /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]); - - DECLSPEC_XFGVIRT(ICorDebugProcess, ReadMemory) - HRESULT ( STDMETHODCALLTYPE *ReadMemory )( + + HRESULT ( STDMETHODCALLTYPE *ReadMemory )( ICorDebugProcess * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ SIZE_T *read); - - DECLSPEC_XFGVIRT(ICorDebugProcess, WriteMemory) - HRESULT ( STDMETHODCALLTYPE *WriteMemory )( + + HRESULT ( STDMETHODCALLTYPE *WriteMemory )( ICorDebugProcess * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [size_is][in] */ BYTE buffer[ ], /* [out] */ SIZE_T *written); - - DECLSPEC_XFGVIRT(ICorDebugProcess, ClearCurrentException) - HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( + + HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( ICorDebugProcess * This, /* [in] */ DWORD threadID); - - DECLSPEC_XFGVIRT(ICorDebugProcess, EnableLogMessages) - HRESULT ( STDMETHODCALLTYPE *EnableLogMessages )( + + HRESULT ( STDMETHODCALLTYPE *EnableLogMessages )( ICorDebugProcess * This, /* [in] */ BOOL fOnOff); - - DECLSPEC_XFGVIRT(ICorDebugProcess, ModifyLogSwitch) - HRESULT ( STDMETHODCALLTYPE *ModifyLogSwitch )( + + HRESULT ( STDMETHODCALLTYPE *ModifyLogSwitch )( ICorDebugProcess * This, - /* [annotation][in] */ + /* [annotation][in] */ _In_ WCHAR *pLogSwitchName, /* [in] */ LONG lLevel); - - DECLSPEC_XFGVIRT(ICorDebugProcess, EnumerateAppDomains) - HRESULT ( STDMETHODCALLTYPE *EnumerateAppDomains )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateAppDomains )( ICorDebugProcess * This, /* [out] */ ICorDebugAppDomainEnum **ppAppDomains); - - DECLSPEC_XFGVIRT(ICorDebugProcess, GetObject) - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugProcess * This, /* [out] */ ICorDebugValue **ppObject); - - DECLSPEC_XFGVIRT(ICorDebugProcess, ThreadForFiberCookie) - HRESULT ( STDMETHODCALLTYPE *ThreadForFiberCookie )( + + HRESULT ( STDMETHODCALLTYPE *ThreadForFiberCookie )( ICorDebugProcess * This, /* [in] */ DWORD fiberCookie, /* [out] */ ICorDebugThread **ppThread); - - DECLSPEC_XFGVIRT(ICorDebugProcess, GetHelperThreadID) - HRESULT ( STDMETHODCALLTYPE *GetHelperThreadID )( + + HRESULT ( STDMETHODCALLTYPE *GetHelperThreadID )( ICorDebugProcess * This, /* [out] */ DWORD *pThreadID); - + END_INTERFACE } ICorDebugProcessVtbl; @@ -7168,116 +6841,116 @@ EXTERN_C const IID IID_ICorDebugProcess; CONST_VTBL struct ICorDebugProcessVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess_Stop(This,dwTimeoutIgnored) \ - ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) +#define ICorDebugProcess_Stop(This,dwTimeoutIgnored) \ + ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) -#define ICorDebugProcess_Continue(This,fIsOutOfBand) \ - ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) +#define ICorDebugProcess_Continue(This,fIsOutOfBand) \ + ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) -#define ICorDebugProcess_IsRunning(This,pbRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) +#define ICorDebugProcess_IsRunning(This,pbRunning) \ + ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) -#define ICorDebugProcess_HasQueuedCallbacks(This,pThread,pbQueued) \ - ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) +#define ICorDebugProcess_HasQueuedCallbacks(This,pThread,pbQueued) \ + ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) -#define ICorDebugProcess_EnumerateThreads(This,ppThreads) \ - ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) +#define ICorDebugProcess_EnumerateThreads(This,ppThreads) \ + ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) -#define ICorDebugProcess_SetAllThreadsDebugState(This,state,pExceptThisThread) \ - ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) +#define ICorDebugProcess_SetAllThreadsDebugState(This,state,pExceptThisThread) \ + ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) -#define ICorDebugProcess_Detach(This) \ - ( (This)->lpVtbl -> Detach(This) ) +#define ICorDebugProcess_Detach(This) \ + ( (This)->lpVtbl -> Detach(This) ) -#define ICorDebugProcess_Terminate(This,exitCode) \ - ( (This)->lpVtbl -> Terminate(This,exitCode) ) +#define ICorDebugProcess_Terminate(This,exitCode) \ + ( (This)->lpVtbl -> Terminate(This,exitCode) ) -#define ICorDebugProcess_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugProcess_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugProcess_CommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugProcess_CommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugProcess_GetID(This,pdwProcessId) \ - ( (This)->lpVtbl -> GetID(This,pdwProcessId) ) +#define ICorDebugProcess_GetID(This,pdwProcessId) \ + ( (This)->lpVtbl -> GetID(This,pdwProcessId) ) -#define ICorDebugProcess_GetHandle(This,phProcessHandle) \ - ( (This)->lpVtbl -> GetHandle(This,phProcessHandle) ) +#define ICorDebugProcess_GetHandle(This,phProcessHandle) \ + ( (This)->lpVtbl -> GetHandle(This,phProcessHandle) ) -#define ICorDebugProcess_GetThread(This,dwThreadId,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,dwThreadId,ppThread) ) +#define ICorDebugProcess_GetThread(This,dwThreadId,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,dwThreadId,ppThread) ) -#define ICorDebugProcess_EnumerateObjects(This,ppObjects) \ - ( (This)->lpVtbl -> EnumerateObjects(This,ppObjects) ) +#define ICorDebugProcess_EnumerateObjects(This,ppObjects) \ + ( (This)->lpVtbl -> EnumerateObjects(This,ppObjects) ) -#define ICorDebugProcess_IsTransitionStub(This,address,pbTransitionStub) \ - ( (This)->lpVtbl -> IsTransitionStub(This,address,pbTransitionStub) ) +#define ICorDebugProcess_IsTransitionStub(This,address,pbTransitionStub) \ + ( (This)->lpVtbl -> IsTransitionStub(This,address,pbTransitionStub) ) -#define ICorDebugProcess_IsOSSuspended(This,threadID,pbSuspended) \ - ( (This)->lpVtbl -> IsOSSuspended(This,threadID,pbSuspended) ) +#define ICorDebugProcess_IsOSSuspended(This,threadID,pbSuspended) \ + ( (This)->lpVtbl -> IsOSSuspended(This,threadID,pbSuspended) ) -#define ICorDebugProcess_GetThreadContext(This,threadID,contextSize,context) \ - ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextSize,context) ) +#define ICorDebugProcess_GetThreadContext(This,threadID,contextSize,context) \ + ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextSize,context) ) -#define ICorDebugProcess_SetThreadContext(This,threadID,contextSize,context) \ - ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) ) +#define ICorDebugProcess_SetThreadContext(This,threadID,contextSize,context) \ + ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) ) -#define ICorDebugProcess_ReadMemory(This,address,size,buffer,read) \ - ( (This)->lpVtbl -> ReadMemory(This,address,size,buffer,read) ) +#define ICorDebugProcess_ReadMemory(This,address,size,buffer,read) \ + ( (This)->lpVtbl -> ReadMemory(This,address,size,buffer,read) ) -#define ICorDebugProcess_WriteMemory(This,address,size,buffer,written) \ - ( (This)->lpVtbl -> WriteMemory(This,address,size,buffer,written) ) +#define ICorDebugProcess_WriteMemory(This,address,size,buffer,written) \ + ( (This)->lpVtbl -> WriteMemory(This,address,size,buffer,written) ) -#define ICorDebugProcess_ClearCurrentException(This,threadID) \ - ( (This)->lpVtbl -> ClearCurrentException(This,threadID) ) +#define ICorDebugProcess_ClearCurrentException(This,threadID) \ + ( (This)->lpVtbl -> ClearCurrentException(This,threadID) ) -#define ICorDebugProcess_EnableLogMessages(This,fOnOff) \ - ( (This)->lpVtbl -> EnableLogMessages(This,fOnOff) ) +#define ICorDebugProcess_EnableLogMessages(This,fOnOff) \ + ( (This)->lpVtbl -> EnableLogMessages(This,fOnOff) ) -#define ICorDebugProcess_ModifyLogSwitch(This,pLogSwitchName,lLevel) \ - ( (This)->lpVtbl -> ModifyLogSwitch(This,pLogSwitchName,lLevel) ) +#define ICorDebugProcess_ModifyLogSwitch(This,pLogSwitchName,lLevel) \ + ( (This)->lpVtbl -> ModifyLogSwitch(This,pLogSwitchName,lLevel) ) -#define ICorDebugProcess_EnumerateAppDomains(This,ppAppDomains) \ - ( (This)->lpVtbl -> EnumerateAppDomains(This,ppAppDomains) ) +#define ICorDebugProcess_EnumerateAppDomains(This,ppAppDomains) \ + ( (This)->lpVtbl -> EnumerateAppDomains(This,ppAppDomains) ) -#define ICorDebugProcess_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) +#define ICorDebugProcess_GetObject(This,ppObject) \ + ( (This)->lpVtbl -> GetObject(This,ppObject) ) -#define ICorDebugProcess_ThreadForFiberCookie(This,fiberCookie,ppThread) \ - ( (This)->lpVtbl -> ThreadForFiberCookie(This,fiberCookie,ppThread) ) +#define ICorDebugProcess_ThreadForFiberCookie(This,fiberCookie,ppThread) \ + ( (This)->lpVtbl -> ThreadForFiberCookie(This,fiberCookie,ppThread) ) -#define ICorDebugProcess_GetHelperThreadID(This,pThreadID) \ - ( (This)->lpVtbl -> GetHelperThreadID(This,pThreadID) ) +#define ICorDebugProcess_GetHelperThreadID(This,pThreadID) \ + ( (This)->lpVtbl -> GetHelperThreadID(This,pThreadID) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0037 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -7289,107 +6962,97 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0037_v0_0_s_ifspec; #define __ICorDebugProcess2_INTERFACE_DEFINED__ /* interface ICorDebugProcess2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AD1B3588-0EF0-4744-A496-AA09A9F80371") ICorDebugProcess2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetThreadForTaskID( + virtual HRESULT STDMETHODCALLTYPE GetThreadForTaskID( /* [in] */ TASKID taskid, /* [out] */ ICorDebugThread2 **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersion( + + virtual HRESULT STDMETHODCALLTYPE GetVersion( /* [out] */ COR_VERSION *version) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnmanagedBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE SetUnmanagedBreakpoint( /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG32 bufsize, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *bufLen) = 0; - - virtual HRESULT STDMETHODCALLTYPE ClearUnmanagedBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE ClearUnmanagedBreakpoint( /* [in] */ CORDB_ADDRESS address) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDesiredNGENCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE SetDesiredNGENCompilerFlags( /* [in] */ DWORD pdwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDesiredNGENCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE GetDesiredNGENCompilerFlags( /* [out] */ DWORD *pdwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetReferenceValueFromGCHandle( + + virtual HRESULT STDMETHODCALLTYPE GetReferenceValueFromGCHandle( /* [in] */ UINT_PTR handle, /* [out] */ ICorDebugReferenceValue **pOutValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess2 * This); - - DECLSPEC_XFGVIRT(ICorDebugProcess2, GetThreadForTaskID) - HRESULT ( STDMETHODCALLTYPE *GetThreadForTaskID )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadForTaskID )( ICorDebugProcess2 * This, /* [in] */ TASKID taskid, /* [out] */ ICorDebugThread2 **ppThread); - - DECLSPEC_XFGVIRT(ICorDebugProcess2, GetVersion) - HRESULT ( STDMETHODCALLTYPE *GetVersion )( + + HRESULT ( STDMETHODCALLTYPE *GetVersion )( ICorDebugProcess2 * This, /* [out] */ COR_VERSION *version); - - DECLSPEC_XFGVIRT(ICorDebugProcess2, SetUnmanagedBreakpoint) - HRESULT ( STDMETHODCALLTYPE *SetUnmanagedBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *SetUnmanagedBreakpoint )( ICorDebugProcess2 * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG32 bufsize, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *bufLen); - - DECLSPEC_XFGVIRT(ICorDebugProcess2, ClearUnmanagedBreakpoint) - HRESULT ( STDMETHODCALLTYPE *ClearUnmanagedBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *ClearUnmanagedBreakpoint )( ICorDebugProcess2 * This, /* [in] */ CORDB_ADDRESS address); - - DECLSPEC_XFGVIRT(ICorDebugProcess2, SetDesiredNGENCompilerFlags) - HRESULT ( STDMETHODCALLTYPE *SetDesiredNGENCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *SetDesiredNGENCompilerFlags )( ICorDebugProcess2 * This, /* [in] */ DWORD pdwFlags); - - DECLSPEC_XFGVIRT(ICorDebugProcess2, GetDesiredNGENCompilerFlags) - HRESULT ( STDMETHODCALLTYPE *GetDesiredNGENCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetDesiredNGENCompilerFlags )( ICorDebugProcess2 * This, /* [out] */ DWORD *pdwFlags); - - DECLSPEC_XFGVIRT(ICorDebugProcess2, GetReferenceValueFromGCHandle) - HRESULT ( STDMETHODCALLTYPE *GetReferenceValueFromGCHandle )( + + HRESULT ( STDMETHODCALLTYPE *GetReferenceValueFromGCHandle )( ICorDebugProcess2 * This, /* [in] */ UINT_PTR handle, /* [out] */ ICorDebugReferenceValue **pOutValue); - + END_INTERFACE } ICorDebugProcess2Vtbl; @@ -7398,102 +7061,98 @@ EXTERN_C const IID IID_ICorDebugProcess2; CONST_VTBL struct ICorDebugProcess2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess2_GetThreadForTaskID(This,taskid,ppThread) \ - ( (This)->lpVtbl -> GetThreadForTaskID(This,taskid,ppThread) ) +#define ICorDebugProcess2_GetThreadForTaskID(This,taskid,ppThread) \ + ( (This)->lpVtbl -> GetThreadForTaskID(This,taskid,ppThread) ) -#define ICorDebugProcess2_GetVersion(This,version) \ - ( (This)->lpVtbl -> GetVersion(This,version) ) +#define ICorDebugProcess2_GetVersion(This,version) \ + ( (This)->lpVtbl -> GetVersion(This,version) ) -#define ICorDebugProcess2_SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) \ - ( (This)->lpVtbl -> SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) ) +#define ICorDebugProcess2_SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) \ + ( (This)->lpVtbl -> SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) ) -#define ICorDebugProcess2_ClearUnmanagedBreakpoint(This,address) \ - ( (This)->lpVtbl -> ClearUnmanagedBreakpoint(This,address) ) +#define ICorDebugProcess2_ClearUnmanagedBreakpoint(This,address) \ + ( (This)->lpVtbl -> ClearUnmanagedBreakpoint(This,address) ) -#define ICorDebugProcess2_SetDesiredNGENCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> SetDesiredNGENCompilerFlags(This,pdwFlags) ) +#define ICorDebugProcess2_SetDesiredNGENCompilerFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> SetDesiredNGENCompilerFlags(This,pdwFlags) ) -#define ICorDebugProcess2_GetDesiredNGENCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetDesiredNGENCompilerFlags(This,pdwFlags) ) +#define ICorDebugProcess2_GetDesiredNGENCompilerFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> GetDesiredNGENCompilerFlags(This,pdwFlags) ) -#define ICorDebugProcess2_GetReferenceValueFromGCHandle(This,handle,pOutValue) \ - ( (This)->lpVtbl -> GetReferenceValueFromGCHandle(This,handle,pOutValue) ) +#define ICorDebugProcess2_GetReferenceValueFromGCHandle(This,handle,pOutValue) \ + ( (This)->lpVtbl -> GetReferenceValueFromGCHandle(This,handle,pOutValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess3_INTERFACE_DEFINED__ #define __ICorDebugProcess3_INTERFACE_DEFINED__ /* interface ICorDebugProcess3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2EE06488-C0D4-42B1-B26D-F3795EF606FB") ICorDebugProcess3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetEnableCustomNotification( + virtual HRESULT STDMETHODCALLTYPE SetEnableCustomNotification( ICorDebugClass *pClass, BOOL fEnable) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess3 * This); - - DECLSPEC_XFGVIRT(ICorDebugProcess3, SetEnableCustomNotification) - HRESULT ( STDMETHODCALLTYPE *SetEnableCustomNotification )( + + HRESULT ( STDMETHODCALLTYPE *SetEnableCustomNotification )( ICorDebugProcess3 * This, ICorDebugClass *pClass, BOOL fEnable); - + END_INTERFACE } ICorDebugProcess3Vtbl; @@ -7502,190 +7161,175 @@ EXTERN_C const IID IID_ICorDebugProcess3; CONST_VTBL struct ICorDebugProcess3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess3_SetEnableCustomNotification(This,pClass,fEnable) \ - ( (This)->lpVtbl -> SetEnableCustomNotification(This,pClass,fEnable) ) +#define ICorDebugProcess3_SetEnableCustomNotification(This,pClass,fEnable) \ + ( (This)->lpVtbl -> SetEnableCustomNotification(This,pClass,fEnable) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess5_INTERFACE_DEFINED__ #define __ICorDebugProcess5_INTERFACE_DEFINED__ /* interface ICorDebugProcess5 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess5; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("21e9d9c0-fcb8-11df-8cff-0800200c9a66") ICorDebugProcess5 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetGCHeapInformation( + virtual HRESULT STDMETHODCALLTYPE GetGCHeapInformation( /* [out] */ COR_HEAPINFO *pHeapInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateHeap( + + virtual HRESULT STDMETHODCALLTYPE EnumerateHeap( /* [out] */ ICorDebugHeapEnum **ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateHeapRegions( + + virtual HRESULT STDMETHODCALLTYPE EnumerateHeapRegions( /* [out] */ ICorDebugHeapSegmentEnum **ppRegions) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [in] */ CORDB_ADDRESS addr, /* [out] */ ICorDebugObjectValue **pObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateGCReferences( + + virtual HRESULT STDMETHODCALLTYPE EnumerateGCReferences( /* [in] */ BOOL enumerateWeakReferences, /* [out] */ ICorDebugGCReferenceEnum **ppEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateHandles( + + virtual HRESULT STDMETHODCALLTYPE EnumerateHandles( /* [in] */ CorGCReferenceType types, /* [out] */ ICorDebugGCReferenceEnum **ppEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeID( + + virtual HRESULT STDMETHODCALLTYPE GetTypeID( /* [in] */ CORDB_ADDRESS obj, /* [out] */ COR_TYPEID *pId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeForTypeID( + + virtual HRESULT STDMETHODCALLTYPE GetTypeForTypeID( /* [in] */ COR_TYPEID id, /* [out] */ ICorDebugType **ppType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetArrayLayout( + + virtual HRESULT STDMETHODCALLTYPE GetArrayLayout( /* [in] */ COR_TYPEID id, /* [out] */ COR_ARRAY_LAYOUT *pLayout) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeLayout( + + virtual HRESULT STDMETHODCALLTYPE GetTypeLayout( /* [in] */ COR_TYPEID id, /* [out] */ COR_TYPE_LAYOUT *pLayout) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeFields( + + virtual HRESULT STDMETHODCALLTYPE GetTypeFields( /* [in] */ COR_TYPEID id, ULONG32 celt, COR_FIELD fields[ ], ULONG32 *pceltNeeded) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableNGENPolicy( + + virtual HRESULT STDMETHODCALLTYPE EnableNGENPolicy( /* [in] */ CorDebugNGENPolicy ePolicy) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess5Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess5 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess5 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess5 * This); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, GetGCHeapInformation) - HRESULT ( STDMETHODCALLTYPE *GetGCHeapInformation )( + + HRESULT ( STDMETHODCALLTYPE *GetGCHeapInformation )( ICorDebugProcess5 * This, /* [out] */ COR_HEAPINFO *pHeapInfo); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, EnumerateHeap) - HRESULT ( STDMETHODCALLTYPE *EnumerateHeap )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateHeap )( ICorDebugProcess5 * This, /* [out] */ ICorDebugHeapEnum **ppObjects); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, EnumerateHeapRegions) - HRESULT ( STDMETHODCALLTYPE *EnumerateHeapRegions )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateHeapRegions )( ICorDebugProcess5 * This, /* [out] */ ICorDebugHeapSegmentEnum **ppRegions); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, GetObject) - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugProcess5 * This, /* [in] */ CORDB_ADDRESS addr, /* [out] */ ICorDebugObjectValue **pObject); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, EnumerateGCReferences) - HRESULT ( STDMETHODCALLTYPE *EnumerateGCReferences )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateGCReferences )( ICorDebugProcess5 * This, /* [in] */ BOOL enumerateWeakReferences, /* [out] */ ICorDebugGCReferenceEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, EnumerateHandles) - HRESULT ( STDMETHODCALLTYPE *EnumerateHandles )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateHandles )( ICorDebugProcess5 * This, /* [in] */ CorGCReferenceType types, /* [out] */ ICorDebugGCReferenceEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, GetTypeID) - HRESULT ( STDMETHODCALLTYPE *GetTypeID )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeID )( ICorDebugProcess5 * This, /* [in] */ CORDB_ADDRESS obj, /* [out] */ COR_TYPEID *pId); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, GetTypeForTypeID) - HRESULT ( STDMETHODCALLTYPE *GetTypeForTypeID )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeForTypeID )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, /* [out] */ ICorDebugType **ppType); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, GetArrayLayout) - HRESULT ( STDMETHODCALLTYPE *GetArrayLayout )( + + HRESULT ( STDMETHODCALLTYPE *GetArrayLayout )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, /* [out] */ COR_ARRAY_LAYOUT *pLayout); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, GetTypeLayout) - HRESULT ( STDMETHODCALLTYPE *GetTypeLayout )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeLayout )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, /* [out] */ COR_TYPE_LAYOUT *pLayout); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, GetTypeFields) - HRESULT ( STDMETHODCALLTYPE *GetTypeFields )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeFields )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, ULONG32 celt, COR_FIELD fields[ ], ULONG32 *pceltNeeded); - - DECLSPEC_XFGVIRT(ICorDebugProcess5, EnableNGENPolicy) - HRESULT ( STDMETHODCALLTYPE *EnableNGENPolicy )( + + HRESULT ( STDMETHODCALLTYPE *EnableNGENPolicy )( ICorDebugProcess5 * This, /* [in] */ CorDebugNGENPolicy ePolicy); - + END_INTERFACE } ICorDebugProcess5Vtbl; @@ -7694,101 +7338,101 @@ EXTERN_C const IID IID_ICorDebugProcess5; CONST_VTBL struct ICorDebugProcess5Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess5_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess5_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess5_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess5_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess5_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess5_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess5_GetGCHeapInformation(This,pHeapInfo) \ - ( (This)->lpVtbl -> GetGCHeapInformation(This,pHeapInfo) ) +#define ICorDebugProcess5_GetGCHeapInformation(This,pHeapInfo) \ + ( (This)->lpVtbl -> GetGCHeapInformation(This,pHeapInfo) ) -#define ICorDebugProcess5_EnumerateHeap(This,ppObjects) \ - ( (This)->lpVtbl -> EnumerateHeap(This,ppObjects) ) +#define ICorDebugProcess5_EnumerateHeap(This,ppObjects) \ + ( (This)->lpVtbl -> EnumerateHeap(This,ppObjects) ) -#define ICorDebugProcess5_EnumerateHeapRegions(This,ppRegions) \ - ( (This)->lpVtbl -> EnumerateHeapRegions(This,ppRegions) ) +#define ICorDebugProcess5_EnumerateHeapRegions(This,ppRegions) \ + ( (This)->lpVtbl -> EnumerateHeapRegions(This,ppRegions) ) -#define ICorDebugProcess5_GetObject(This,addr,pObject) \ - ( (This)->lpVtbl -> GetObject(This,addr,pObject) ) +#define ICorDebugProcess5_GetObject(This,addr,pObject) \ + ( (This)->lpVtbl -> GetObject(This,addr,pObject) ) -#define ICorDebugProcess5_EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) \ - ( (This)->lpVtbl -> EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) ) +#define ICorDebugProcess5_EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) \ + ( (This)->lpVtbl -> EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) ) -#define ICorDebugProcess5_EnumerateHandles(This,types,ppEnum) \ - ( (This)->lpVtbl -> EnumerateHandles(This,types,ppEnum) ) +#define ICorDebugProcess5_EnumerateHandles(This,types,ppEnum) \ + ( (This)->lpVtbl -> EnumerateHandles(This,types,ppEnum) ) -#define ICorDebugProcess5_GetTypeID(This,obj,pId) \ - ( (This)->lpVtbl -> GetTypeID(This,obj,pId) ) +#define ICorDebugProcess5_GetTypeID(This,obj,pId) \ + ( (This)->lpVtbl -> GetTypeID(This,obj,pId) ) -#define ICorDebugProcess5_GetTypeForTypeID(This,id,ppType) \ - ( (This)->lpVtbl -> GetTypeForTypeID(This,id,ppType) ) +#define ICorDebugProcess5_GetTypeForTypeID(This,id,ppType) \ + ( (This)->lpVtbl -> GetTypeForTypeID(This,id,ppType) ) -#define ICorDebugProcess5_GetArrayLayout(This,id,pLayout) \ - ( (This)->lpVtbl -> GetArrayLayout(This,id,pLayout) ) +#define ICorDebugProcess5_GetArrayLayout(This,id,pLayout) \ + ( (This)->lpVtbl -> GetArrayLayout(This,id,pLayout) ) -#define ICorDebugProcess5_GetTypeLayout(This,id,pLayout) \ - ( (This)->lpVtbl -> GetTypeLayout(This,id,pLayout) ) +#define ICorDebugProcess5_GetTypeLayout(This,id,pLayout) \ + ( (This)->lpVtbl -> GetTypeLayout(This,id,pLayout) ) -#define ICorDebugProcess5_GetTypeFields(This,id,celt,fields,pceltNeeded) \ - ( (This)->lpVtbl -> GetTypeFields(This,id,celt,fields,pceltNeeded) ) +#define ICorDebugProcess5_GetTypeFields(This,id,celt,fields,pceltNeeded) \ + ( (This)->lpVtbl -> GetTypeFields(This,id,celt,fields,pceltNeeded) ) -#define ICorDebugProcess5_EnableNGENPolicy(This,ePolicy) \ - ( (This)->lpVtbl -> EnableNGENPolicy(This,ePolicy) ) +#define ICorDebugProcess5_EnableNGENPolicy(This,ePolicy) \ + ( (This)->lpVtbl -> EnableNGENPolicy(This,ePolicy) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess5_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess5_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0040 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugRecordFormat { - FORMAT_WINDOWS_EXCEPTIONRECORD32 = 1, - FORMAT_WINDOWS_EXCEPTIONRECORD64 = 2 - } CorDebugRecordFormat; + FORMAT_WINDOWS_EXCEPTIONRECORD32 = 1, + FORMAT_WINDOWS_EXCEPTIONRECORD64 = 2 + } CorDebugRecordFormat; -typedef +typedef enum CorDebugDecodeEventFlagsWindows { - IS_FIRST_CHANCE = 1 - } CorDebugDecodeEventFlagsWindows; + IS_FIRST_CHANCE = 1 + } CorDebugDecodeEventFlagsWindows; -typedef +typedef enum CorDebugDebugEventKind { - DEBUG_EVENT_KIND_MODULE_LOADED = 1, - DEBUG_EVENT_KIND_MODULE_UNLOADED = 2, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_FIRST_CHANCE = 3, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_USER_FIRST_CHANCE = 4, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_CATCH_HANDLER_FOUND = 5, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED = 6 - } CorDebugDebugEventKind; + DEBUG_EVENT_KIND_MODULE_LOADED = 1, + DEBUG_EVENT_KIND_MODULE_UNLOADED = 2, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_FIRST_CHANCE = 3, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_USER_FIRST_CHANCE = 4, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_CATCH_HANDLER_FOUND = 5, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED = 6 + } CorDebugDebugEventKind; -typedef +typedef enum CorDebugStateChange { - PROCESS_RUNNING = 0x1, - FLUSH_ALL = 0x2 - } CorDebugStateChange; + PROCESS_RUNNING = 0x1, + FLUSH_ALL = 0x2 + } CorDebugStateChange; @@ -7799,57 +7443,52 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0040_v0_0_s_ifspec; #define __ICorDebugDebugEvent_INTERFACE_DEFINED__ /* interface ICorDebugDebugEvent */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugDebugEvent; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("41BD395D-DE99-48F1-BF7A-CC0F44A6D281") ICorDebugDebugEvent : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetEventKind( + virtual HRESULT STDMETHODCALLTYPE GetEventKind( /* [out] */ CorDebugDebugEventKind *pDebugEventKind) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThread( + + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [out] */ ICorDebugThread **ppThread) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDebugEventVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDebugEvent * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDebugEvent * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDebugEvent * This); - - DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetEventKind) - HRESULT ( STDMETHODCALLTYPE *GetEventKind )( + + HRESULT ( STDMETHODCALLTYPE *GetEventKind )( ICorDebugDebugEvent * This, /* [out] */ CorDebugDebugEventKind *pDebugEventKind); - - DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetThread) - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugDebugEvent * This, /* [out] */ ICorDebugThread **ppThread); - + END_INTERFACE } ICorDebugDebugEventVtbl; @@ -7858,57 +7497,57 @@ EXTERN_C const IID IID_ICorDebugDebugEvent; CONST_VTBL struct ICorDebugDebugEventVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDebugEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDebugEvent_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDebugEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDebugEvent_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDebugEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDebugEvent_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDebugEvent_GetEventKind(This,pDebugEventKind) \ - ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) +#define ICorDebugDebugEvent_GetEventKind(This,pDebugEventKind) \ + ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) -#define ICorDebugDebugEvent_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugDebugEvent_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDebugEvent_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDebugEvent_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0041 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugCodeInvokeKind { - CODE_INVOKE_KIND_NONE = 0, - CODE_INVOKE_KIND_RETURN = ( CODE_INVOKE_KIND_NONE + 1 ) , - CODE_INVOKE_KIND_TAILCALL = ( CODE_INVOKE_KIND_RETURN + 1 ) - } CorDebugCodeInvokeKind; + CODE_INVOKE_KIND_NONE = 0, + CODE_INVOKE_KIND_RETURN = ( CODE_INVOKE_KIND_NONE + 1 ) , + CODE_INVOKE_KIND_TAILCALL = ( CODE_INVOKE_KIND_RETURN + 1 ) + } CorDebugCodeInvokeKind; -typedef +typedef enum CorDebugCodeInvokePurpose { - CODE_INVOKE_PURPOSE_NONE = 0, - CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION = ( CODE_INVOKE_PURPOSE_NONE + 1 ) , - CODE_INVOKE_PURPOSE_CLASS_INIT = ( CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION + 1 ) , - CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH = ( CODE_INVOKE_PURPOSE_CLASS_INIT + 1 ) - } CorDebugCodeInvokePurpose; + CODE_INVOKE_PURPOSE_NONE = 0, + CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION = ( CODE_INVOKE_PURPOSE_NONE + 1 ) , + CODE_INVOKE_PURPOSE_CLASS_INIT = ( CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION + 1 ) , + CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH = ( CODE_INVOKE_PURPOSE_CLASS_INIT + 1 ) + } CorDebugCodeInvokePurpose; @@ -7919,69 +7558,65 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0041_v0_0_s_ifspec; #define __ICorDebugProcess6_INTERFACE_DEFINED__ /* interface ICorDebugProcess6 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess6; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("11588775-7205-4CEB-A41A-93753C3153E9") ICorDebugProcess6 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE DecodeEvent( + virtual HRESULT STDMETHODCALLTYPE DecodeEvent( /* [size_is][length_is][in] */ const BYTE pRecord[ ], /* [in] */ DWORD countBytes, /* [in] */ CorDebugRecordFormat format, /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugDebugEvent **ppEvent) = 0; - - virtual HRESULT STDMETHODCALLTYPE ProcessStateChanged( + + virtual HRESULT STDMETHODCALLTYPE ProcessStateChanged( /* [in] */ CorDebugStateChange change) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCode( + + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [in] */ CORDB_ADDRESS codeAddress, /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableVirtualModuleSplitting( + + virtual HRESULT STDMETHODCALLTYPE EnableVirtualModuleSplitting( BOOL enableSplitting) = 0; - - virtual HRESULT STDMETHODCALLTYPE MarkDebuggerAttached( + + virtual HRESULT STDMETHODCALLTYPE MarkDebuggerAttached( BOOL fIsAttached) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetExportStepInfo( + + virtual HRESULT STDMETHODCALLTYPE GetExportStepInfo( /* [in] */ LPCWSTR pszExportName, /* [out] */ CorDebugCodeInvokeKind *pInvokeKind, /* [out] */ CorDebugCodeInvokePurpose *pInvokePurpose) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess6Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess6 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess6 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess6 * This); - - DECLSPEC_XFGVIRT(ICorDebugProcess6, DecodeEvent) - HRESULT ( STDMETHODCALLTYPE *DecodeEvent )( + + HRESULT ( STDMETHODCALLTYPE *DecodeEvent )( ICorDebugProcess6 * This, /* [size_is][length_is][in] */ const BYTE pRecord[ ], /* [in] */ DWORD countBytes, @@ -7989,35 +7624,30 @@ EXTERN_C const IID IID_ICorDebugProcess6; /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugDebugEvent **ppEvent); - - DECLSPEC_XFGVIRT(ICorDebugProcess6, ProcessStateChanged) - HRESULT ( STDMETHODCALLTYPE *ProcessStateChanged )( + + HRESULT ( STDMETHODCALLTYPE *ProcessStateChanged )( ICorDebugProcess6 * This, /* [in] */ CorDebugStateChange change); - - DECLSPEC_XFGVIRT(ICorDebugProcess6, GetCode) - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugProcess6 * This, /* [in] */ CORDB_ADDRESS codeAddress, /* [out] */ ICorDebugCode **ppCode); - - DECLSPEC_XFGVIRT(ICorDebugProcess6, EnableVirtualModuleSplitting) - HRESULT ( STDMETHODCALLTYPE *EnableVirtualModuleSplitting )( + + HRESULT ( STDMETHODCALLTYPE *EnableVirtualModuleSplitting )( ICorDebugProcess6 * This, BOOL enableSplitting); - - DECLSPEC_XFGVIRT(ICorDebugProcess6, MarkDebuggerAttached) - HRESULT ( STDMETHODCALLTYPE *MarkDebuggerAttached )( + + HRESULT ( STDMETHODCALLTYPE *MarkDebuggerAttached )( ICorDebugProcess6 * This, BOOL fIsAttached); - - DECLSPEC_XFGVIRT(ICorDebugProcess6, GetExportStepInfo) - HRESULT ( STDMETHODCALLTYPE *GetExportStepInfo )( + + HRESULT ( STDMETHODCALLTYPE *GetExportStepInfo )( ICorDebugProcess6 * This, /* [in] */ LPCWSTR pszExportName, /* [out] */ CorDebugCodeInvokeKind *pInvokeKind, /* [out] */ CorDebugCodeInvokePurpose *pInvokePurpose); - + END_INTERFACE } ICorDebugProcess6Vtbl; @@ -8026,59 +7656,59 @@ EXTERN_C const IID IID_ICorDebugProcess6; CONST_VTBL struct ICorDebugProcess6Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess6_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess6_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess6_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess6_DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) \ - ( (This)->lpVtbl -> DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) ) +#define ICorDebugProcess6_DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) \ + ( (This)->lpVtbl -> DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) ) -#define ICorDebugProcess6_ProcessStateChanged(This,change) \ - ( (This)->lpVtbl -> ProcessStateChanged(This,change) ) +#define ICorDebugProcess6_ProcessStateChanged(This,change) \ + ( (This)->lpVtbl -> ProcessStateChanged(This,change) ) -#define ICorDebugProcess6_GetCode(This,codeAddress,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,codeAddress,ppCode) ) +#define ICorDebugProcess6_GetCode(This,codeAddress,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,codeAddress,ppCode) ) -#define ICorDebugProcess6_EnableVirtualModuleSplitting(This,enableSplitting) \ - ( (This)->lpVtbl -> EnableVirtualModuleSplitting(This,enableSplitting) ) +#define ICorDebugProcess6_EnableVirtualModuleSplitting(This,enableSplitting) \ + ( (This)->lpVtbl -> EnableVirtualModuleSplitting(This,enableSplitting) ) -#define ICorDebugProcess6_MarkDebuggerAttached(This,fIsAttached) \ - ( (This)->lpVtbl -> MarkDebuggerAttached(This,fIsAttached) ) +#define ICorDebugProcess6_MarkDebuggerAttached(This,fIsAttached) \ + ( (This)->lpVtbl -> MarkDebuggerAttached(This,fIsAttached) ) -#define ICorDebugProcess6_GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) \ - ( (This)->lpVtbl -> GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) ) +#define ICorDebugProcess6_GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) \ + ( (This)->lpVtbl -> GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess6_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess6_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0042 */ -/* [local] */ +/* [local] */ -typedef +typedef enum WriteableMetadataUpdateMode { - LegacyCompatPolicy = 0, - AlwaysShowUpdates = ( LegacyCompatPolicy + 1 ) - } WriteableMetadataUpdateMode; + LegacyCompatPolicy = 0, + AlwaysShowUpdates = ( LegacyCompatPolicy + 1 ) + } WriteableMetadataUpdateMode; @@ -8089,49 +7719,45 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0042_v0_0_s_ifspec; #define __ICorDebugProcess7_INTERFACE_DEFINED__ /* interface ICorDebugProcess7 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess7; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("9B2C54E4-119F-4D6F-B402-527603266D69") ICorDebugProcess7 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetWriteableMetadataUpdateMode( + virtual HRESULT STDMETHODCALLTYPE SetWriteableMetadataUpdateMode( WriteableMetadataUpdateMode flags) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess7Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess7 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess7 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess7 * This); - - DECLSPEC_XFGVIRT(ICorDebugProcess7, SetWriteableMetadataUpdateMode) - HRESULT ( STDMETHODCALLTYPE *SetWriteableMetadataUpdateMode )( + + HRESULT ( STDMETHODCALLTYPE *SetWriteableMetadataUpdateMode )( ICorDebugProcess7 * This, WriteableMetadataUpdateMode flags); - + END_INTERFACE } ICorDebugProcess7Vtbl; @@ -8140,82 +7766,78 @@ EXTERN_C const IID IID_ICorDebugProcess7; CONST_VTBL struct ICorDebugProcess7Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess7_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess7_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess7_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess7_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess7_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess7_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess7_SetWriteableMetadataUpdateMode(This,flags) \ - ( (This)->lpVtbl -> SetWriteableMetadataUpdateMode(This,flags) ) +#define ICorDebugProcess7_SetWriteableMetadataUpdateMode(This,flags) \ + ( (This)->lpVtbl -> SetWriteableMetadataUpdateMode(This,flags) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess7_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess7_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess8_INTERFACE_DEFINED__ #define __ICorDebugProcess8_INTERFACE_DEFINED__ /* interface ICorDebugProcess8 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess8; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2E6F28C1-85EB-4141-80AD-0A90944B9639") ICorDebugProcess8 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnableExceptionCallbacksOutsideOfMyCode( + virtual HRESULT STDMETHODCALLTYPE EnableExceptionCallbacksOutsideOfMyCode( /* [in] */ BOOL enableExceptionsOutsideOfJMC) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess8Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess8 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess8 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess8 * This); - - DECLSPEC_XFGVIRT(ICorDebugProcess8, EnableExceptionCallbacksOutsideOfMyCode) - HRESULT ( STDMETHODCALLTYPE *EnableExceptionCallbacksOutsideOfMyCode )( + + HRESULT ( STDMETHODCALLTYPE *EnableExceptionCallbacksOutsideOfMyCode )( ICorDebugProcess8 * This, /* [in] */ BOOL enableExceptionsOutsideOfJMC); - + END_INTERFACE } ICorDebugProcess8Vtbl; @@ -8224,82 +7846,78 @@ EXTERN_C const IID IID_ICorDebugProcess8; CONST_VTBL struct ICorDebugProcess8Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess8_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess8_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess8_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess8_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess8_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess8_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess8_EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) \ - ( (This)->lpVtbl -> EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) ) +#define ICorDebugProcess8_EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) \ + ( (This)->lpVtbl -> EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess8_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess8_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess10_INTERFACE_DEFINED__ #define __ICorDebugProcess10_INTERFACE_DEFINED__ /* interface ICorDebugProcess10 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess10; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("8F378F6F-1017-4461-9890-ECF64C54079F") ICorDebugProcess10 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnableGCNotificationEvents( + virtual HRESULT STDMETHODCALLTYPE EnableGCNotificationEvents( BOOL fEnable) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess10Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess10 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess10 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess10 * This); - - DECLSPEC_XFGVIRT(ICorDebugProcess10, EnableGCNotificationEvents) - HRESULT ( STDMETHODCALLTYPE *EnableGCNotificationEvents )( + + HRESULT ( STDMETHODCALLTYPE *EnableGCNotificationEvents )( ICorDebugProcess10 * This, BOOL fEnable); - + END_INTERFACE } ICorDebugProcess10Vtbl; @@ -8308,43 +7926,43 @@ EXTERN_C const IID IID_ICorDebugProcess10; CONST_VTBL struct ICorDebugProcess10Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess10_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess10_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess10_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess10_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess10_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess10_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess10_EnableGCNotificationEvents(This,fEnable) \ - ( (This)->lpVtbl -> EnableGCNotificationEvents(This,fEnable) ) +#define ICorDebugProcess10_EnableGCNotificationEvents(This,fEnable) \ + ( (This)->lpVtbl -> EnableGCNotificationEvents(This,fEnable) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess10_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess10_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0045 */ -/* [local] */ +/* [local] */ typedef struct _COR_MEMORY_RANGE { CORDB_ADDRESS start; CORDB_ADDRESS end; - } COR_MEMORY_RANGE; + } COR_MEMORY_RANGE; @@ -8355,72 +7973,64 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0045_v0_0_s_ifspec; #define __ICorDebugMemoryRangeEnum_INTERFACE_DEFINED__ /* interface ICorDebugMemoryRangeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugMemoryRangeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D1A0BCFC-5865-4437-BE3F-36F022951F8A") ICorDebugMemoryRangeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_MEMORY_RANGE objects[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMemoryRangeEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMemoryRangeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMemoryRangeEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMemoryRangeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugMemoryRangeEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugMemoryRangeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugMemoryRangeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugMemoryRangeEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugMemoryRangeEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugMemoryRangeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_MEMORY_RANGE objects[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugMemoryRangeEnumVtbl; @@ -8429,95 +8039,91 @@ EXTERN_C const IID IID_ICorDebugMemoryRangeEnum; CONST_VTBL struct ICorDebugMemoryRangeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMemoryRangeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMemoryRangeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMemoryRangeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMemoryRangeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMemoryRangeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMemoryRangeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMemoryRangeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugMemoryRangeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugMemoryRangeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugMemoryRangeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugMemoryRangeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugMemoryRangeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugMemoryRangeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugMemoryRangeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugMemoryRangeEnum_Next(This,celt,objects,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) +#define ICorDebugMemoryRangeEnum_Next(This,celt,objects,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMemoryRangeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMemoryRangeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess11_INTERFACE_DEFINED__ #define __ICorDebugProcess11_INTERFACE_DEFINED__ /* interface ICorDebugProcess11 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess11; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("344B37AA-F2C0-4D3B-9909-91CCF787DA8C") ICorDebugProcess11 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateLoaderHeapMemoryRegions( + virtual HRESULT STDMETHODCALLTYPE EnumerateLoaderHeapMemoryRegions( /* [out] */ ICorDebugMemoryRangeEnum **ppRanges) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess11Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess11 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess11 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess11 * This); - - DECLSPEC_XFGVIRT(ICorDebugProcess11, EnumerateLoaderHeapMemoryRegions) - HRESULT ( STDMETHODCALLTYPE *EnumerateLoaderHeapMemoryRegions )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateLoaderHeapMemoryRegions )( ICorDebugProcess11 * This, /* [out] */ ICorDebugMemoryRangeEnum **ppRanges); - + END_INTERFACE } ICorDebugProcess11Vtbl; @@ -8526,92 +8132,86 @@ EXTERN_C const IID IID_ICorDebugProcess11; CONST_VTBL struct ICorDebugProcess11Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess11_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess11_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess11_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess11_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess11_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess11_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess11_EnumerateLoaderHeapMemoryRegions(This,ppRanges) \ - ( (This)->lpVtbl -> EnumerateLoaderHeapMemoryRegions(This,ppRanges) ) +#define ICorDebugProcess11_EnumerateLoaderHeapMemoryRegions(This,ppRanges) \ + ( (This)->lpVtbl -> EnumerateLoaderHeapMemoryRegions(This,ppRanges) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess11_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess11_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ #define __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ /* interface ICorDebugModuleDebugEvent */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModuleDebugEvent; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("51A15E8D-9FFF-4864-9B87-F4FBDEA747A2") ICorDebugModuleDebugEvent : public ICorDebugDebugEvent { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModuleDebugEventVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModuleDebugEvent * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModuleDebugEvent * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModuleDebugEvent * This); - - DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetEventKind) - HRESULT ( STDMETHODCALLTYPE *GetEventKind )( + + HRESULT ( STDMETHODCALLTYPE *GetEventKind )( ICorDebugModuleDebugEvent * This, /* [out] */ CorDebugDebugEventKind *pDebugEventKind); - - DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetThread) - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugModuleDebugEvent * This, /* [out] */ ICorDebugThread **ppThread); - - DECLSPEC_XFGVIRT(ICorDebugModuleDebugEvent, GetModule) - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugModuleDebugEvent * This, /* [out] */ ICorDebugModule **ppModule); - + END_INTERFACE } ICorDebugModuleDebugEventVtbl; @@ -8620,115 +8220,107 @@ EXTERN_C const IID IID_ICorDebugModuleDebugEvent; CONST_VTBL struct ICorDebugModuleDebugEventVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModuleDebugEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModuleDebugEvent_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModuleDebugEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModuleDebugEvent_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModuleDebugEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModuleDebugEvent_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModuleDebugEvent_GetEventKind(This,pDebugEventKind) \ - ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) +#define ICorDebugModuleDebugEvent_GetEventKind(This,pDebugEventKind) \ + ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) -#define ICorDebugModuleDebugEvent_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugModuleDebugEvent_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) -#define ICorDebugModuleDebugEvent_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) +#define ICorDebugModuleDebugEvent_GetModule(This,ppModule) \ + ( (This)->lpVtbl -> GetModule(This,ppModule) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ */ #ifndef __ICorDebugExceptionDebugEvent_INTERFACE_DEFINED__ #define __ICorDebugExceptionDebugEvent_INTERFACE_DEFINED__ /* interface ICorDebugExceptionDebugEvent */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugExceptionDebugEvent; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AF79EC94-4752-419C-A626-5FB1CC1A5AB7") ICorDebugExceptionDebugEvent : public ICorDebugDebugEvent { public: - virtual HRESULT STDMETHODCALLTYPE GetStackPointer( + virtual HRESULT STDMETHODCALLTYPE GetStackPointer( /* [out] */ CORDB_ADDRESS *pStackPointer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNativeIP( + + virtual HRESULT STDMETHODCALLTYPE GetNativeIP( /* [out] */ CORDB_ADDRESS *pIP) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFlags( + + virtual HRESULT STDMETHODCALLTYPE GetFlags( /* [out] */ CorDebugExceptionFlags *pdwFlags) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugExceptionDebugEventVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugExceptionDebugEvent * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugExceptionDebugEvent * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugExceptionDebugEvent * This); - - DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetEventKind) - HRESULT ( STDMETHODCALLTYPE *GetEventKind )( + + HRESULT ( STDMETHODCALLTYPE *GetEventKind )( ICorDebugExceptionDebugEvent * This, /* [out] */ CorDebugDebugEventKind *pDebugEventKind); - - DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetThread) - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugExceptionDebugEvent * This, /* [out] */ ICorDebugThread **ppThread); - - DECLSPEC_XFGVIRT(ICorDebugExceptionDebugEvent, GetStackPointer) - HRESULT ( STDMETHODCALLTYPE *GetStackPointer )( + + HRESULT ( STDMETHODCALLTYPE *GetStackPointer )( ICorDebugExceptionDebugEvent * This, /* [out] */ CORDB_ADDRESS *pStackPointer); - - DECLSPEC_XFGVIRT(ICorDebugExceptionDebugEvent, GetNativeIP) - HRESULT ( STDMETHODCALLTYPE *GetNativeIP )( + + HRESULT ( STDMETHODCALLTYPE *GetNativeIP )( ICorDebugExceptionDebugEvent * This, /* [out] */ CORDB_ADDRESS *pIP); - - DECLSPEC_XFGVIRT(ICorDebugExceptionDebugEvent, GetFlags) - HRESULT ( STDMETHODCALLTYPE *GetFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetFlags )( ICorDebugExceptionDebugEvent * This, /* [out] */ CorDebugExceptionFlags *pdwFlags); - + END_INTERFACE } ICorDebugExceptionDebugEventVtbl; @@ -8737,103 +8329,98 @@ EXTERN_C const IID IID_ICorDebugExceptionDebugEvent; CONST_VTBL struct ICorDebugExceptionDebugEventVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugExceptionDebugEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugExceptionDebugEvent_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugExceptionDebugEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugExceptionDebugEvent_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugExceptionDebugEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugExceptionDebugEvent_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugExceptionDebugEvent_GetEventKind(This,pDebugEventKind) \ - ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) +#define ICorDebugExceptionDebugEvent_GetEventKind(This,pDebugEventKind) \ + ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) -#define ICorDebugExceptionDebugEvent_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugExceptionDebugEvent_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) -#define ICorDebugExceptionDebugEvent_GetStackPointer(This,pStackPointer) \ - ( (This)->lpVtbl -> GetStackPointer(This,pStackPointer) ) +#define ICorDebugExceptionDebugEvent_GetStackPointer(This,pStackPointer) \ + ( (This)->lpVtbl -> GetStackPointer(This,pStackPointer) ) -#define ICorDebugExceptionDebugEvent_GetNativeIP(This,pIP) \ - ( (This)->lpVtbl -> GetNativeIP(This,pIP) ) +#define ICorDebugExceptionDebugEvent_GetNativeIP(This,pIP) \ + ( (This)->lpVtbl -> GetNativeIP(This,pIP) ) -#define ICorDebugExceptionDebugEvent_GetFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetFlags(This,pdwFlags) ) +#define ICorDebugExceptionDebugEvent_GetFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> GetFlags(This,pdwFlags) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugExceptionDebugEvent_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugExceptionDebugEvent_INTERFACE_DEFINED__ */ #ifndef __ICorDebugBreakpoint_INTERFACE_DEFINED__ #define __ICorDebugBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAE8-8A68-11d2-983C-0000F808342D") ICorDebugBreakpoint : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Activate( + virtual HRESULT STDMETHODCALLTYPE Activate( /* [in] */ BOOL bActive) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsActive( + + virtual HRESULT STDMETHODCALLTYPE IsActive( /* [out] */ BOOL *pbActive) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugBreakpointVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBreakpoint * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBreakpoint * This); - - DECLSPEC_XFGVIRT(ICorDebugBreakpoint, Activate) - HRESULT ( STDMETHODCALLTYPE *Activate )( + + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugBreakpoint * This, /* [in] */ BOOL bActive); - - DECLSPEC_XFGVIRT(ICorDebugBreakpoint, IsActive) - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugBreakpoint * This, /* [out] */ BOOL *pbActive); - + END_INTERFACE } ICorDebugBreakpointVtbl; @@ -8842,103 +8429,96 @@ EXTERN_C const IID IID_ICorDebugBreakpoint; CONST_VTBL struct ICorDebugBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugBreakpoint_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugBreakpoint_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugBreakpoint_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) +#define ICorDebugBreakpoint_Activate(This,bActive) \ + ( (This)->lpVtbl -> Activate(This,bActive) ) -#define ICorDebugBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugBreakpoint_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugBreakpoint_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugBreakpoint_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunctionBreakpoint_INTERFACE_DEFINED__ #define __ICorDebugFunctionBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugFunctionBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunctionBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAE9-8A68-11d2-983C-0000F808342D") ICorDebugFunctionBreakpoint : public ICorDebugBreakpoint { public: - virtual HRESULT STDMETHODCALLTYPE GetFunction( + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOffset( + + virtual HRESULT STDMETHODCALLTYPE GetOffset( /* [out] */ ULONG32 *pnOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunctionBreakpointVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunctionBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunctionBreakpoint * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunctionBreakpoint * This); - - DECLSPEC_XFGVIRT(ICorDebugBreakpoint, Activate) - HRESULT ( STDMETHODCALLTYPE *Activate )( + + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugFunctionBreakpoint * This, /* [in] */ BOOL bActive); - - DECLSPEC_XFGVIRT(ICorDebugBreakpoint, IsActive) - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugFunctionBreakpoint * This, /* [out] */ BOOL *pbActive); - - DECLSPEC_XFGVIRT(ICorDebugFunctionBreakpoint, GetFunction) - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugFunctionBreakpoint * This, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugFunctionBreakpoint, GetOffset) - HRESULT ( STDMETHODCALLTYPE *GetOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetOffset )( ICorDebugFunctionBreakpoint * This, /* [out] */ ULONG32 *pnOffset); - + END_INTERFACE } ICorDebugFunctionBreakpointVtbl; @@ -8947,102 +8527,96 @@ EXTERN_C const IID IID_ICorDebugFunctionBreakpoint; CONST_VTBL struct ICorDebugFunctionBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFunctionBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunctionBreakpoint_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunctionBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunctionBreakpoint_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunctionBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunctionBreakpoint_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunctionBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) +#define ICorDebugFunctionBreakpoint_Activate(This,bActive) \ + ( (This)->lpVtbl -> Activate(This,bActive) ) -#define ICorDebugFunctionBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugFunctionBreakpoint_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugFunctionBreakpoint_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugFunctionBreakpoint_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugFunctionBreakpoint_GetOffset(This,pnOffset) \ - ( (This)->lpVtbl -> GetOffset(This,pnOffset) ) +#define ICorDebugFunctionBreakpoint_GetOffset(This,pnOffset) \ + ( (This)->lpVtbl -> GetOffset(This,pnOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunctionBreakpoint_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunctionBreakpoint_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModuleBreakpoint_INTERFACE_DEFINED__ #define __ICorDebugModuleBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugModuleBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModuleBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEA-8A68-11d2-983C-0000F808342D") ICorDebugModuleBreakpoint : public ICorDebugBreakpoint { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModuleBreakpointVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModuleBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModuleBreakpoint * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModuleBreakpoint * This); - - DECLSPEC_XFGVIRT(ICorDebugBreakpoint, Activate) - HRESULT ( STDMETHODCALLTYPE *Activate )( + + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugModuleBreakpoint * This, /* [in] */ BOOL bActive); - - DECLSPEC_XFGVIRT(ICorDebugBreakpoint, IsActive) - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugModuleBreakpoint * This, /* [out] */ BOOL *pbActive); - - DECLSPEC_XFGVIRT(ICorDebugModuleBreakpoint, GetModule) - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugModuleBreakpoint * This, /* [out] */ ICorDebugModule **ppModule); - + END_INTERFACE } ICorDebugModuleBreakpointVtbl; @@ -9051,99 +8625,93 @@ EXTERN_C const IID IID_ICorDebugModuleBreakpoint; CONST_VTBL struct ICorDebugModuleBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModuleBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModuleBreakpoint_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModuleBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModuleBreakpoint_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModuleBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModuleBreakpoint_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModuleBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) +#define ICorDebugModuleBreakpoint_Activate(This,bActive) \ + ( (This)->lpVtbl -> Activate(This,bActive) ) -#define ICorDebugModuleBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugModuleBreakpoint_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugModuleBreakpoint_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) +#define ICorDebugModuleBreakpoint_GetModule(This,ppModule) \ + ( (This)->lpVtbl -> GetModule(This,ppModule) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModuleBreakpoint_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModuleBreakpoint_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValueBreakpoint_INTERFACE_DEFINED__ #define __ICorDebugValueBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugValueBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValueBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEB-8A68-11d2-983C-0000F808342D") ICorDebugValueBreakpoint : public ICorDebugBreakpoint { public: - virtual HRESULT STDMETHODCALLTYPE GetValue( + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValueBreakpointVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValueBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValueBreakpoint * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValueBreakpoint * This); - - DECLSPEC_XFGVIRT(ICorDebugBreakpoint, Activate) - HRESULT ( STDMETHODCALLTYPE *Activate )( + + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugValueBreakpoint * This, /* [in] */ BOOL bActive); - - DECLSPEC_XFGVIRT(ICorDebugBreakpoint, IsActive) - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugValueBreakpoint * This, /* [out] */ BOOL *pbActive); - - DECLSPEC_XFGVIRT(ICorDebugValueBreakpoint, GetValue) - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugValueBreakpoint * This, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugValueBreakpointVtbl; @@ -9152,175 +8720,164 @@ EXTERN_C const IID IID_ICorDebugValueBreakpoint; CONST_VTBL struct ICorDebugValueBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValueBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValueBreakpoint_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValueBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValueBreakpoint_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValueBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValueBreakpoint_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValueBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) +#define ICorDebugValueBreakpoint_Activate(This,bActive) \ + ( (This)->lpVtbl -> Activate(This,bActive) ) -#define ICorDebugValueBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugValueBreakpoint_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugValueBreakpoint_GetValue(This,ppValue) \ - ( (This)->lpVtbl -> GetValue(This,ppValue) ) +#define ICorDebugValueBreakpoint_GetValue(This,ppValue) \ + ( (This)->lpVtbl -> GetValue(This,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValueBreakpoint_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValueBreakpoint_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStepper_INTERFACE_DEFINED__ #define __ICorDebugStepper_INTERFACE_DEFINED__ /* interface ICorDebugStepper */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugIntercept { - INTERCEPT_NONE = 0, - INTERCEPT_CLASS_INIT = 0x1, - INTERCEPT_EXCEPTION_FILTER = 0x2, - INTERCEPT_SECURITY = 0x4, - INTERCEPT_CONTEXT_POLICY = 0x8, - INTERCEPT_INTERCEPTION = 0x10, - INTERCEPT_ALL = 0xffff - } CorDebugIntercept; + INTERCEPT_NONE = 0, + INTERCEPT_CLASS_INIT = 0x1, + INTERCEPT_EXCEPTION_FILTER = 0x2, + INTERCEPT_SECURITY = 0x4, + INTERCEPT_CONTEXT_POLICY = 0x8, + INTERCEPT_INTERCEPTION = 0x10, + INTERCEPT_ALL = 0xffff + } CorDebugIntercept; -typedef +typedef enum CorDebugUnmappedStop { - STOP_NONE = 0, - STOP_PROLOG = 0x1, - STOP_EPILOG = 0x2, - STOP_NO_MAPPING_INFO = 0x4, - STOP_OTHER_UNMAPPED = 0x8, - STOP_UNMANAGED = 0x10, - STOP_ALL = 0xffff - } CorDebugUnmappedStop; + STOP_NONE = 0, + STOP_PROLOG = 0x1, + STOP_EPILOG = 0x2, + STOP_NO_MAPPING_INFO = 0x4, + STOP_OTHER_UNMAPPED = 0x8, + STOP_UNMANAGED = 0x10, + STOP_ALL = 0xffff + } CorDebugUnmappedStop; typedef struct COR_DEBUG_STEP_RANGE { ULONG32 startOffset; ULONG32 endOffset; - } COR_DEBUG_STEP_RANGE; + } COR_DEBUG_STEP_RANGE; EXTERN_C const IID IID_ICorDebugStepper; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEC-8A68-11d2-983C-0000F808342D") ICorDebugStepper : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsActive( + virtual HRESULT STDMETHODCALLTYPE IsActive( /* [out] */ BOOL *pbActive) = 0; - + virtual HRESULT STDMETHODCALLTYPE Deactivate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetInterceptMask( + + virtual HRESULT STDMETHODCALLTYPE SetInterceptMask( /* [in] */ CorDebugIntercept mask) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnmappedStopMask( + + virtual HRESULT STDMETHODCALLTYPE SetUnmappedStopMask( /* [in] */ CorDebugUnmappedStop mask) = 0; - - virtual HRESULT STDMETHODCALLTYPE Step( + + virtual HRESULT STDMETHODCALLTYPE Step( /* [in] */ BOOL bStepIn) = 0; - - virtual HRESULT STDMETHODCALLTYPE StepRange( + + virtual HRESULT STDMETHODCALLTYPE StepRange( /* [in] */ BOOL bStepIn, /* [size_is][in] */ COR_DEBUG_STEP_RANGE ranges[ ], /* [in] */ ULONG32 cRangeCount) = 0; - + virtual HRESULT STDMETHODCALLTYPE StepOut( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRangeIL( + + virtual HRESULT STDMETHODCALLTYPE SetRangeIL( /* [in] */ BOOL bIL) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStepperVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStepper * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStepper * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStepper * This); - - DECLSPEC_XFGVIRT(ICorDebugStepper, IsActive) - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugStepper * This, /* [out] */ BOOL *pbActive); - - DECLSPEC_XFGVIRT(ICorDebugStepper, Deactivate) - HRESULT ( STDMETHODCALLTYPE *Deactivate )( + + HRESULT ( STDMETHODCALLTYPE *Deactivate )( ICorDebugStepper * This); - - DECLSPEC_XFGVIRT(ICorDebugStepper, SetInterceptMask) - HRESULT ( STDMETHODCALLTYPE *SetInterceptMask )( + + HRESULT ( STDMETHODCALLTYPE *SetInterceptMask )( ICorDebugStepper * This, /* [in] */ CorDebugIntercept mask); - - DECLSPEC_XFGVIRT(ICorDebugStepper, SetUnmappedStopMask) - HRESULT ( STDMETHODCALLTYPE *SetUnmappedStopMask )( + + HRESULT ( STDMETHODCALLTYPE *SetUnmappedStopMask )( ICorDebugStepper * This, /* [in] */ CorDebugUnmappedStop mask); - - DECLSPEC_XFGVIRT(ICorDebugStepper, Step) - HRESULT ( STDMETHODCALLTYPE *Step )( + + HRESULT ( STDMETHODCALLTYPE *Step )( ICorDebugStepper * This, /* [in] */ BOOL bStepIn); - - DECLSPEC_XFGVIRT(ICorDebugStepper, StepRange) - HRESULT ( STDMETHODCALLTYPE *StepRange )( + + HRESULT ( STDMETHODCALLTYPE *StepRange )( ICorDebugStepper * This, /* [in] */ BOOL bStepIn, /* [size_is][in] */ COR_DEBUG_STEP_RANGE ranges[ ], /* [in] */ ULONG32 cRangeCount); - - DECLSPEC_XFGVIRT(ICorDebugStepper, StepOut) - HRESULT ( STDMETHODCALLTYPE *StepOut )( + + HRESULT ( STDMETHODCALLTYPE *StepOut )( ICorDebugStepper * This); - - DECLSPEC_XFGVIRT(ICorDebugStepper, SetRangeIL) - HRESULT ( STDMETHODCALLTYPE *SetRangeIL )( + + HRESULT ( STDMETHODCALLTYPE *SetRangeIL )( ICorDebugStepper * This, /* [in] */ BOOL bIL); - + END_INTERFACE } ICorDebugStepperVtbl; @@ -9329,103 +8886,99 @@ EXTERN_C const IID IID_ICorDebugStepper; CONST_VTBL struct ICorDebugStepperVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStepper_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStepper_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStepper_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStepper_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStepper_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStepper_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStepper_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugStepper_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugStepper_Deactivate(This) \ - ( (This)->lpVtbl -> Deactivate(This) ) +#define ICorDebugStepper_Deactivate(This) \ + ( (This)->lpVtbl -> Deactivate(This) ) -#define ICorDebugStepper_SetInterceptMask(This,mask) \ - ( (This)->lpVtbl -> SetInterceptMask(This,mask) ) +#define ICorDebugStepper_SetInterceptMask(This,mask) \ + ( (This)->lpVtbl -> SetInterceptMask(This,mask) ) -#define ICorDebugStepper_SetUnmappedStopMask(This,mask) \ - ( (This)->lpVtbl -> SetUnmappedStopMask(This,mask) ) +#define ICorDebugStepper_SetUnmappedStopMask(This,mask) \ + ( (This)->lpVtbl -> SetUnmappedStopMask(This,mask) ) -#define ICorDebugStepper_Step(This,bStepIn) \ - ( (This)->lpVtbl -> Step(This,bStepIn) ) +#define ICorDebugStepper_Step(This,bStepIn) \ + ( (This)->lpVtbl -> Step(This,bStepIn) ) -#define ICorDebugStepper_StepRange(This,bStepIn,ranges,cRangeCount) \ - ( (This)->lpVtbl -> StepRange(This,bStepIn,ranges,cRangeCount) ) +#define ICorDebugStepper_StepRange(This,bStepIn,ranges,cRangeCount) \ + ( (This)->lpVtbl -> StepRange(This,bStepIn,ranges,cRangeCount) ) -#define ICorDebugStepper_StepOut(This) \ - ( (This)->lpVtbl -> StepOut(This) ) +#define ICorDebugStepper_StepOut(This) \ + ( (This)->lpVtbl -> StepOut(This) ) -#define ICorDebugStepper_SetRangeIL(This,bIL) \ - ( (This)->lpVtbl -> SetRangeIL(This,bIL) ) +#define ICorDebugStepper_SetRangeIL(This,bIL) \ + ( (This)->lpVtbl -> SetRangeIL(This,bIL) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStepper_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStepper_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStepper2_INTERFACE_DEFINED__ #define __ICorDebugStepper2_INTERFACE_DEFINED__ /* interface ICorDebugStepper2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStepper2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("C5B6E9C3-E7D1-4a8e-873B-7F047F0706F7") ICorDebugStepper2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetJMC( + virtual HRESULT STDMETHODCALLTYPE SetJMC( /* [in] */ BOOL fIsJMCStepper) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStepper2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStepper2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStepper2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStepper2 * This); - - DECLSPEC_XFGVIRT(ICorDebugStepper2, SetJMC) - HRESULT ( STDMETHODCALLTYPE *SetJMC )( + + HRESULT ( STDMETHODCALLTYPE *SetJMC )( ICorDebugStepper2 * This, /* [in] */ BOOL fIsJMCStepper); - + END_INTERFACE } ICorDebugStepper2Vtbl; @@ -9434,213 +8987,213 @@ EXTERN_C const IID IID_ICorDebugStepper2; CONST_VTBL struct ICorDebugStepper2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStepper2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStepper2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStepper2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStepper2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStepper2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStepper2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStepper2_SetJMC(This,fIsJMCStepper) \ - ( (This)->lpVtbl -> SetJMC(This,fIsJMCStepper) ) +#define ICorDebugStepper2_SetJMC(This,fIsJMCStepper) \ + ( (This)->lpVtbl -> SetJMC(This,fIsJMCStepper) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStepper2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStepper2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugRegisterSet_INTERFACE_DEFINED__ #define __ICorDebugRegisterSet_INTERFACE_DEFINED__ /* interface ICorDebugRegisterSet */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugRegister { - REGISTER_INSTRUCTION_POINTER = 0, - REGISTER_STACK_POINTER = ( REGISTER_INSTRUCTION_POINTER + 1 ) , - REGISTER_FRAME_POINTER = ( REGISTER_STACK_POINTER + 1 ) , - REGISTER_X86_EIP = 0, - REGISTER_X86_ESP = ( REGISTER_X86_EIP + 1 ) , - REGISTER_X86_EBP = ( REGISTER_X86_ESP + 1 ) , - REGISTER_X86_EAX = ( REGISTER_X86_EBP + 1 ) , - REGISTER_X86_ECX = ( REGISTER_X86_EAX + 1 ) , - REGISTER_X86_EDX = ( REGISTER_X86_ECX + 1 ) , - REGISTER_X86_EBX = ( REGISTER_X86_EDX + 1 ) , - REGISTER_X86_ESI = ( REGISTER_X86_EBX + 1 ) , - REGISTER_X86_EDI = ( REGISTER_X86_ESI + 1 ) , - REGISTER_X86_FPSTACK_0 = ( REGISTER_X86_EDI + 1 ) , - REGISTER_X86_FPSTACK_1 = ( REGISTER_X86_FPSTACK_0 + 1 ) , - REGISTER_X86_FPSTACK_2 = ( REGISTER_X86_FPSTACK_1 + 1 ) , - REGISTER_X86_FPSTACK_3 = ( REGISTER_X86_FPSTACK_2 + 1 ) , - REGISTER_X86_FPSTACK_4 = ( REGISTER_X86_FPSTACK_3 + 1 ) , - REGISTER_X86_FPSTACK_5 = ( REGISTER_X86_FPSTACK_4 + 1 ) , - REGISTER_X86_FPSTACK_6 = ( REGISTER_X86_FPSTACK_5 + 1 ) , - REGISTER_X86_FPSTACK_7 = ( REGISTER_X86_FPSTACK_6 + 1 ) , - REGISTER_AMD64_RIP = 0, - REGISTER_AMD64_RSP = ( REGISTER_AMD64_RIP + 1 ) , - REGISTER_AMD64_RBP = ( REGISTER_AMD64_RSP + 1 ) , - REGISTER_AMD64_RAX = ( REGISTER_AMD64_RBP + 1 ) , - REGISTER_AMD64_RCX = ( REGISTER_AMD64_RAX + 1 ) , - REGISTER_AMD64_RDX = ( REGISTER_AMD64_RCX + 1 ) , - REGISTER_AMD64_RBX = ( REGISTER_AMD64_RDX + 1 ) , - REGISTER_AMD64_RSI = ( REGISTER_AMD64_RBX + 1 ) , - REGISTER_AMD64_RDI = ( REGISTER_AMD64_RSI + 1 ) , - REGISTER_AMD64_R8 = ( REGISTER_AMD64_RDI + 1 ) , - REGISTER_AMD64_R9 = ( REGISTER_AMD64_R8 + 1 ) , - REGISTER_AMD64_R10 = ( REGISTER_AMD64_R9 + 1 ) , - REGISTER_AMD64_R11 = ( REGISTER_AMD64_R10 + 1 ) , - REGISTER_AMD64_R12 = ( REGISTER_AMD64_R11 + 1 ) , - REGISTER_AMD64_R13 = ( REGISTER_AMD64_R12 + 1 ) , - REGISTER_AMD64_R14 = ( REGISTER_AMD64_R13 + 1 ) , - REGISTER_AMD64_R15 = ( REGISTER_AMD64_R14 + 1 ) , - REGISTER_AMD64_XMM0 = ( REGISTER_AMD64_R15 + 1 ) , - REGISTER_AMD64_XMM1 = ( REGISTER_AMD64_XMM0 + 1 ) , - REGISTER_AMD64_XMM2 = ( REGISTER_AMD64_XMM1 + 1 ) , - REGISTER_AMD64_XMM3 = ( REGISTER_AMD64_XMM2 + 1 ) , - REGISTER_AMD64_XMM4 = ( REGISTER_AMD64_XMM3 + 1 ) , - REGISTER_AMD64_XMM5 = ( REGISTER_AMD64_XMM4 + 1 ) , - REGISTER_AMD64_XMM6 = ( REGISTER_AMD64_XMM5 + 1 ) , - REGISTER_AMD64_XMM7 = ( REGISTER_AMD64_XMM6 + 1 ) , - REGISTER_AMD64_XMM8 = ( REGISTER_AMD64_XMM7 + 1 ) , - REGISTER_AMD64_XMM9 = ( REGISTER_AMD64_XMM8 + 1 ) , - REGISTER_AMD64_XMM10 = ( REGISTER_AMD64_XMM9 + 1 ) , - REGISTER_AMD64_XMM11 = ( REGISTER_AMD64_XMM10 + 1 ) , - REGISTER_AMD64_XMM12 = ( REGISTER_AMD64_XMM11 + 1 ) , - REGISTER_AMD64_XMM13 = ( REGISTER_AMD64_XMM12 + 1 ) , - REGISTER_AMD64_XMM14 = ( REGISTER_AMD64_XMM13 + 1 ) , - REGISTER_AMD64_XMM15 = ( REGISTER_AMD64_XMM14 + 1 ) , - REGISTER_IA64_BSP = REGISTER_FRAME_POINTER, - REGISTER_IA64_R0 = ( REGISTER_IA64_BSP + 1 ) , - REGISTER_IA64_F0 = ( REGISTER_IA64_R0 + 128 ) , - REGISTER_ARM_PC = 0, - REGISTER_ARM_SP = ( REGISTER_ARM_PC + 1 ) , - REGISTER_ARM_R0 = ( REGISTER_ARM_SP + 1 ) , - REGISTER_ARM_R1 = ( REGISTER_ARM_R0 + 1 ) , - REGISTER_ARM_R2 = ( REGISTER_ARM_R1 + 1 ) , - REGISTER_ARM_R3 = ( REGISTER_ARM_R2 + 1 ) , - REGISTER_ARM_R4 = ( REGISTER_ARM_R3 + 1 ) , - REGISTER_ARM_R5 = ( REGISTER_ARM_R4 + 1 ) , - REGISTER_ARM_R6 = ( REGISTER_ARM_R5 + 1 ) , - REGISTER_ARM_R7 = ( REGISTER_ARM_R6 + 1 ) , - REGISTER_ARM_R8 = ( REGISTER_ARM_R7 + 1 ) , - REGISTER_ARM_R9 = ( REGISTER_ARM_R8 + 1 ) , - REGISTER_ARM_R10 = ( REGISTER_ARM_R9 + 1 ) , - REGISTER_ARM_R11 = ( REGISTER_ARM_R10 + 1 ) , - REGISTER_ARM_R12 = ( REGISTER_ARM_R11 + 1 ) , - REGISTER_ARM_LR = ( REGISTER_ARM_R12 + 1 ) , - REGISTER_ARM_D0 = ( REGISTER_ARM_LR + 1 ) , - REGISTER_ARM_D1 = ( REGISTER_ARM_D0 + 1 ) , - REGISTER_ARM_D2 = ( REGISTER_ARM_D1 + 1 ) , - REGISTER_ARM_D3 = ( REGISTER_ARM_D2 + 1 ) , - REGISTER_ARM_D4 = ( REGISTER_ARM_D3 + 1 ) , - REGISTER_ARM_D5 = ( REGISTER_ARM_D4 + 1 ) , - REGISTER_ARM_D6 = ( REGISTER_ARM_D5 + 1 ) , - REGISTER_ARM_D7 = ( REGISTER_ARM_D6 + 1 ) , - REGISTER_ARM_D8 = ( REGISTER_ARM_D7 + 1 ) , - REGISTER_ARM_D9 = ( REGISTER_ARM_D8 + 1 ) , - REGISTER_ARM_D10 = ( REGISTER_ARM_D9 + 1 ) , - REGISTER_ARM_D11 = ( REGISTER_ARM_D10 + 1 ) , - REGISTER_ARM_D12 = ( REGISTER_ARM_D11 + 1 ) , - REGISTER_ARM_D13 = ( REGISTER_ARM_D12 + 1 ) , - REGISTER_ARM_D14 = ( REGISTER_ARM_D13 + 1 ) , - REGISTER_ARM_D15 = ( REGISTER_ARM_D14 + 1 ) , - REGISTER_ARM_D16 = ( REGISTER_ARM_D15 + 1 ) , - REGISTER_ARM_D17 = ( REGISTER_ARM_D16 + 1 ) , - REGISTER_ARM_D18 = ( REGISTER_ARM_D17 + 1 ) , - REGISTER_ARM_D19 = ( REGISTER_ARM_D18 + 1 ) , - REGISTER_ARM_D20 = ( REGISTER_ARM_D19 + 1 ) , - REGISTER_ARM_D21 = ( REGISTER_ARM_D20 + 1 ) , - REGISTER_ARM_D22 = ( REGISTER_ARM_D21 + 1 ) , - REGISTER_ARM_D23 = ( REGISTER_ARM_D22 + 1 ) , - REGISTER_ARM_D24 = ( REGISTER_ARM_D23 + 1 ) , - REGISTER_ARM_D25 = ( REGISTER_ARM_D24 + 1 ) , - REGISTER_ARM_D26 = ( REGISTER_ARM_D25 + 1 ) , - REGISTER_ARM_D27 = ( REGISTER_ARM_D26 + 1 ) , - REGISTER_ARM_D28 = ( REGISTER_ARM_D27 + 1 ) , - REGISTER_ARM_D29 = ( REGISTER_ARM_D28 + 1 ) , - REGISTER_ARM_D30 = ( REGISTER_ARM_D29 + 1 ) , - REGISTER_ARM_D31 = ( REGISTER_ARM_D30 + 1 ) , - REGISTER_ARM64_PC = 0, - REGISTER_ARM64_SP = ( REGISTER_ARM64_PC + 1 ) , - REGISTER_ARM64_FP = ( REGISTER_ARM64_SP + 1 ) , - REGISTER_ARM64_X0 = ( REGISTER_ARM64_FP + 1 ) , - REGISTER_ARM64_X1 = ( REGISTER_ARM64_X0 + 1 ) , - REGISTER_ARM64_X2 = ( REGISTER_ARM64_X1 + 1 ) , - REGISTER_ARM64_X3 = ( REGISTER_ARM64_X2 + 1 ) , - REGISTER_ARM64_X4 = ( REGISTER_ARM64_X3 + 1 ) , - REGISTER_ARM64_X5 = ( REGISTER_ARM64_X4 + 1 ) , - REGISTER_ARM64_X6 = ( REGISTER_ARM64_X5 + 1 ) , - REGISTER_ARM64_X7 = ( REGISTER_ARM64_X6 + 1 ) , - REGISTER_ARM64_X8 = ( REGISTER_ARM64_X7 + 1 ) , - REGISTER_ARM64_X9 = ( REGISTER_ARM64_X8 + 1 ) , - REGISTER_ARM64_X10 = ( REGISTER_ARM64_X9 + 1 ) , - REGISTER_ARM64_X11 = ( REGISTER_ARM64_X10 + 1 ) , - REGISTER_ARM64_X12 = ( REGISTER_ARM64_X11 + 1 ) , - REGISTER_ARM64_X13 = ( REGISTER_ARM64_X12 + 1 ) , - REGISTER_ARM64_X14 = ( REGISTER_ARM64_X13 + 1 ) , - REGISTER_ARM64_X15 = ( REGISTER_ARM64_X14 + 1 ) , - REGISTER_ARM64_X16 = ( REGISTER_ARM64_X15 + 1 ) , - REGISTER_ARM64_X17 = ( REGISTER_ARM64_X16 + 1 ) , - REGISTER_ARM64_X18 = ( REGISTER_ARM64_X17 + 1 ) , - REGISTER_ARM64_X19 = ( REGISTER_ARM64_X18 + 1 ) , - REGISTER_ARM64_X20 = ( REGISTER_ARM64_X19 + 1 ) , - REGISTER_ARM64_X21 = ( REGISTER_ARM64_X20 + 1 ) , - REGISTER_ARM64_X22 = ( REGISTER_ARM64_X21 + 1 ) , - REGISTER_ARM64_X23 = ( REGISTER_ARM64_X22 + 1 ) , - REGISTER_ARM64_X24 = ( REGISTER_ARM64_X23 + 1 ) , - REGISTER_ARM64_X25 = ( REGISTER_ARM64_X24 + 1 ) , - REGISTER_ARM64_X26 = ( REGISTER_ARM64_X25 + 1 ) , - REGISTER_ARM64_X27 = ( REGISTER_ARM64_X26 + 1 ) , - REGISTER_ARM64_X28 = ( REGISTER_ARM64_X27 + 1 ) , - REGISTER_ARM64_LR = ( REGISTER_ARM64_X28 + 1 ) , - REGISTER_ARM64_V0 = ( REGISTER_ARM64_LR + 1 ) , - REGISTER_ARM64_V1 = ( REGISTER_ARM64_V0 + 1 ) , - REGISTER_ARM64_V2 = ( REGISTER_ARM64_V1 + 1 ) , - REGISTER_ARM64_V3 = ( REGISTER_ARM64_V2 + 1 ) , - REGISTER_ARM64_V4 = ( REGISTER_ARM64_V3 + 1 ) , - REGISTER_ARM64_V5 = ( REGISTER_ARM64_V4 + 1 ) , - REGISTER_ARM64_V6 = ( REGISTER_ARM64_V5 + 1 ) , - REGISTER_ARM64_V7 = ( REGISTER_ARM64_V6 + 1 ) , - REGISTER_ARM64_V8 = ( REGISTER_ARM64_V7 + 1 ) , - REGISTER_ARM64_V9 = ( REGISTER_ARM64_V8 + 1 ) , - REGISTER_ARM64_V10 = ( REGISTER_ARM64_V9 + 1 ) , - REGISTER_ARM64_V11 = ( REGISTER_ARM64_V10 + 1 ) , - REGISTER_ARM64_V12 = ( REGISTER_ARM64_V11 + 1 ) , - REGISTER_ARM64_V13 = ( REGISTER_ARM64_V12 + 1 ) , - REGISTER_ARM64_V14 = ( REGISTER_ARM64_V13 + 1 ) , - REGISTER_ARM64_V15 = ( REGISTER_ARM64_V14 + 1 ) , - REGISTER_ARM64_V16 = ( REGISTER_ARM64_V15 + 1 ) , - REGISTER_ARM64_V17 = ( REGISTER_ARM64_V16 + 1 ) , - REGISTER_ARM64_V18 = ( REGISTER_ARM64_V17 + 1 ) , - REGISTER_ARM64_V19 = ( REGISTER_ARM64_V18 + 1 ) , - REGISTER_ARM64_V20 = ( REGISTER_ARM64_V19 + 1 ) , - REGISTER_ARM64_V21 = ( REGISTER_ARM64_V20 + 1 ) , - REGISTER_ARM64_V22 = ( REGISTER_ARM64_V21 + 1 ) , - REGISTER_ARM64_V23 = ( REGISTER_ARM64_V22 + 1 ) , - REGISTER_ARM64_V24 = ( REGISTER_ARM64_V23 + 1 ) , - REGISTER_ARM64_V25 = ( REGISTER_ARM64_V24 + 1 ) , - REGISTER_ARM64_V26 = ( REGISTER_ARM64_V25 + 1 ) , - REGISTER_ARM64_V27 = ( REGISTER_ARM64_V26 + 1 ) , - REGISTER_ARM64_V28 = ( REGISTER_ARM64_V27 + 1 ) , - REGISTER_ARM64_V29 = ( REGISTER_ARM64_V28 + 1 ) , - REGISTER_ARM64_V30 = ( REGISTER_ARM64_V29 + 1 ) , - REGISTER_ARM64_V31 = ( REGISTER_ARM64_V30 + 1 ) , + REGISTER_INSTRUCTION_POINTER = 0, + REGISTER_STACK_POINTER = ( REGISTER_INSTRUCTION_POINTER + 1 ) , + REGISTER_FRAME_POINTER = ( REGISTER_STACK_POINTER + 1 ) , + REGISTER_X86_EIP = 0, + REGISTER_X86_ESP = ( REGISTER_X86_EIP + 1 ) , + REGISTER_X86_EBP = ( REGISTER_X86_ESP + 1 ) , + REGISTER_X86_EAX = ( REGISTER_X86_EBP + 1 ) , + REGISTER_X86_ECX = ( REGISTER_X86_EAX + 1 ) , + REGISTER_X86_EDX = ( REGISTER_X86_ECX + 1 ) , + REGISTER_X86_EBX = ( REGISTER_X86_EDX + 1 ) , + REGISTER_X86_ESI = ( REGISTER_X86_EBX + 1 ) , + REGISTER_X86_EDI = ( REGISTER_X86_ESI + 1 ) , + REGISTER_X86_FPSTACK_0 = ( REGISTER_X86_EDI + 1 ) , + REGISTER_X86_FPSTACK_1 = ( REGISTER_X86_FPSTACK_0 + 1 ) , + REGISTER_X86_FPSTACK_2 = ( REGISTER_X86_FPSTACK_1 + 1 ) , + REGISTER_X86_FPSTACK_3 = ( REGISTER_X86_FPSTACK_2 + 1 ) , + REGISTER_X86_FPSTACK_4 = ( REGISTER_X86_FPSTACK_3 + 1 ) , + REGISTER_X86_FPSTACK_5 = ( REGISTER_X86_FPSTACK_4 + 1 ) , + REGISTER_X86_FPSTACK_6 = ( REGISTER_X86_FPSTACK_5 + 1 ) , + REGISTER_X86_FPSTACK_7 = ( REGISTER_X86_FPSTACK_6 + 1 ) , + REGISTER_AMD64_RIP = 0, + REGISTER_AMD64_RSP = ( REGISTER_AMD64_RIP + 1 ) , + REGISTER_AMD64_RBP = ( REGISTER_AMD64_RSP + 1 ) , + REGISTER_AMD64_RAX = ( REGISTER_AMD64_RBP + 1 ) , + REGISTER_AMD64_RCX = ( REGISTER_AMD64_RAX + 1 ) , + REGISTER_AMD64_RDX = ( REGISTER_AMD64_RCX + 1 ) , + REGISTER_AMD64_RBX = ( REGISTER_AMD64_RDX + 1 ) , + REGISTER_AMD64_RSI = ( REGISTER_AMD64_RBX + 1 ) , + REGISTER_AMD64_RDI = ( REGISTER_AMD64_RSI + 1 ) , + REGISTER_AMD64_R8 = ( REGISTER_AMD64_RDI + 1 ) , + REGISTER_AMD64_R9 = ( REGISTER_AMD64_R8 + 1 ) , + REGISTER_AMD64_R10 = ( REGISTER_AMD64_R9 + 1 ) , + REGISTER_AMD64_R11 = ( REGISTER_AMD64_R10 + 1 ) , + REGISTER_AMD64_R12 = ( REGISTER_AMD64_R11 + 1 ) , + REGISTER_AMD64_R13 = ( REGISTER_AMD64_R12 + 1 ) , + REGISTER_AMD64_R14 = ( REGISTER_AMD64_R13 + 1 ) , + REGISTER_AMD64_R15 = ( REGISTER_AMD64_R14 + 1 ) , + REGISTER_AMD64_XMM0 = ( REGISTER_AMD64_R15 + 1 ) , + REGISTER_AMD64_XMM1 = ( REGISTER_AMD64_XMM0 + 1 ) , + REGISTER_AMD64_XMM2 = ( REGISTER_AMD64_XMM1 + 1 ) , + REGISTER_AMD64_XMM3 = ( REGISTER_AMD64_XMM2 + 1 ) , + REGISTER_AMD64_XMM4 = ( REGISTER_AMD64_XMM3 + 1 ) , + REGISTER_AMD64_XMM5 = ( REGISTER_AMD64_XMM4 + 1 ) , + REGISTER_AMD64_XMM6 = ( REGISTER_AMD64_XMM5 + 1 ) , + REGISTER_AMD64_XMM7 = ( REGISTER_AMD64_XMM6 + 1 ) , + REGISTER_AMD64_XMM8 = ( REGISTER_AMD64_XMM7 + 1 ) , + REGISTER_AMD64_XMM9 = ( REGISTER_AMD64_XMM8 + 1 ) , + REGISTER_AMD64_XMM10 = ( REGISTER_AMD64_XMM9 + 1 ) , + REGISTER_AMD64_XMM11 = ( REGISTER_AMD64_XMM10 + 1 ) , + REGISTER_AMD64_XMM12 = ( REGISTER_AMD64_XMM11 + 1 ) , + REGISTER_AMD64_XMM13 = ( REGISTER_AMD64_XMM12 + 1 ) , + REGISTER_AMD64_XMM14 = ( REGISTER_AMD64_XMM13 + 1 ) , + REGISTER_AMD64_XMM15 = ( REGISTER_AMD64_XMM14 + 1 ) , + REGISTER_IA64_BSP = REGISTER_FRAME_POINTER, + REGISTER_IA64_R0 = ( REGISTER_IA64_BSP + 1 ) , + REGISTER_IA64_F0 = ( REGISTER_IA64_R0 + 128 ) , + REGISTER_ARM_PC = 0, + REGISTER_ARM_SP = ( REGISTER_ARM_PC + 1 ) , + REGISTER_ARM_R0 = ( REGISTER_ARM_SP + 1 ) , + REGISTER_ARM_R1 = ( REGISTER_ARM_R0 + 1 ) , + REGISTER_ARM_R2 = ( REGISTER_ARM_R1 + 1 ) , + REGISTER_ARM_R3 = ( REGISTER_ARM_R2 + 1 ) , + REGISTER_ARM_R4 = ( REGISTER_ARM_R3 + 1 ) , + REGISTER_ARM_R5 = ( REGISTER_ARM_R4 + 1 ) , + REGISTER_ARM_R6 = ( REGISTER_ARM_R5 + 1 ) , + REGISTER_ARM_R7 = ( REGISTER_ARM_R6 + 1 ) , + REGISTER_ARM_R8 = ( REGISTER_ARM_R7 + 1 ) , + REGISTER_ARM_R9 = ( REGISTER_ARM_R8 + 1 ) , + REGISTER_ARM_R10 = ( REGISTER_ARM_R9 + 1 ) , + REGISTER_ARM_R11 = ( REGISTER_ARM_R10 + 1 ) , + REGISTER_ARM_R12 = ( REGISTER_ARM_R11 + 1 ) , + REGISTER_ARM_LR = ( REGISTER_ARM_R12 + 1 ) , + REGISTER_ARM_D0 = ( REGISTER_ARM_LR + 1 ) , + REGISTER_ARM_D1 = ( REGISTER_ARM_D0 + 1 ) , + REGISTER_ARM_D2 = ( REGISTER_ARM_D1 + 1 ) , + REGISTER_ARM_D3 = ( REGISTER_ARM_D2 + 1 ) , + REGISTER_ARM_D4 = ( REGISTER_ARM_D3 + 1 ) , + REGISTER_ARM_D5 = ( REGISTER_ARM_D4 + 1 ) , + REGISTER_ARM_D6 = ( REGISTER_ARM_D5 + 1 ) , + REGISTER_ARM_D7 = ( REGISTER_ARM_D6 + 1 ) , + REGISTER_ARM_D8 = ( REGISTER_ARM_D7 + 1 ) , + REGISTER_ARM_D9 = ( REGISTER_ARM_D8 + 1 ) , + REGISTER_ARM_D10 = ( REGISTER_ARM_D9 + 1 ) , + REGISTER_ARM_D11 = ( REGISTER_ARM_D10 + 1 ) , + REGISTER_ARM_D12 = ( REGISTER_ARM_D11 + 1 ) , + REGISTER_ARM_D13 = ( REGISTER_ARM_D12 + 1 ) , + REGISTER_ARM_D14 = ( REGISTER_ARM_D13 + 1 ) , + REGISTER_ARM_D15 = ( REGISTER_ARM_D14 + 1 ) , + REGISTER_ARM_D16 = ( REGISTER_ARM_D15 + 1 ) , + REGISTER_ARM_D17 = ( REGISTER_ARM_D16 + 1 ) , + REGISTER_ARM_D18 = ( REGISTER_ARM_D17 + 1 ) , + REGISTER_ARM_D19 = ( REGISTER_ARM_D18 + 1 ) , + REGISTER_ARM_D20 = ( REGISTER_ARM_D19 + 1 ) , + REGISTER_ARM_D21 = ( REGISTER_ARM_D20 + 1 ) , + REGISTER_ARM_D22 = ( REGISTER_ARM_D21 + 1 ) , + REGISTER_ARM_D23 = ( REGISTER_ARM_D22 + 1 ) , + REGISTER_ARM_D24 = ( REGISTER_ARM_D23 + 1 ) , + REGISTER_ARM_D25 = ( REGISTER_ARM_D24 + 1 ) , + REGISTER_ARM_D26 = ( REGISTER_ARM_D25 + 1 ) , + REGISTER_ARM_D27 = ( REGISTER_ARM_D26 + 1 ) , + REGISTER_ARM_D28 = ( REGISTER_ARM_D27 + 1 ) , + REGISTER_ARM_D29 = ( REGISTER_ARM_D28 + 1 ) , + REGISTER_ARM_D30 = ( REGISTER_ARM_D29 + 1 ) , + REGISTER_ARM_D31 = ( REGISTER_ARM_D30 + 1 ) , + REGISTER_ARM64_PC = 0, + REGISTER_ARM64_SP = ( REGISTER_ARM64_PC + 1 ) , + REGISTER_ARM64_FP = ( REGISTER_ARM64_SP + 1 ) , + REGISTER_ARM64_X0 = ( REGISTER_ARM64_FP + 1 ) , + REGISTER_ARM64_X1 = ( REGISTER_ARM64_X0 + 1 ) , + REGISTER_ARM64_X2 = ( REGISTER_ARM64_X1 + 1 ) , + REGISTER_ARM64_X3 = ( REGISTER_ARM64_X2 + 1 ) , + REGISTER_ARM64_X4 = ( REGISTER_ARM64_X3 + 1 ) , + REGISTER_ARM64_X5 = ( REGISTER_ARM64_X4 + 1 ) , + REGISTER_ARM64_X6 = ( REGISTER_ARM64_X5 + 1 ) , + REGISTER_ARM64_X7 = ( REGISTER_ARM64_X6 + 1 ) , + REGISTER_ARM64_X8 = ( REGISTER_ARM64_X7 + 1 ) , + REGISTER_ARM64_X9 = ( REGISTER_ARM64_X8 + 1 ) , + REGISTER_ARM64_X10 = ( REGISTER_ARM64_X9 + 1 ) , + REGISTER_ARM64_X11 = ( REGISTER_ARM64_X10 + 1 ) , + REGISTER_ARM64_X12 = ( REGISTER_ARM64_X11 + 1 ) , + REGISTER_ARM64_X13 = ( REGISTER_ARM64_X12 + 1 ) , + REGISTER_ARM64_X14 = ( REGISTER_ARM64_X13 + 1 ) , + REGISTER_ARM64_X15 = ( REGISTER_ARM64_X14 + 1 ) , + REGISTER_ARM64_X16 = ( REGISTER_ARM64_X15 + 1 ) , + REGISTER_ARM64_X17 = ( REGISTER_ARM64_X16 + 1 ) , + REGISTER_ARM64_X18 = ( REGISTER_ARM64_X17 + 1 ) , + REGISTER_ARM64_X19 = ( REGISTER_ARM64_X18 + 1 ) , + REGISTER_ARM64_X20 = ( REGISTER_ARM64_X19 + 1 ) , + REGISTER_ARM64_X21 = ( REGISTER_ARM64_X20 + 1 ) , + REGISTER_ARM64_X22 = ( REGISTER_ARM64_X21 + 1 ) , + REGISTER_ARM64_X23 = ( REGISTER_ARM64_X22 + 1 ) , + REGISTER_ARM64_X24 = ( REGISTER_ARM64_X23 + 1 ) , + REGISTER_ARM64_X25 = ( REGISTER_ARM64_X24 + 1 ) , + REGISTER_ARM64_X26 = ( REGISTER_ARM64_X25 + 1 ) , + REGISTER_ARM64_X27 = ( REGISTER_ARM64_X26 + 1 ) , + REGISTER_ARM64_X28 = ( REGISTER_ARM64_X27 + 1 ) , + REGISTER_ARM64_LR = ( REGISTER_ARM64_X28 + 1 ) , + REGISTER_ARM64_V0 = ( REGISTER_ARM64_LR + 1 ) , + REGISTER_ARM64_V1 = ( REGISTER_ARM64_V0 + 1 ) , + REGISTER_ARM64_V2 = ( REGISTER_ARM64_V1 + 1 ) , + REGISTER_ARM64_V3 = ( REGISTER_ARM64_V2 + 1 ) , + REGISTER_ARM64_V4 = ( REGISTER_ARM64_V3 + 1 ) , + REGISTER_ARM64_V5 = ( REGISTER_ARM64_V4 + 1 ) , + REGISTER_ARM64_V6 = ( REGISTER_ARM64_V5 + 1 ) , + REGISTER_ARM64_V7 = ( REGISTER_ARM64_V6 + 1 ) , + REGISTER_ARM64_V8 = ( REGISTER_ARM64_V7 + 1 ) , + REGISTER_ARM64_V9 = ( REGISTER_ARM64_V8 + 1 ) , + REGISTER_ARM64_V10 = ( REGISTER_ARM64_V9 + 1 ) , + REGISTER_ARM64_V11 = ( REGISTER_ARM64_V10 + 1 ) , + REGISTER_ARM64_V12 = ( REGISTER_ARM64_V11 + 1 ) , + REGISTER_ARM64_V13 = ( REGISTER_ARM64_V12 + 1 ) , + REGISTER_ARM64_V14 = ( REGISTER_ARM64_V13 + 1 ) , + REGISTER_ARM64_V15 = ( REGISTER_ARM64_V14 + 1 ) , + REGISTER_ARM64_V16 = ( REGISTER_ARM64_V15 + 1 ) , + REGISTER_ARM64_V17 = ( REGISTER_ARM64_V16 + 1 ) , + REGISTER_ARM64_V18 = ( REGISTER_ARM64_V17 + 1 ) , + REGISTER_ARM64_V19 = ( REGISTER_ARM64_V18 + 1 ) , + REGISTER_ARM64_V20 = ( REGISTER_ARM64_V19 + 1 ) , + REGISTER_ARM64_V21 = ( REGISTER_ARM64_V20 + 1 ) , + REGISTER_ARM64_V22 = ( REGISTER_ARM64_V21 + 1 ) , + REGISTER_ARM64_V23 = ( REGISTER_ARM64_V22 + 1 ) , + REGISTER_ARM64_V24 = ( REGISTER_ARM64_V23 + 1 ) , + REGISTER_ARM64_V25 = ( REGISTER_ARM64_V24 + 1 ) , + REGISTER_ARM64_V26 = ( REGISTER_ARM64_V25 + 1 ) , + REGISTER_ARM64_V27 = ( REGISTER_ARM64_V26 + 1 ) , + REGISTER_ARM64_V28 = ( REGISTER_ARM64_V27 + 1 ) , + REGISTER_ARM64_V29 = ( REGISTER_ARM64_V28 + 1 ) , + REGISTER_ARM64_V30 = ( REGISTER_ARM64_V29 + 1 ) , + REGISTER_ARM64_V31 = ( REGISTER_ARM64_V30 + 1 ) , REGISTER_LOONGARCH64_PC = 0, REGISTER_LOONGARCH64_SP = ( REGISTER_LOONGARCH64_PC + 1 ) , REGISTER_LOONGARCH64_FP = ( REGISTER_LOONGARCH64_SP + 1 ) , @@ -9683,180 +9236,172 @@ enum CorDebugRegister REGISTER_LOONGARCH64_F7 = ( REGISTER_LOONGARCH64_F6 + 1 ) , REGISTER_LOONGARCH64_F8 = ( REGISTER_LOONGARCH64_F7 + 1 ) , REGISTER_LOONGARCH64_F9 = ( REGISTER_LOONGARCH64_F8 + 1 ) , - REGISTER_LOONGARCH64_F10 = ( REGISTER_LOONGARCH64_F9 + 1 ) , - REGISTER_LOONGARCH64_F11 = ( REGISTER_LOONGARCH64_F10 + 1 ) , - REGISTER_LOONGARCH64_F12 = ( REGISTER_LOONGARCH64_F11 + 1 ) , - REGISTER_LOONGARCH64_F13 = ( REGISTER_LOONGARCH64_F12 + 1 ) , - REGISTER_LOONGARCH64_F14 = ( REGISTER_LOONGARCH64_F13 + 1 ) , - REGISTER_LOONGARCH64_F15 = ( REGISTER_LOONGARCH64_F14 + 1 ) , - REGISTER_LOONGARCH64_F16 = ( REGISTER_LOONGARCH64_F15 + 1 ) , - REGISTER_LOONGARCH64_F17 = ( REGISTER_LOONGARCH64_F16 + 1 ) , - REGISTER_LOONGARCH64_F18 = ( REGISTER_LOONGARCH64_F17 + 1 ) , - REGISTER_LOONGARCH64_F19 = ( REGISTER_LOONGARCH64_F18 + 1 ) , - REGISTER_LOONGARCH64_F20 = ( REGISTER_LOONGARCH64_F19 + 1 ) , - REGISTER_LOONGARCH64_F21 = ( REGISTER_LOONGARCH64_F20 + 1 ) , - REGISTER_LOONGARCH64_F22 = ( REGISTER_LOONGARCH64_F21 + 1 ) , - REGISTER_LOONGARCH64_F23 = ( REGISTER_LOONGARCH64_F22 + 1 ) , - REGISTER_LOONGARCH64_F24 = ( REGISTER_LOONGARCH64_F23 + 1 ) , - REGISTER_LOONGARCH64_F25 = ( REGISTER_LOONGARCH64_F24 + 1 ) , - REGISTER_LOONGARCH64_F26 = ( REGISTER_LOONGARCH64_F25 + 1 ) , - REGISTER_LOONGARCH64_F27 = ( REGISTER_LOONGARCH64_F26 + 1 ) , - REGISTER_LOONGARCH64_F28 = ( REGISTER_LOONGARCH64_F27 + 1 ) , - REGISTER_LOONGARCH64_F29 = ( REGISTER_LOONGARCH64_F28 + 1 ) , - REGISTER_LOONGARCH64_F30 = ( REGISTER_LOONGARCH64_F29 + 1 ) , - REGISTER_LOONGARCH64_F31 = ( REGISTER_LOONGARCH64_F30 + 1 ) , + REGISTER_LOONGARCH64_F10 = ( REGISTER_LOONGARCH64_F9 + 1 ) , + REGISTER_LOONGARCH64_F11 = ( REGISTER_LOONGARCH64_F10 + 1 ) , + REGISTER_LOONGARCH64_F12 = ( REGISTER_LOONGARCH64_F11 + 1 ) , + REGISTER_LOONGARCH64_F13 = ( REGISTER_LOONGARCH64_F12 + 1 ) , + REGISTER_LOONGARCH64_F14 = ( REGISTER_LOONGARCH64_F13 + 1 ) , + REGISTER_LOONGARCH64_F15 = ( REGISTER_LOONGARCH64_F14 + 1 ) , + REGISTER_LOONGARCH64_F16 = ( REGISTER_LOONGARCH64_F15 + 1 ) , + REGISTER_LOONGARCH64_F17 = ( REGISTER_LOONGARCH64_F16 + 1 ) , + REGISTER_LOONGARCH64_F18 = ( REGISTER_LOONGARCH64_F17 + 1 ) , + REGISTER_LOONGARCH64_F19 = ( REGISTER_LOONGARCH64_F18 + 1 ) , + REGISTER_LOONGARCH64_F20 = ( REGISTER_LOONGARCH64_F19 + 1 ) , + REGISTER_LOONGARCH64_F21 = ( REGISTER_LOONGARCH64_F20 + 1 ) , + REGISTER_LOONGARCH64_F22 = ( REGISTER_LOONGARCH64_F21 + 1 ) , + REGISTER_LOONGARCH64_F23 = ( REGISTER_LOONGARCH64_F22 + 1 ) , + REGISTER_LOONGARCH64_F24 = ( REGISTER_LOONGARCH64_F23 + 1 ) , + REGISTER_LOONGARCH64_F25 = ( REGISTER_LOONGARCH64_F24 + 1 ) , + REGISTER_LOONGARCH64_F26 = ( REGISTER_LOONGARCH64_F25 + 1 ) , + REGISTER_LOONGARCH64_F27 = ( REGISTER_LOONGARCH64_F26 + 1 ) , + REGISTER_LOONGARCH64_F28 = ( REGISTER_LOONGARCH64_F27 + 1 ) , + REGISTER_LOONGARCH64_F29 = ( REGISTER_LOONGARCH64_F28 + 1 ) , + REGISTER_LOONGARCH64_F30 = ( REGISTER_LOONGARCH64_F29 + 1 ) , + REGISTER_LOONGARCH64_F31 = ( REGISTER_LOONGARCH64_F30 + 1 ), REGISTER_RISCV64_PC = 0, - REGISTER_RISCV64_RA = ( REGISTER_RISCV64_PC + 1 ) , - REGISTER_RISCV64_SP = ( REGISTER_RISCV64_RA + 1 ) , - REGISTER_RISCV64_GP = ( REGISTER_RISCV64_SP + 1 ) , - REGISTER_RISCV64_TP = ( REGISTER_RISCV64_GP + 1 ) , - REGISTER_RISCV64_T0 = ( REGISTER_RISCV64_TP + 1 ) , - REGISTER_RISCV64_T1 = ( REGISTER_RISCV64_T0 + 1 ) , - REGISTER_RISCV64_T2 = ( REGISTER_RISCV64_T1 + 1 ) , - REGISTER_RISCV64_FP = ( REGISTER_RISCV64_T2 + 1 ) , - REGISTER_RISCV64_S1 = ( REGISTER_RISCV64_FP + 1 ) , - REGISTER_RISCV64_A0 = ( REGISTER_RISCV64_S1 + 1 ) , - REGISTER_RISCV64_A1 = ( REGISTER_RISCV64_A0 + 1 ) , - REGISTER_RISCV64_A2 = ( REGISTER_RISCV64_A1 + 1 ) , - REGISTER_RISCV64_A3 = ( REGISTER_RISCV64_A2 + 1 ) , - REGISTER_RISCV64_A4 = ( REGISTER_RISCV64_A3 + 1 ) , - REGISTER_RISCV64_A5 = ( REGISTER_RISCV64_A4 + 1 ) , - REGISTER_RISCV64_A6 = ( REGISTER_RISCV64_A5 + 1 ) , - REGISTER_RISCV64_A7 = ( REGISTER_RISCV64_A6 + 1 ) , - REGISTER_RISCV64_S2 = ( REGISTER_RISCV64_A7 + 1 ) , - REGISTER_RISCV64_S3 = ( REGISTER_RISCV64_S2 + 1 ) , - REGISTER_RISCV64_S4 = ( REGISTER_RISCV64_S3 + 1 ) , - REGISTER_RISCV64_S5 = ( REGISTER_RISCV64_S4 + 1 ) , - REGISTER_RISCV64_S6 = ( REGISTER_RISCV64_S5 + 1 ) , - REGISTER_RISCV64_S7 = ( REGISTER_RISCV64_S6 + 1 ) , - REGISTER_RISCV64_S8 = ( REGISTER_RISCV64_S7 + 1 ) , - REGISTER_RISCV64_S9 = ( REGISTER_RISCV64_S8 + 1 ) , - REGISTER_RISCV64_S10 = ( REGISTER_RISCV64_S9 + 1 ) , - REGISTER_RISCV64_S11 = ( REGISTER_RISCV64_S10 + 1 ) , - REGISTER_RISCV64_T3 = ( REGISTER_RISCV64_S11 + 1 ) , - REGISTER_RISCV64_T4 = ( REGISTER_RISCV64_T3 + 1 ) , - REGISTER_RISCV64_T5 = ( REGISTER_RISCV64_T4 + 1 ) , - REGISTER_RISCV64_T6 = ( REGISTER_RISCV64_T5 + 1 ) , - REGISTER_RISCV64_F0 = ( REGISTER_RISCV64_T6 + 1 ) , - REGISTER_RISCV64_F1 = ( REGISTER_RISCV64_F0 + 1 ) , - REGISTER_RISCV64_F2 = ( REGISTER_RISCV64_F1 + 1 ) , - REGISTER_RISCV64_F3 = ( REGISTER_RISCV64_F2 + 1 ) , - REGISTER_RISCV64_F4 = ( REGISTER_RISCV64_F3 + 1 ) , - REGISTER_RISCV64_F5 = ( REGISTER_RISCV64_F4 + 1 ) , - REGISTER_RISCV64_F6 = ( REGISTER_RISCV64_F5 + 1 ) , - REGISTER_RISCV64_F7 = ( REGISTER_RISCV64_F6 + 1 ) , - REGISTER_RISCV64_F8 = ( REGISTER_RISCV64_F7 + 1 ) , - REGISTER_RISCV64_F9 = ( REGISTER_RISCV64_F8 + 1 ) , - REGISTER_RISCV64_F10 = ( REGISTER_RISCV64_F9 + 1 ) , - REGISTER_RISCV64_F11 = ( REGISTER_RISCV64_F10 + 1 ) , - REGISTER_RISCV64_F12 = ( REGISTER_RISCV64_F11 + 1 ) , - REGISTER_RISCV64_F13 = ( REGISTER_RISCV64_F12 + 1 ) , - REGISTER_RISCV64_F14 = ( REGISTER_RISCV64_F13 + 1 ) , - REGISTER_RISCV64_F15 = ( REGISTER_RISCV64_F14 + 1 ) , - REGISTER_RISCV64_F16 = ( REGISTER_RISCV64_F15 + 1 ) , - REGISTER_RISCV64_F17 = ( REGISTER_RISCV64_F16 + 1 ) , - REGISTER_RISCV64_F18 = ( REGISTER_RISCV64_F17 + 1 ) , - REGISTER_RISCV64_F19 = ( REGISTER_RISCV64_F18 + 1 ) , - REGISTER_RISCV64_F20 = ( REGISTER_RISCV64_F19 + 1 ) , - REGISTER_RISCV64_F21 = ( REGISTER_RISCV64_F20 + 1 ) , - REGISTER_RISCV64_F22 = ( REGISTER_RISCV64_F21 + 1 ) , - REGISTER_RISCV64_F23 = ( REGISTER_RISCV64_F22 + 1 ) , - REGISTER_RISCV64_F24 = ( REGISTER_RISCV64_F23 + 1 ) , - REGISTER_RISCV64_F25 = ( REGISTER_RISCV64_F24 + 1 ) , - REGISTER_RISCV64_F26 = ( REGISTER_RISCV64_F25 + 1 ) , - REGISTER_RISCV64_F27 = ( REGISTER_RISCV64_F26 + 1 ) , - REGISTER_RISCV64_F28 = ( REGISTER_RISCV64_F27 + 1 ) , - REGISTER_RISCV64_F29 = ( REGISTER_RISCV64_F28 + 1 ) , - REGISTER_RISCV64_F30 = ( REGISTER_RISCV64_F29 + 1 ) , - REGISTER_RISCV64_F31 = ( REGISTER_RISCV64_F30 + 1 ) , - REGISTER_RISCV64_X0 = ( REGISTER_RISCV64_F31 + 1 ) - } CorDebugRegister; + REGISTER_RISCV64_RA = ( REGISTER_RISCV64_PC + 1), + REGISTER_RISCV64_SP = ( REGISTER_RISCV64_RA + 1), + REGISTER_RISCV64_GP = ( REGISTER_RISCV64_SP + 1), + REGISTER_RISCV64_TP = ( REGISTER_RISCV64_GP + 1 ), + REGISTER_RISCV64_T0 = ( REGISTER_RISCV64_TP + 1 ), + REGISTER_RISCV64_T1 = ( REGISTER_RISCV64_T0 + 1 ), + REGISTER_RISCV64_T2 = ( REGISTER_RISCV64_T1 + 1 ), + REGISTER_RISCV64_FP = ( REGISTER_RISCV64_T2 + 1 ), + REGISTER_RISCV64_S1 = ( REGISTER_RISCV64_FP + 1 ), + REGISTER_RISCV64_A0 = ( REGISTER_RISCV64_S1 + 1 ), + REGISTER_RISCV64_A1 = ( REGISTER_RISCV64_A0 + 1 ), + REGISTER_RISCV64_A2 = ( REGISTER_RISCV64_A1 + 1 ), + REGISTER_RISCV64_A3 = ( REGISTER_RISCV64_A2 + 1 ), + REGISTER_RISCV64_A4 = ( REGISTER_RISCV64_A3 + 1 ), + REGISTER_RISCV64_A5 = ( REGISTER_RISCV64_A4 + 1 ), + REGISTER_RISCV64_A6 = ( REGISTER_RISCV64_A5 + 1 ), + REGISTER_RISCV64_A7 = ( REGISTER_RISCV64_A6 + 1 ), + REGISTER_RISCV64_S2 = ( REGISTER_RISCV64_A7 + 1 ), + REGISTER_RISCV64_S3 = ( REGISTER_RISCV64_S2 + 1 ), + REGISTER_RISCV64_S4 = ( REGISTER_RISCV64_S3 + 1 ), + REGISTER_RISCV64_S5 = ( REGISTER_RISCV64_S4 + 1 ), + REGISTER_RISCV64_S6 = ( REGISTER_RISCV64_S5 + 1 ), + REGISTER_RISCV64_S7 = ( REGISTER_RISCV64_S6 + 1 ), + REGISTER_RISCV64_S8 = ( REGISTER_RISCV64_S7 + 1 ), + REGISTER_RISCV64_S9 = ( REGISTER_RISCV64_S8 + 1 ), + REGISTER_RISCV64_S10 = ( REGISTER_RISCV64_S9 + 1 ), + REGISTER_RISCV64_S11 = ( REGISTER_RISCV64_S10 + 1 ), + REGISTER_RISCV64_T3 = ( REGISTER_RISCV64_S11 + 1 ), + REGISTER_RISCV64_T4 = ( REGISTER_RISCV64_T3 + 1 ), + REGISTER_RISCV64_T5 = ( REGISTER_RISCV64_T4 + 1 ), + REGISTER_RISCV64_T6 = ( REGISTER_RISCV64_T5 + 1 ), + REGISTER_RISCV64_F0 = ( REGISTER_RISCV64_T6 + 1 ), + REGISTER_RISCV64_F1 = ( REGISTER_RISCV64_F0 + 1 ), + REGISTER_RISCV64_F2 = ( REGISTER_RISCV64_F1 + 1 ), + REGISTER_RISCV64_F3 = ( REGISTER_RISCV64_F2 + 1 ), + REGISTER_RISCV64_F4 = ( REGISTER_RISCV64_F3 + 1 ), + REGISTER_RISCV64_F5 = ( REGISTER_RISCV64_F4 + 1 ), + REGISTER_RISCV64_F6 = ( REGISTER_RISCV64_F5 + 1 ), + REGISTER_RISCV64_F7 = ( REGISTER_RISCV64_F6 + 1 ), + REGISTER_RISCV64_F8 = ( REGISTER_RISCV64_F7 + 1 ), + REGISTER_RISCV64_F9 = ( REGISTER_RISCV64_F8 + 1 ), + REGISTER_RISCV64_F10 = ( REGISTER_RISCV64_F9 + 1 ), + REGISTER_RISCV64_F11 = ( REGISTER_RISCV64_F10 + 1 ), + REGISTER_RISCV64_F12 = ( REGISTER_RISCV64_F11 + 1 ), + REGISTER_RISCV64_F13 = ( REGISTER_RISCV64_F12 + 1 ), + REGISTER_RISCV64_F14 = ( REGISTER_RISCV64_F13 + 1 ), + REGISTER_RISCV64_F15 = ( REGISTER_RISCV64_F14 + 1 ), + REGISTER_RISCV64_F16 = ( REGISTER_RISCV64_F15 + 1 ), + REGISTER_RISCV64_F17 = ( REGISTER_RISCV64_F16 + 1 ), + REGISTER_RISCV64_F18 = ( REGISTER_RISCV64_F17 + 1 ), + REGISTER_RISCV64_F19 = ( REGISTER_RISCV64_F18 + 1 ), + REGISTER_RISCV64_F20 = ( REGISTER_RISCV64_F19 + 1 ), + REGISTER_RISCV64_F21 = ( REGISTER_RISCV64_F20 + 1 ), + REGISTER_RISCV64_F22 = ( REGISTER_RISCV64_F21 + 1 ), + REGISTER_RISCV64_F23 = ( REGISTER_RISCV64_F22 + 1 ), + REGISTER_RISCV64_F24 = ( REGISTER_RISCV64_F23 + 1 ), + REGISTER_RISCV64_F25 = ( REGISTER_RISCV64_F24 + 1 ), + REGISTER_RISCV64_F26 = ( REGISTER_RISCV64_F25 + 1 ), + REGISTER_RISCV64_F27 = ( REGISTER_RISCV64_F26 + 1 ), + REGISTER_RISCV64_F28 = ( REGISTER_RISCV64_F27 + 1 ), + REGISTER_RISCV64_F29 = ( REGISTER_RISCV64_F28 + 1 ), + REGISTER_RISCV64_F30 = ( REGISTER_RISCV64_F29 + 1 ), + REGISTER_RISCV64_F31 = ( REGISTER_RISCV64_F30 + 1 ), + REGISTER_RISCV64_X0 = ( REGISTER_RISCV64_F31 + 1 ), // TODO-RISCV64-CQ: Add X0 for an use in debug. Need to check. + } CorDebugRegister; EXTERN_C const IID IID_ICorDebugRegisterSet; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB0B-8A68-11d2-983C-0000F808342D") ICorDebugRegisterSet : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( + virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( /* [out] */ ULONG64 *pAvailable) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisters( + + virtual HRESULT STDMETHODCALLTYPE GetRegisters( /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [length_is][size_is][out] */ CORDB_REGISTER regBuffer[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRegisters( + + virtual HRESULT STDMETHODCALLTYPE SetRegisters( /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE GetThreadContext( /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE SetThreadContext( /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRegisterSetVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRegisterSet * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRegisterSet * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRegisterSet * This); - - DECLSPEC_XFGVIRT(ICorDebugRegisterSet, GetRegistersAvailable) - HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( + + HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( ICorDebugRegisterSet * This, /* [out] */ ULONG64 *pAvailable); - - DECLSPEC_XFGVIRT(ICorDebugRegisterSet, GetRegisters) - HRESULT ( STDMETHODCALLTYPE *GetRegisters )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisters )( ICorDebugRegisterSet * This, /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [length_is][size_is][out] */ CORDB_REGISTER regBuffer[ ]); - - DECLSPEC_XFGVIRT(ICorDebugRegisterSet, SetRegisters) - HRESULT ( STDMETHODCALLTYPE *SetRegisters )( + + HRESULT ( STDMETHODCALLTYPE *SetRegisters )( ICorDebugRegisterSet * This, /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]); - - DECLSPEC_XFGVIRT(ICorDebugRegisterSet, GetThreadContext) - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugRegisterSet * This, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]); - - DECLSPEC_XFGVIRT(ICorDebugRegisterSet, SetThreadContext) - HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( + + HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( ICorDebugRegisterSet * This, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]); - + END_INTERFACE } ICorDebugRegisterSetVtbl; @@ -9865,124 +9410,118 @@ EXTERN_C const IID IID_ICorDebugRegisterSet; CONST_VTBL struct ICorDebugRegisterSetVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRegisterSet_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRegisterSet_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRegisterSet_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRegisterSet_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRegisterSet_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRegisterSet_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRegisterSet_GetRegistersAvailable(This,pAvailable) \ - ( (This)->lpVtbl -> GetRegistersAvailable(This,pAvailable) ) +#define ICorDebugRegisterSet_GetRegistersAvailable(This,pAvailable) \ + ( (This)->lpVtbl -> GetRegistersAvailable(This,pAvailable) ) -#define ICorDebugRegisterSet_GetRegisters(This,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> GetRegisters(This,mask,regCount,regBuffer) ) +#define ICorDebugRegisterSet_GetRegisters(This,mask,regCount,regBuffer) \ + ( (This)->lpVtbl -> GetRegisters(This,mask,regCount,regBuffer) ) -#define ICorDebugRegisterSet_SetRegisters(This,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> SetRegisters(This,mask,regCount,regBuffer) ) +#define ICorDebugRegisterSet_SetRegisters(This,mask,regCount,regBuffer) \ + ( (This)->lpVtbl -> SetRegisters(This,mask,regCount,regBuffer) ) -#define ICorDebugRegisterSet_GetThreadContext(This,contextSize,context) \ - ( (This)->lpVtbl -> GetThreadContext(This,contextSize,context) ) +#define ICorDebugRegisterSet_GetThreadContext(This,contextSize,context) \ + ( (This)->lpVtbl -> GetThreadContext(This,contextSize,context) ) -#define ICorDebugRegisterSet_SetThreadContext(This,contextSize,context) \ - ( (This)->lpVtbl -> SetThreadContext(This,contextSize,context) ) +#define ICorDebugRegisterSet_SetThreadContext(This,contextSize,context) \ + ( (This)->lpVtbl -> SetThreadContext(This,contextSize,context) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRegisterSet_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRegisterSet_INTERFACE_DEFINED__ */ #ifndef __ICorDebugRegisterSet2_INTERFACE_DEFINED__ #define __ICorDebugRegisterSet2_INTERFACE_DEFINED__ /* interface ICorDebugRegisterSet2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRegisterSet2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("6DC7BA3F-89BA-4459-9EC1-9D60937B468D") ICorDebugRegisterSet2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( + virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( /* [in] */ ULONG32 numChunks, /* [size_is][out] */ BYTE availableRegChunks[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisters( + + virtual HRESULT STDMETHODCALLTYPE GetRegisters( /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][out] */ CORDB_REGISTER regBuffer[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRegisters( + + virtual HRESULT STDMETHODCALLTYPE SetRegisters( /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRegisterSet2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRegisterSet2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRegisterSet2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRegisterSet2 * This); - - DECLSPEC_XFGVIRT(ICorDebugRegisterSet2, GetRegistersAvailable) - HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( + + HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( ICorDebugRegisterSet2 * This, /* [in] */ ULONG32 numChunks, /* [size_is][out] */ BYTE availableRegChunks[ ]); - - DECLSPEC_XFGVIRT(ICorDebugRegisterSet2, GetRegisters) - HRESULT ( STDMETHODCALLTYPE *GetRegisters )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisters )( ICorDebugRegisterSet2 * This, /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][out] */ CORDB_REGISTER regBuffer[ ]); - - DECLSPEC_XFGVIRT(ICorDebugRegisterSet2, SetRegisters) - HRESULT ( STDMETHODCALLTYPE *SetRegisters )( + + HRESULT ( STDMETHODCALLTYPE *SetRegisters )( ICorDebugRegisterSet2 * This, /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]); - + END_INTERFACE } ICorDebugRegisterSet2Vtbl; @@ -9991,220 +9530,201 @@ EXTERN_C const IID IID_ICorDebugRegisterSet2; CONST_VTBL struct ICorDebugRegisterSet2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRegisterSet2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRegisterSet2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRegisterSet2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRegisterSet2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRegisterSet2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRegisterSet2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRegisterSet2_GetRegistersAvailable(This,numChunks,availableRegChunks) \ - ( (This)->lpVtbl -> GetRegistersAvailable(This,numChunks,availableRegChunks) ) +#define ICorDebugRegisterSet2_GetRegistersAvailable(This,numChunks,availableRegChunks) \ + ( (This)->lpVtbl -> GetRegistersAvailable(This,numChunks,availableRegChunks) ) -#define ICorDebugRegisterSet2_GetRegisters(This,maskCount,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> GetRegisters(This,maskCount,mask,regCount,regBuffer) ) +#define ICorDebugRegisterSet2_GetRegisters(This,maskCount,mask,regCount,regBuffer) \ + ( (This)->lpVtbl -> GetRegisters(This,maskCount,mask,regCount,regBuffer) ) -#define ICorDebugRegisterSet2_SetRegisters(This,maskCount,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> SetRegisters(This,maskCount,mask,regCount,regBuffer) ) +#define ICorDebugRegisterSet2_SetRegisters(This,maskCount,mask,regCount,regBuffer) \ + ( (This)->lpVtbl -> SetRegisters(This,maskCount,mask,regCount,regBuffer) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRegisterSet2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRegisterSet2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread_INTERFACE_DEFINED__ #define __ICorDebugThread_INTERFACE_DEFINED__ /* interface ICorDebugThread */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugUserState { - USER_STOP_REQUESTED = 0x1, - USER_SUSPEND_REQUESTED = 0x2, - USER_BACKGROUND = 0x4, - USER_UNSTARTED = 0x8, - USER_STOPPED = 0x10, - USER_WAIT_SLEEP_JOIN = 0x20, - USER_SUSPENDED = 0x40, - USER_UNSAFE_POINT = 0x80, - USER_THREADPOOL = 0x100 - } CorDebugUserState; + USER_STOP_REQUESTED = 0x1, + USER_SUSPEND_REQUESTED = 0x2, + USER_BACKGROUND = 0x4, + USER_UNSTARTED = 0x8, + USER_STOPPED = 0x10, + USER_WAIT_SLEEP_JOIN = 0x20, + USER_SUSPENDED = 0x40, + USER_UNSAFE_POINT = 0x80, + USER_THREADPOOL = 0x100 + } CorDebugUserState; EXTERN_C const IID IID_ICorDebugThread; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("938c6d66-7fb6-4f69-b389-425b8987329b") ICorDebugThread : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetID( + + virtual HRESULT STDMETHODCALLTYPE GetID( /* [out] */ DWORD *pdwThreadId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHandle( + + virtual HRESULT STDMETHODCALLTYPE GetHandle( /* [out] */ HTHREAD *phThreadHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAppDomain( + + virtual HRESULT STDMETHODCALLTYPE GetAppDomain( /* [out] */ ICorDebugAppDomain **ppAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDebugState( + + virtual HRESULT STDMETHODCALLTYPE SetDebugState( /* [in] */ CorDebugThreadState state) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDebugState( + + virtual HRESULT STDMETHODCALLTYPE GetDebugState( /* [out] */ CorDebugThreadState *pState) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetUserState( + + virtual HRESULT STDMETHODCALLTYPE GetUserState( /* [out] */ CorDebugUserState *pState) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentException( + + virtual HRESULT STDMETHODCALLTYPE GetCurrentException( /* [out] */ ICorDebugValue **ppExceptionObject) = 0; - + virtual HRESULT STDMETHODCALLTYPE ClearCurrentException( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStepper( + + virtual HRESULT STDMETHODCALLTYPE CreateStepper( /* [out] */ ICorDebugStepper **ppStepper) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateChains( + + virtual HRESULT STDMETHODCALLTYPE EnumerateChains( /* [out] */ ICorDebugChainEnum **ppChains) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveChain( + + virtual HRESULT STDMETHODCALLTYPE GetActiveChain( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( + + virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( + + virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( /* [out] */ ICorDebugRegisterSet **ppRegisters) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateEval( + + virtual HRESULT STDMETHODCALLTYPE CreateEval( /* [out] */ ICorDebugEval **ppEval) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugValue **ppObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThreadVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread * This); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetProcess) - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugThread * This, /* [out] */ ICorDebugProcess **ppProcess); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetID) - HRESULT ( STDMETHODCALLTYPE *GetID )( + + HRESULT ( STDMETHODCALLTYPE *GetID )( ICorDebugThread * This, /* [out] */ DWORD *pdwThreadId); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetHandle) - HRESULT ( STDMETHODCALLTYPE *GetHandle )( + + HRESULT ( STDMETHODCALLTYPE *GetHandle )( ICorDebugThread * This, /* [out] */ HTHREAD *phThreadHandle); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetAppDomain) - HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( + + HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( ICorDebugThread * This, /* [out] */ ICorDebugAppDomain **ppAppDomain); - - DECLSPEC_XFGVIRT(ICorDebugThread, SetDebugState) - HRESULT ( STDMETHODCALLTYPE *SetDebugState )( + + HRESULT ( STDMETHODCALLTYPE *SetDebugState )( ICorDebugThread * This, /* [in] */ CorDebugThreadState state); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetDebugState) - HRESULT ( STDMETHODCALLTYPE *GetDebugState )( + + HRESULT ( STDMETHODCALLTYPE *GetDebugState )( ICorDebugThread * This, /* [out] */ CorDebugThreadState *pState); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetUserState) - HRESULT ( STDMETHODCALLTYPE *GetUserState )( + + HRESULT ( STDMETHODCALLTYPE *GetUserState )( ICorDebugThread * This, /* [out] */ CorDebugUserState *pState); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetCurrentException) - HRESULT ( STDMETHODCALLTYPE *GetCurrentException )( + + HRESULT ( STDMETHODCALLTYPE *GetCurrentException )( ICorDebugThread * This, /* [out] */ ICorDebugValue **ppExceptionObject); - - DECLSPEC_XFGVIRT(ICorDebugThread, ClearCurrentException) - HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( + + HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( ICorDebugThread * This); - - DECLSPEC_XFGVIRT(ICorDebugThread, CreateStepper) - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugThread * This, /* [out] */ ICorDebugStepper **ppStepper); - - DECLSPEC_XFGVIRT(ICorDebugThread, EnumerateChains) - HRESULT ( STDMETHODCALLTYPE *EnumerateChains )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateChains )( ICorDebugThread * This, /* [out] */ ICorDebugChainEnum **ppChains); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetActiveChain) - HRESULT ( STDMETHODCALLTYPE *GetActiveChain )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveChain )( ICorDebugThread * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetActiveFrame) - HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( ICorDebugThread * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetRegisterSet) - HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( ICorDebugThread * This, /* [out] */ ICorDebugRegisterSet **ppRegisters); - - DECLSPEC_XFGVIRT(ICorDebugThread, CreateEval) - HRESULT ( STDMETHODCALLTYPE *CreateEval )( + + HRESULT ( STDMETHODCALLTYPE *CreateEval )( ICorDebugThread * This, /* [out] */ ICorDebugEval **ppEval); - - DECLSPEC_XFGVIRT(ICorDebugThread, GetObject) - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugThread * This, /* [out] */ ICorDebugValue **ppObject); - + END_INTERFACE } ICorDebugThreadVtbl; @@ -10213,85 +9733,85 @@ EXTERN_C const IID IID_ICorDebugThread; CONST_VTBL struct ICorDebugThreadVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) +#define ICorDebugThread_GetProcess(This,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) -#define ICorDebugThread_GetID(This,pdwThreadId) \ - ( (This)->lpVtbl -> GetID(This,pdwThreadId) ) +#define ICorDebugThread_GetID(This,pdwThreadId) \ + ( (This)->lpVtbl -> GetID(This,pdwThreadId) ) -#define ICorDebugThread_GetHandle(This,phThreadHandle) \ - ( (This)->lpVtbl -> GetHandle(This,phThreadHandle) ) +#define ICorDebugThread_GetHandle(This,phThreadHandle) \ + ( (This)->lpVtbl -> GetHandle(This,phThreadHandle) ) -#define ICorDebugThread_GetAppDomain(This,ppAppDomain) \ - ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) +#define ICorDebugThread_GetAppDomain(This,ppAppDomain) \ + ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) -#define ICorDebugThread_SetDebugState(This,state) \ - ( (This)->lpVtbl -> SetDebugState(This,state) ) +#define ICorDebugThread_SetDebugState(This,state) \ + ( (This)->lpVtbl -> SetDebugState(This,state) ) -#define ICorDebugThread_GetDebugState(This,pState) \ - ( (This)->lpVtbl -> GetDebugState(This,pState) ) +#define ICorDebugThread_GetDebugState(This,pState) \ + ( (This)->lpVtbl -> GetDebugState(This,pState) ) -#define ICorDebugThread_GetUserState(This,pState) \ - ( (This)->lpVtbl -> GetUserState(This,pState) ) +#define ICorDebugThread_GetUserState(This,pState) \ + ( (This)->lpVtbl -> GetUserState(This,pState) ) -#define ICorDebugThread_GetCurrentException(This,ppExceptionObject) \ - ( (This)->lpVtbl -> GetCurrentException(This,ppExceptionObject) ) +#define ICorDebugThread_GetCurrentException(This,ppExceptionObject) \ + ( (This)->lpVtbl -> GetCurrentException(This,ppExceptionObject) ) -#define ICorDebugThread_ClearCurrentException(This) \ - ( (This)->lpVtbl -> ClearCurrentException(This) ) +#define ICorDebugThread_ClearCurrentException(This) \ + ( (This)->lpVtbl -> ClearCurrentException(This) ) -#define ICorDebugThread_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugThread_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) -#define ICorDebugThread_EnumerateChains(This,ppChains) \ - ( (This)->lpVtbl -> EnumerateChains(This,ppChains) ) +#define ICorDebugThread_EnumerateChains(This,ppChains) \ + ( (This)->lpVtbl -> EnumerateChains(This,ppChains) ) -#define ICorDebugThread_GetActiveChain(This,ppChain) \ - ( (This)->lpVtbl -> GetActiveChain(This,ppChain) ) +#define ICorDebugThread_GetActiveChain(This,ppChain) \ + ( (This)->lpVtbl -> GetActiveChain(This,ppChain) ) -#define ICorDebugThread_GetActiveFrame(This,ppFrame) \ - ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) +#define ICorDebugThread_GetActiveFrame(This,ppFrame) \ + ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) -#define ICorDebugThread_GetRegisterSet(This,ppRegisters) \ - ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) +#define ICorDebugThread_GetRegisterSet(This,ppRegisters) \ + ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) -#define ICorDebugThread_CreateEval(This,ppEval) \ - ( (This)->lpVtbl -> CreateEval(This,ppEval) ) +#define ICorDebugThread_CreateEval(This,ppEval) \ + ( (This)->lpVtbl -> CreateEval(This,ppEval) ) -#define ICorDebugThread_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) +#define ICorDebugThread_GetObject(This,ppObject) \ + ( (This)->lpVtbl -> GetObject(This,ppObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread2_INTERFACE_DEFINED__ #define __ICorDebugThread2_INTERFACE_DEFINED__ /* interface ICorDebugThread2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ typedef struct _COR_ACTIVE_FUNCTION { @@ -10300,85 +9820,77 @@ typedef struct _COR_ACTIVE_FUNCTION ICorDebugFunction2 *pFunction; ULONG32 ilOffset; ULONG32 flags; - } COR_ACTIVE_FUNCTION; + } COR_ACTIVE_FUNCTION; EXTERN_C const IID IID_ICorDebugThread2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2BD956D9-7B07-4bef-8A98-12AA862417C5") ICorDebugThread2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetActiveFunctions( + virtual HRESULT STDMETHODCALLTYPE GetActiveFunctions( /* [in] */ ULONG32 cFunctions, /* [out] */ ULONG32 *pcFunctions, /* [length_is][size_is][out][in] */ COR_ACTIVE_FUNCTION pFunctions[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetConnectionID( + + virtual HRESULT STDMETHODCALLTYPE GetConnectionID( /* [out] */ CONNID *pdwConnectionId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTaskID( + + virtual HRESULT STDMETHODCALLTYPE GetTaskID( /* [out] */ TASKID *pTaskId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVolatileOSThreadID( + + virtual HRESULT STDMETHODCALLTYPE GetVolatileOSThreadID( /* [out] */ DWORD *pdwTid) = 0; - - virtual HRESULT STDMETHODCALLTYPE InterceptCurrentException( + + virtual HRESULT STDMETHODCALLTYPE InterceptCurrentException( /* [in] */ ICorDebugFrame *pFrame) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThread2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread2 * This); - - DECLSPEC_XFGVIRT(ICorDebugThread2, GetActiveFunctions) - HRESULT ( STDMETHODCALLTYPE *GetActiveFunctions )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveFunctions )( ICorDebugThread2 * This, /* [in] */ ULONG32 cFunctions, /* [out] */ ULONG32 *pcFunctions, /* [length_is][size_is][out][in] */ COR_ACTIVE_FUNCTION pFunctions[ ]); - - DECLSPEC_XFGVIRT(ICorDebugThread2, GetConnectionID) - HRESULT ( STDMETHODCALLTYPE *GetConnectionID )( + + HRESULT ( STDMETHODCALLTYPE *GetConnectionID )( ICorDebugThread2 * This, /* [out] */ CONNID *pdwConnectionId); - - DECLSPEC_XFGVIRT(ICorDebugThread2, GetTaskID) - HRESULT ( STDMETHODCALLTYPE *GetTaskID )( + + HRESULT ( STDMETHODCALLTYPE *GetTaskID )( ICorDebugThread2 * This, /* [out] */ TASKID *pTaskId); - - DECLSPEC_XFGVIRT(ICorDebugThread2, GetVolatileOSThreadID) - HRESULT ( STDMETHODCALLTYPE *GetVolatileOSThreadID )( + + HRESULT ( STDMETHODCALLTYPE *GetVolatileOSThreadID )( ICorDebugThread2 * This, /* [out] */ DWORD *pdwTid); - - DECLSPEC_XFGVIRT(ICorDebugThread2, InterceptCurrentException) - HRESULT ( STDMETHODCALLTYPE *InterceptCurrentException )( + + HRESULT ( STDMETHODCALLTYPE *InterceptCurrentException )( ICorDebugThread2 * This, /* [in] */ ICorDebugFrame *pFrame); - + END_INTERFACE } ICorDebugThread2Vtbl; @@ -10387,106 +9899,101 @@ EXTERN_C const IID IID_ICorDebugThread2; CONST_VTBL struct ICorDebugThread2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread2_GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) \ - ( (This)->lpVtbl -> GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) ) +#define ICorDebugThread2_GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) \ + ( (This)->lpVtbl -> GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) ) -#define ICorDebugThread2_GetConnectionID(This,pdwConnectionId) \ - ( (This)->lpVtbl -> GetConnectionID(This,pdwConnectionId) ) +#define ICorDebugThread2_GetConnectionID(This,pdwConnectionId) \ + ( (This)->lpVtbl -> GetConnectionID(This,pdwConnectionId) ) -#define ICorDebugThread2_GetTaskID(This,pTaskId) \ - ( (This)->lpVtbl -> GetTaskID(This,pTaskId) ) +#define ICorDebugThread2_GetTaskID(This,pTaskId) \ + ( (This)->lpVtbl -> GetTaskID(This,pTaskId) ) -#define ICorDebugThread2_GetVolatileOSThreadID(This,pdwTid) \ - ( (This)->lpVtbl -> GetVolatileOSThreadID(This,pdwTid) ) +#define ICorDebugThread2_GetVolatileOSThreadID(This,pdwTid) \ + ( (This)->lpVtbl -> GetVolatileOSThreadID(This,pdwTid) ) -#define ICorDebugThread2_InterceptCurrentException(This,pFrame) \ - ( (This)->lpVtbl -> InterceptCurrentException(This,pFrame) ) +#define ICorDebugThread2_InterceptCurrentException(This,pFrame) \ + ( (This)->lpVtbl -> InterceptCurrentException(This,pFrame) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread3_INTERFACE_DEFINED__ #define __ICorDebugThread3_INTERFACE_DEFINED__ /* interface ICorDebugThread3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThread3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F8544EC3-5E4E-46c7-8D3E-A52B8405B1F5") ICorDebugThread3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateStackWalk( + virtual HRESULT STDMETHODCALLTYPE CreateStackWalk( /* [out] */ ICorDebugStackWalk **ppStackWalk) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveInternalFrames( + + virtual HRESULT STDMETHODCALLTYPE GetActiveInternalFrames( /* [in] */ ULONG32 cInternalFrames, /* [out] */ ULONG32 *pcInternalFrames, /* [length_is][size_is][out][in] */ ICorDebugInternalFrame2 *ppInternalFrames[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThread3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread3 * This); - - DECLSPEC_XFGVIRT(ICorDebugThread3, CreateStackWalk) - HRESULT ( STDMETHODCALLTYPE *CreateStackWalk )( + + HRESULT ( STDMETHODCALLTYPE *CreateStackWalk )( ICorDebugThread3 * This, /* [out] */ ICorDebugStackWalk **ppStackWalk); - - DECLSPEC_XFGVIRT(ICorDebugThread3, GetActiveInternalFrames) - HRESULT ( STDMETHODCALLTYPE *GetActiveInternalFrames )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveInternalFrames )( ICorDebugThread3 * This, /* [in] */ ULONG32 cInternalFrames, /* [out] */ ULONG32 *pcInternalFrames, /* [length_is][size_is][out][in] */ ICorDebugInternalFrame2 *ppInternalFrames[ ]); - + END_INTERFACE } ICorDebugThread3Vtbl; @@ -10495,99 +10002,93 @@ EXTERN_C const IID IID_ICorDebugThread3; CONST_VTBL struct ICorDebugThread3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread3_CreateStackWalk(This,ppStackWalk) \ - ( (This)->lpVtbl -> CreateStackWalk(This,ppStackWalk) ) +#define ICorDebugThread3_CreateStackWalk(This,ppStackWalk) \ + ( (This)->lpVtbl -> CreateStackWalk(This,ppStackWalk) ) -#define ICorDebugThread3_GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) \ - ( (This)->lpVtbl -> GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) ) +#define ICorDebugThread3_GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) \ + ( (This)->lpVtbl -> GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread4_INTERFACE_DEFINED__ #define __ICorDebugThread4_INTERFACE_DEFINED__ /* interface ICorDebugThread4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThread4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("1A1F204B-1C66-4637-823F-3EE6C744A69C") ICorDebugThread4 : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE HasUnhandledException( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBlockingObjects( + + virtual HRESULT STDMETHODCALLTYPE GetBlockingObjects( /* [out] */ ICorDebugBlockingObjectEnum **ppBlockingObjectEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentCustomDebuggerNotification( + + virtual HRESULT STDMETHODCALLTYPE GetCurrentCustomDebuggerNotification( /* [out] */ ICorDebugValue **ppNotificationObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThread4Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread4 * This); - - DECLSPEC_XFGVIRT(ICorDebugThread4, HasUnhandledException) - HRESULT ( STDMETHODCALLTYPE *HasUnhandledException )( + + HRESULT ( STDMETHODCALLTYPE *HasUnhandledException )( ICorDebugThread4 * This); - - DECLSPEC_XFGVIRT(ICorDebugThread4, GetBlockingObjects) - HRESULT ( STDMETHODCALLTYPE *GetBlockingObjects )( + + HRESULT ( STDMETHODCALLTYPE *GetBlockingObjects )( ICorDebugThread4 * This, /* [out] */ ICorDebugBlockingObjectEnum **ppBlockingObjectEnum); - - DECLSPEC_XFGVIRT(ICorDebugThread4, GetCurrentCustomDebuggerNotification) - HRESULT ( STDMETHODCALLTYPE *GetCurrentCustomDebuggerNotification )( + + HRESULT ( STDMETHODCALLTYPE *GetCurrentCustomDebuggerNotification )( ICorDebugThread4 * This, /* [out] */ ICorDebugValue **ppNotificationObject); - + END_INTERFACE } ICorDebugThread4Vtbl; @@ -10596,90 +10097,86 @@ EXTERN_C const IID IID_ICorDebugThread4; CONST_VTBL struct ICorDebugThread4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread4_HasUnhandledException(This) \ - ( (This)->lpVtbl -> HasUnhandledException(This) ) +#define ICorDebugThread4_HasUnhandledException(This) \ + ( (This)->lpVtbl -> HasUnhandledException(This) ) -#define ICorDebugThread4_GetBlockingObjects(This,ppBlockingObjectEnum) \ - ( (This)->lpVtbl -> GetBlockingObjects(This,ppBlockingObjectEnum) ) +#define ICorDebugThread4_GetBlockingObjects(This,ppBlockingObjectEnum) \ + ( (This)->lpVtbl -> GetBlockingObjects(This,ppBlockingObjectEnum) ) -#define ICorDebugThread4_GetCurrentCustomDebuggerNotification(This,ppNotificationObject) \ - ( (This)->lpVtbl -> GetCurrentCustomDebuggerNotification(This,ppNotificationObject) ) +#define ICorDebugThread4_GetCurrentCustomDebuggerNotification(This,ppNotificationObject) \ + ( (This)->lpVtbl -> GetCurrentCustomDebuggerNotification(This,ppNotificationObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread5_INTERFACE_DEFINED__ #define __ICorDebugThread5_INTERFACE_DEFINED__ /* interface ICorDebugThread5 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThread5; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F98421C4-E506-4D24-916F-0237EE853EC6") ICorDebugThread5 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetBytesAllocated( + virtual HRESULT STDMETHODCALLTYPE GetBytesAllocated( /* [out] */ ULONG64 *pSohAllocatedBytes, /* [out] */ ULONG64 *pUohAllocatedBytes) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThread5Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread5 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread5 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread5 * This); - - DECLSPEC_XFGVIRT(ICorDebugThread5, GetBytesAllocated) - HRESULT ( STDMETHODCALLTYPE *GetBytesAllocated )( + + HRESULT ( STDMETHODCALLTYPE *GetBytesAllocated )( ICorDebugThread5 * This, /* [out] */ ULONG64 *pSohAllocatedBytes, /* [out] */ ULONG64 *pUohAllocatedBytes); - + END_INTERFACE } ICorDebugThread5Vtbl; @@ -10688,121 +10185,114 @@ EXTERN_C const IID IID_ICorDebugThread5; CONST_VTBL struct ICorDebugThread5Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread5_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread5_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread5_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread5_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread5_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread5_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread5_GetBytesAllocated(This,pSohAllocatedBytes,pUohAllocatedBytes) \ - ( (This)->lpVtbl -> GetBytesAllocated(This,pSohAllocatedBytes,pUohAllocatedBytes) ) +#define ICorDebugThread5_GetBytesAllocated(This,pSohAllocatedBytes,pUohAllocatedBytes) \ + ( (This)->lpVtbl -> GetBytesAllocated(This,pSohAllocatedBytes,pUohAllocatedBytes) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread5_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread5_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStackWalk_INTERFACE_DEFINED__ #define __ICorDebugStackWalk_INTERFACE_DEFINED__ /* interface ICorDebugStackWalk */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugSetContextFlag { - SET_CONTEXT_FLAG_ACTIVE_FRAME = 0x1, - SET_CONTEXT_FLAG_UNWIND_FRAME = 0x2 - } CorDebugSetContextFlag; + SET_CONTEXT_FLAG_ACTIVE_FRAME = 0x1, + SET_CONTEXT_FLAG_UNWIND_FRAME = 0x2 + } CorDebugSetContextFlag; EXTERN_C const IID IID_ICorDebugStackWalk; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A0647DE9-55DE-4816-929C-385271C64CF7") ICorDebugStackWalk : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetContext( + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextBufSize, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetContext( + + virtual HRESULT STDMETHODCALLTYPE SetContext( /* [in] */ CorDebugSetContextFlag flag, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ BYTE context[ ]) = 0; - + virtual HRESULT STDMETHODCALLTYPE Next( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrame( + + virtual HRESULT STDMETHODCALLTYPE GetFrame( /* [out] */ ICorDebugFrame **pFrame) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStackWalkVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStackWalk * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStackWalk * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStackWalk * This); - - DECLSPEC_XFGVIRT(ICorDebugStackWalk, GetContext) - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugStackWalk * This, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextBufSize, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]); - - DECLSPEC_XFGVIRT(ICorDebugStackWalk, SetContext) - HRESULT ( STDMETHODCALLTYPE *SetContext )( + + HRESULT ( STDMETHODCALLTYPE *SetContext )( ICorDebugStackWalk * This, /* [in] */ CorDebugSetContextFlag flag, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ BYTE context[ ]); - - DECLSPEC_XFGVIRT(ICorDebugStackWalk, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugStackWalk * This); - - DECLSPEC_XFGVIRT(ICorDebugStackWalk, GetFrame) - HRESULT ( STDMETHODCALLTYPE *GetFrame )( + + HRESULT ( STDMETHODCALLTYPE *GetFrame )( ICorDebugStackWalk * This, /* [out] */ ICorDebugFrame **pFrame); - + END_INTERFACE } ICorDebugStackWalkVtbl; @@ -10811,199 +10301,184 @@ EXTERN_C const IID IID_ICorDebugStackWalk; CONST_VTBL struct ICorDebugStackWalkVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStackWalk_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStackWalk_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStackWalk_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStackWalk_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStackWalk_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStackWalk_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStackWalk_GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) \ - ( (This)->lpVtbl -> GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) ) +#define ICorDebugStackWalk_GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) \ + ( (This)->lpVtbl -> GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) ) -#define ICorDebugStackWalk_SetContext(This,flag,contextSize,context) \ - ( (This)->lpVtbl -> SetContext(This,flag,contextSize,context) ) +#define ICorDebugStackWalk_SetContext(This,flag,contextSize,context) \ + ( (This)->lpVtbl -> SetContext(This,flag,contextSize,context) ) -#define ICorDebugStackWalk_Next(This) \ - ( (This)->lpVtbl -> Next(This) ) +#define ICorDebugStackWalk_Next(This) \ + ( (This)->lpVtbl -> Next(This) ) -#define ICorDebugStackWalk_GetFrame(This,pFrame) \ - ( (This)->lpVtbl -> GetFrame(This,pFrame) ) +#define ICorDebugStackWalk_GetFrame(This,pFrame) \ + ( (This)->lpVtbl -> GetFrame(This,pFrame) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStackWalk_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStackWalk_INTERFACE_DEFINED__ */ #ifndef __ICorDebugChain_INTERFACE_DEFINED__ #define __ICorDebugChain_INTERFACE_DEFINED__ /* interface ICorDebugChain */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugChainReason { - CHAIN_NONE = 0, - CHAIN_CLASS_INIT = 0x1, - CHAIN_EXCEPTION_FILTER = 0x2, - CHAIN_SECURITY = 0x4, - CHAIN_CONTEXT_POLICY = 0x8, - CHAIN_INTERCEPTION = 0x10, - CHAIN_PROCESS_START = 0x20, - CHAIN_THREAD_START = 0x40, - CHAIN_ENTER_MANAGED = 0x80, - CHAIN_ENTER_UNMANAGED = 0x100, - CHAIN_DEBUGGER_EVAL = 0x200, - CHAIN_CONTEXT_SWITCH = 0x400, - CHAIN_FUNC_EVAL = 0x800 - } CorDebugChainReason; + CHAIN_NONE = 0, + CHAIN_CLASS_INIT = 0x1, + CHAIN_EXCEPTION_FILTER = 0x2, + CHAIN_SECURITY = 0x4, + CHAIN_CONTEXT_POLICY = 0x8, + CHAIN_INTERCEPTION = 0x10, + CHAIN_PROCESS_START = 0x20, + CHAIN_THREAD_START = 0x40, + CHAIN_ENTER_MANAGED = 0x80, + CHAIN_ENTER_UNMANAGED = 0x100, + CHAIN_DEBUGGER_EVAL = 0x200, + CHAIN_CONTEXT_SWITCH = 0x400, + CHAIN_FUNC_EVAL = 0x800 + } CorDebugChainReason; EXTERN_C const IID IID_ICorDebugChain; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEE-8A68-11d2-983C-0000F808342D") ICorDebugChain : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetThread( + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackRange( + + virtual HRESULT STDMETHODCALLTYPE GetStackRange( /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetContext( + + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [out] */ ICorDebugContext **ppContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCaller( + + virtual HRESULT STDMETHODCALLTYPE GetCaller( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallee( + + virtual HRESULT STDMETHODCALLTYPE GetCallee( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPrevious( + + virtual HRESULT STDMETHODCALLTYPE GetPrevious( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNext( + + virtual HRESULT STDMETHODCALLTYPE GetNext( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsManaged( + + virtual HRESULT STDMETHODCALLTYPE IsManaged( /* [out] */ BOOL *pManaged) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateFrames( + + virtual HRESULT STDMETHODCALLTYPE EnumerateFrames( /* [out] */ ICorDebugFrameEnum **ppFrames) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( + + virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( + + virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( /* [out] */ ICorDebugRegisterSet **ppRegisters) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetReason( + + virtual HRESULT STDMETHODCALLTYPE GetReason( /* [out] */ CorDebugChainReason *pReason) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugChainVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugChain * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugChain * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugChain * This); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetThread) - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugChain * This, /* [out] */ ICorDebugThread **ppThread); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetStackRange) - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugChain * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetContext) - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugChain * This, /* [out] */ ICorDebugContext **ppContext); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetCaller) - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetCallee) - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetPrevious) - HRESULT ( STDMETHODCALLTYPE *GetPrevious )( + + HRESULT ( STDMETHODCALLTYPE *GetPrevious )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetNext) - HRESULT ( STDMETHODCALLTYPE *GetNext )( + + HRESULT ( STDMETHODCALLTYPE *GetNext )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugChain, IsManaged) - HRESULT ( STDMETHODCALLTYPE *IsManaged )( + + HRESULT ( STDMETHODCALLTYPE *IsManaged )( ICorDebugChain * This, /* [out] */ BOOL *pManaged); - - DECLSPEC_XFGVIRT(ICorDebugChain, EnumerateFrames) - HRESULT ( STDMETHODCALLTYPE *EnumerateFrames )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateFrames )( ICorDebugChain * This, /* [out] */ ICorDebugFrameEnum **ppFrames); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetActiveFrame) - HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( ICorDebugChain * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetRegisterSet) - HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( ICorDebugChain * This, /* [out] */ ICorDebugRegisterSet **ppRegisters); - - DECLSPEC_XFGVIRT(ICorDebugChain, GetReason) - HRESULT ( STDMETHODCALLTYPE *GetReason )( + + HRESULT ( STDMETHODCALLTYPE *GetReason )( ICorDebugChain * This, /* [out] */ CorDebugChainReason *pReason); - + END_INTERFACE } ICorDebugChainVtbl; @@ -11012,173 +10487,162 @@ EXTERN_C const IID IID_ICorDebugChain; CONST_VTBL struct ICorDebugChainVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugChain_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugChain_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugChain_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugChain_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugChain_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugChain_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugChain_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugChain_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) -#define ICorDebugChain_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugChain_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugChain_GetContext(This,ppContext) \ - ( (This)->lpVtbl -> GetContext(This,ppContext) ) +#define ICorDebugChain_GetContext(This,ppContext) \ + ( (This)->lpVtbl -> GetContext(This,ppContext) ) -#define ICorDebugChain_GetCaller(This,ppChain) \ - ( (This)->lpVtbl -> GetCaller(This,ppChain) ) +#define ICorDebugChain_GetCaller(This,ppChain) \ + ( (This)->lpVtbl -> GetCaller(This,ppChain) ) -#define ICorDebugChain_GetCallee(This,ppChain) \ - ( (This)->lpVtbl -> GetCallee(This,ppChain) ) +#define ICorDebugChain_GetCallee(This,ppChain) \ + ( (This)->lpVtbl -> GetCallee(This,ppChain) ) -#define ICorDebugChain_GetPrevious(This,ppChain) \ - ( (This)->lpVtbl -> GetPrevious(This,ppChain) ) +#define ICorDebugChain_GetPrevious(This,ppChain) \ + ( (This)->lpVtbl -> GetPrevious(This,ppChain) ) -#define ICorDebugChain_GetNext(This,ppChain) \ - ( (This)->lpVtbl -> GetNext(This,ppChain) ) +#define ICorDebugChain_GetNext(This,ppChain) \ + ( (This)->lpVtbl -> GetNext(This,ppChain) ) -#define ICorDebugChain_IsManaged(This,pManaged) \ - ( (This)->lpVtbl -> IsManaged(This,pManaged) ) +#define ICorDebugChain_IsManaged(This,pManaged) \ + ( (This)->lpVtbl -> IsManaged(This,pManaged) ) -#define ICorDebugChain_EnumerateFrames(This,ppFrames) \ - ( (This)->lpVtbl -> EnumerateFrames(This,ppFrames) ) +#define ICorDebugChain_EnumerateFrames(This,ppFrames) \ + ( (This)->lpVtbl -> EnumerateFrames(This,ppFrames) ) -#define ICorDebugChain_GetActiveFrame(This,ppFrame) \ - ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) +#define ICorDebugChain_GetActiveFrame(This,ppFrame) \ + ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) -#define ICorDebugChain_GetRegisterSet(This,ppRegisters) \ - ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) +#define ICorDebugChain_GetRegisterSet(This,ppRegisters) \ + ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) -#define ICorDebugChain_GetReason(This,pReason) \ - ( (This)->lpVtbl -> GetReason(This,pReason) ) +#define ICorDebugChain_GetReason(This,pReason) \ + ( (This)->lpVtbl -> GetReason(This,pReason) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugChain_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugChain_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFrame_INTERFACE_DEFINED__ #define __ICorDebugFrame_INTERFACE_DEFINED__ /* interface ICorDebugFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEF-8A68-11d2-983C-0000F808342D") ICorDebugFrame : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetChain( + virtual HRESULT STDMETHODCALLTYPE GetChain( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCode( + + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunction( + + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionToken( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionToken( /* [out] */ mdMethodDef *pToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackRange( + + virtual HRESULT STDMETHODCALLTYPE GetStackRange( /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCaller( + + virtual HRESULT STDMETHODCALLTYPE GetCaller( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallee( + + virtual HRESULT STDMETHODCALLTYPE GetCallee( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStepper( + + virtual HRESULT STDMETHODCALLTYPE CreateStepper( /* [out] */ ICorDebugStepper **ppStepper) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFrameVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFrame * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFrame * This); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugFrame * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugFrame * This, /* [out] */ ICorDebugCode **ppCode); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugFrame * This, /* [out] */ mdMethodDef *pToken); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - + END_INTERFACE } ICorDebugFrameVtbl; @@ -11187,160 +10651,148 @@ EXTERN_C const IID IID_ICorDebugFrame; CONST_VTBL struct ICorDebugFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFrame_INTERFACE_DEFINED__ */ #ifndef __ICorDebugInternalFrame_INTERFACE_DEFINED__ #define __ICorDebugInternalFrame_INTERFACE_DEFINED__ /* interface ICorDebugInternalFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugInternalFrameType { - STUBFRAME_NONE = 0, - STUBFRAME_M2U = 0x1, - STUBFRAME_U2M = 0x2, - STUBFRAME_APPDOMAIN_TRANSITION = 0x3, - STUBFRAME_LIGHTWEIGHT_FUNCTION = 0x4, - STUBFRAME_FUNC_EVAL = 0x5, - STUBFRAME_INTERNALCALL = 0x6, - STUBFRAME_CLASS_INIT = 0x7, - STUBFRAME_EXCEPTION = 0x8, - STUBFRAME_SECURITY = 0x9, - STUBFRAME_JIT_COMPILATION = 0xa - } CorDebugInternalFrameType; + STUBFRAME_NONE = 0, + STUBFRAME_M2U = 0x1, + STUBFRAME_U2M = 0x2, + STUBFRAME_APPDOMAIN_TRANSITION = 0x3, + STUBFRAME_LIGHTWEIGHT_FUNCTION = 0x4, + STUBFRAME_FUNC_EVAL = 0x5, + STUBFRAME_INTERNALCALL = 0x6, + STUBFRAME_CLASS_INIT = 0x7, + STUBFRAME_EXCEPTION = 0x8, + STUBFRAME_SECURITY = 0x9, + STUBFRAME_JIT_COMPILATION = 0xa + } CorDebugInternalFrameType; EXTERN_C const IID IID_ICorDebugInternalFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("B92CC7F7-9D2D-45c4-BC2B-621FCC9DFBF4") ICorDebugInternalFrame : public ICorDebugFrame { public: - virtual HRESULT STDMETHODCALLTYPE GetFrameType( + virtual HRESULT STDMETHODCALLTYPE GetFrameType( /* [out] */ CorDebugInternalFrameType *pType) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugInternalFrameVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugInternalFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugInternalFrame * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugInternalFrame * This); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugCode **ppCode); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugInternalFrame * This, /* [out] */ mdMethodDef *pToken); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugInternalFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - - DECLSPEC_XFGVIRT(ICorDebugInternalFrame, GetFrameType) - HRESULT ( STDMETHODCALLTYPE *GetFrameType )( + + HRESULT ( STDMETHODCALLTYPE *GetFrameType )( ICorDebugInternalFrame * This, /* [out] */ CorDebugInternalFrameType *pType); - + END_INTERFACE } ICorDebugInternalFrameVtbl; @@ -11349,117 +10801,112 @@ EXTERN_C const IID IID_ICorDebugInternalFrame; CONST_VTBL struct ICorDebugInternalFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugInternalFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugInternalFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugInternalFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugInternalFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugInternalFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugInternalFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugInternalFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugInternalFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugInternalFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugInternalFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugInternalFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugInternalFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugInternalFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugInternalFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugInternalFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugInternalFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugInternalFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugInternalFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugInternalFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugInternalFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugInternalFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugInternalFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) -#define ICorDebugInternalFrame_GetFrameType(This,pType) \ - ( (This)->lpVtbl -> GetFrameType(This,pType) ) +#define ICorDebugInternalFrame_GetFrameType(This,pType) \ + ( (This)->lpVtbl -> GetFrameType(This,pType) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugInternalFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugInternalFrame_INTERFACE_DEFINED__ */ #ifndef __ICorDebugInternalFrame2_INTERFACE_DEFINED__ #define __ICorDebugInternalFrame2_INTERFACE_DEFINED__ /* interface ICorDebugInternalFrame2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugInternalFrame2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("C0815BDC-CFAB-447e-A779-C116B454EB5B") ICorDebugInternalFrame2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetAddress( + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsCloserToLeaf( + + virtual HRESULT STDMETHODCALLTYPE IsCloserToLeaf( /* [in] */ ICorDebugFrame *pFrameToCompare, /* [out] */ BOOL *pIsCloser) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugInternalFrame2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugInternalFrame2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugInternalFrame2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugInternalFrame2 * This); - - DECLSPEC_XFGVIRT(ICorDebugInternalFrame2, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugInternalFrame2 * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugInternalFrame2, IsCloserToLeaf) - HRESULT ( STDMETHODCALLTYPE *IsCloserToLeaf )( + + HRESULT ( STDMETHODCALLTYPE *IsCloserToLeaf )( ICorDebugInternalFrame2 * This, /* [in] */ ICorDebugFrame *pFrameToCompare, /* [out] */ BOOL *pIsCloser); - + END_INTERFACE } ICorDebugInternalFrame2Vtbl; @@ -11468,209 +10915,189 @@ EXTERN_C const IID IID_ICorDebugInternalFrame2; CONST_VTBL struct ICorDebugInternalFrame2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugInternalFrame2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugInternalFrame2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugInternalFrame2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugInternalFrame2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugInternalFrame2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugInternalFrame2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugInternalFrame2_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugInternalFrame2_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugInternalFrame2_IsCloserToLeaf(This,pFrameToCompare,pIsCloser) \ - ( (This)->lpVtbl -> IsCloserToLeaf(This,pFrameToCompare,pIsCloser) ) +#define ICorDebugInternalFrame2_IsCloserToLeaf(This,pFrameToCompare,pIsCloser) \ + ( (This)->lpVtbl -> IsCloserToLeaf(This,pFrameToCompare,pIsCloser) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugInternalFrame2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugInternalFrame2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILFrame_INTERFACE_DEFINED__ #define __ICorDebugILFrame_INTERFACE_DEFINED__ /* interface ICorDebugILFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugMappingResult { - MAPPING_PROLOG = 0x1, - MAPPING_EPILOG = 0x2, - MAPPING_NO_INFO = 0x4, - MAPPING_UNMAPPED_ADDRESS = 0x8, - MAPPING_EXACT = 0x10, - MAPPING_APPROXIMATE = 0x20 - } CorDebugMappingResult; + MAPPING_PROLOG = 0x1, + MAPPING_EPILOG = 0x2, + MAPPING_NO_INFO = 0x4, + MAPPING_UNMAPPED_ADDRESS = 0x8, + MAPPING_EXACT = 0x10, + MAPPING_APPROXIMATE = 0x20 + } CorDebugMappingResult; EXTERN_C const IID IID_ICorDebugILFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("03E26311-4F76-11d3-88C6-006097945418") ICorDebugILFrame : public ICorDebugFrame { public: - virtual HRESULT STDMETHODCALLTYPE GetIP( + virtual HRESULT STDMETHODCALLTYPE GetIP( /* [out] */ ULONG32 *pnOffset, /* [out] */ CorDebugMappingResult *pMappingResult) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetIP( + + virtual HRESULT STDMETHODCALLTYPE SetIP( /* [in] */ ULONG32 nOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariables( + + virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariables( /* [out] */ ICorDebugValueEnum **ppValueEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalVariable( + + virtual HRESULT STDMETHODCALLTYPE GetLocalVariable( /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateArguments( + + virtual HRESULT STDMETHODCALLTYPE EnumerateArguments( /* [out] */ ICorDebugValueEnum **ppValueEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetArgument( + + virtual HRESULT STDMETHODCALLTYPE GetArgument( /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackDepth( + + virtual HRESULT STDMETHODCALLTYPE GetStackDepth( /* [out] */ ULONG32 *pDepth) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackValue( + + virtual HRESULT STDMETHODCALLTYPE GetStackValue( /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanSetIP( + + virtual HRESULT STDMETHODCALLTYPE CanSetIP( /* [in] */ ULONG32 nOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILFrameVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame * This); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugILFrame * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugILFrame * This, /* [out] */ ICorDebugCode **ppCode); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugILFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugILFrame * This, /* [out] */ mdMethodDef *pToken); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugILFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugILFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugILFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugILFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - - DECLSPEC_XFGVIRT(ICorDebugILFrame, GetIP) - HRESULT ( STDMETHODCALLTYPE *GetIP )( + + HRESULT ( STDMETHODCALLTYPE *GetIP )( ICorDebugILFrame * This, /* [out] */ ULONG32 *pnOffset, /* [out] */ CorDebugMappingResult *pMappingResult); - - DECLSPEC_XFGVIRT(ICorDebugILFrame, SetIP) - HRESULT ( STDMETHODCALLTYPE *SetIP )( + + HRESULT ( STDMETHODCALLTYPE *SetIP )( ICorDebugILFrame * This, /* [in] */ ULONG32 nOffset); - - DECLSPEC_XFGVIRT(ICorDebugILFrame, EnumerateLocalVariables) - HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariables )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariables )( ICorDebugILFrame * This, /* [out] */ ICorDebugValueEnum **ppValueEnum); - - DECLSPEC_XFGVIRT(ICorDebugILFrame, GetLocalVariable) - HRESULT ( STDMETHODCALLTYPE *GetLocalVariable )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalVariable )( ICorDebugILFrame * This, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugILFrame, EnumerateArguments) - HRESULT ( STDMETHODCALLTYPE *EnumerateArguments )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateArguments )( ICorDebugILFrame * This, /* [out] */ ICorDebugValueEnum **ppValueEnum); - - DECLSPEC_XFGVIRT(ICorDebugILFrame, GetArgument) - HRESULT ( STDMETHODCALLTYPE *GetArgument )( + + HRESULT ( STDMETHODCALLTYPE *GetArgument )( ICorDebugILFrame * This, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugILFrame, GetStackDepth) - HRESULT ( STDMETHODCALLTYPE *GetStackDepth )( + + HRESULT ( STDMETHODCALLTYPE *GetStackDepth )( ICorDebugILFrame * This, /* [out] */ ULONG32 *pDepth); - - DECLSPEC_XFGVIRT(ICorDebugILFrame, GetStackValue) - HRESULT ( STDMETHODCALLTYPE *GetStackValue )( + + HRESULT ( STDMETHODCALLTYPE *GetStackValue )( ICorDebugILFrame * This, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugILFrame, CanSetIP) - HRESULT ( STDMETHODCALLTYPE *CanSetIP )( + + HRESULT ( STDMETHODCALLTYPE *CanSetIP )( ICorDebugILFrame * This, /* [in] */ ULONG32 nOffset); - + END_INTERFACE } ICorDebugILFrameVtbl; @@ -11679,139 +11106,134 @@ EXTERN_C const IID IID_ICorDebugILFrame; CONST_VTBL struct ICorDebugILFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugILFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugILFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugILFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugILFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugILFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugILFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugILFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugILFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugILFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugILFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugILFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugILFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugILFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugILFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugILFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) -#define ICorDebugILFrame_GetIP(This,pnOffset,pMappingResult) \ - ( (This)->lpVtbl -> GetIP(This,pnOffset,pMappingResult) ) +#define ICorDebugILFrame_GetIP(This,pnOffset,pMappingResult) \ + ( (This)->lpVtbl -> GetIP(This,pnOffset,pMappingResult) ) -#define ICorDebugILFrame_SetIP(This,nOffset) \ - ( (This)->lpVtbl -> SetIP(This,nOffset) ) +#define ICorDebugILFrame_SetIP(This,nOffset) \ + ( (This)->lpVtbl -> SetIP(This,nOffset) ) -#define ICorDebugILFrame_EnumerateLocalVariables(This,ppValueEnum) \ - ( (This)->lpVtbl -> EnumerateLocalVariables(This,ppValueEnum) ) +#define ICorDebugILFrame_EnumerateLocalVariables(This,ppValueEnum) \ + ( (This)->lpVtbl -> EnumerateLocalVariables(This,ppValueEnum) ) -#define ICorDebugILFrame_GetLocalVariable(This,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetLocalVariable(This,dwIndex,ppValue) ) +#define ICorDebugILFrame_GetLocalVariable(This,dwIndex,ppValue) \ + ( (This)->lpVtbl -> GetLocalVariable(This,dwIndex,ppValue) ) -#define ICorDebugILFrame_EnumerateArguments(This,ppValueEnum) \ - ( (This)->lpVtbl -> EnumerateArguments(This,ppValueEnum) ) +#define ICorDebugILFrame_EnumerateArguments(This,ppValueEnum) \ + ( (This)->lpVtbl -> EnumerateArguments(This,ppValueEnum) ) -#define ICorDebugILFrame_GetArgument(This,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetArgument(This,dwIndex,ppValue) ) +#define ICorDebugILFrame_GetArgument(This,dwIndex,ppValue) \ + ( (This)->lpVtbl -> GetArgument(This,dwIndex,ppValue) ) -#define ICorDebugILFrame_GetStackDepth(This,pDepth) \ - ( (This)->lpVtbl -> GetStackDepth(This,pDepth) ) +#define ICorDebugILFrame_GetStackDepth(This,pDepth) \ + ( (This)->lpVtbl -> GetStackDepth(This,pDepth) ) -#define ICorDebugILFrame_GetStackValue(This,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetStackValue(This,dwIndex,ppValue) ) +#define ICorDebugILFrame_GetStackValue(This,dwIndex,ppValue) \ + ( (This)->lpVtbl -> GetStackValue(This,dwIndex,ppValue) ) -#define ICorDebugILFrame_CanSetIP(This,nOffset) \ - ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) +#define ICorDebugILFrame_CanSetIP(This,nOffset) \ + ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILFrame_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILFrame2_INTERFACE_DEFINED__ #define __ICorDebugILFrame2_INTERFACE_DEFINED__ /* interface ICorDebugILFrame2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILFrame2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5D88A994-6C30-479b-890F-BCEF88B129A5") ICorDebugILFrame2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE RemapFunction( + virtual HRESULT STDMETHODCALLTYPE RemapFunction( /* [in] */ ULONG32 newILOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( + + virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( /* [out] */ ICorDebugTypeEnum **ppTyParEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILFrame2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame2 * This); - - DECLSPEC_XFGVIRT(ICorDebugILFrame2, RemapFunction) - HRESULT ( STDMETHODCALLTYPE *RemapFunction )( + + HRESULT ( STDMETHODCALLTYPE *RemapFunction )( ICorDebugILFrame2 * This, /* [in] */ ULONG32 newILOffset); - - DECLSPEC_XFGVIRT(ICorDebugILFrame2, EnumerateTypeParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( ICorDebugILFrame2 * This, /* [out] */ ICorDebugTypeEnum **ppTyParEnum); - + END_INTERFACE } ICorDebugILFrame2Vtbl; @@ -11820,87 +11242,83 @@ EXTERN_C const IID IID_ICorDebugILFrame2; CONST_VTBL struct ICorDebugILFrame2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILFrame2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILFrame2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILFrame2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILFrame2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILFrame2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILFrame2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILFrame2_RemapFunction(This,newILOffset) \ - ( (This)->lpVtbl -> RemapFunction(This,newILOffset) ) +#define ICorDebugILFrame2_RemapFunction(This,newILOffset) \ + ( (This)->lpVtbl -> RemapFunction(This,newILOffset) ) -#define ICorDebugILFrame2_EnumerateTypeParameters(This,ppTyParEnum) \ - ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) +#define ICorDebugILFrame2_EnumerateTypeParameters(This,ppTyParEnum) \ + ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILFrame2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILFrame2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILFrame3_INTERFACE_DEFINED__ #define __ICorDebugILFrame3_INTERFACE_DEFINED__ /* interface ICorDebugILFrame3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILFrame3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("9A9E2ED6-04DF-4FE0-BB50-CAB64126AD24") ICorDebugILFrame3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetReturnValueForILOffset( + virtual HRESULT STDMETHODCALLTYPE GetReturnValueForILOffset( ULONG32 ILoffset, /* [out] */ ICorDebugValue **ppReturnValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILFrame3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame3 * This); - - DECLSPEC_XFGVIRT(ICorDebugILFrame3, GetReturnValueForILOffset) - HRESULT ( STDMETHODCALLTYPE *GetReturnValueForILOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetReturnValueForILOffset )( ICorDebugILFrame3 * This, ULONG32 ILoffset, /* [out] */ ICorDebugValue **ppReturnValue); - + END_INTERFACE } ICorDebugILFrame3Vtbl; @@ -11909,44 +11327,44 @@ EXTERN_C const IID IID_ICorDebugILFrame3; CONST_VTBL struct ICorDebugILFrame3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILFrame3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILFrame3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILFrame3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILFrame3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILFrame3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILFrame3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILFrame3_GetReturnValueForILOffset(This,ILoffset,ppReturnValue) \ - ( (This)->lpVtbl -> GetReturnValueForILOffset(This,ILoffset,ppReturnValue) ) +#define ICorDebugILFrame3_GetReturnValueForILOffset(This,ILoffset,ppReturnValue) \ + ( (This)->lpVtbl -> GetReturnValueForILOffset(This,ILoffset,ppReturnValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILFrame3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILFrame3_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0070 */ -/* [local] */ +/* [local] */ -typedef +typedef enum ILCodeKind { - ILCODE_ORIGINAL_IL = 0x1, - ILCODE_REJIT_IL = 0x2 - } ILCodeKind; + ILCODE_ORIGINAL_IL = 0x1, + ILCODE_REJIT_IL = 0x2 + } ILCodeKind; @@ -11957,73 +11375,67 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0070_v0_0_s_ifspec; #define __ICorDebugILFrame4_INTERFACE_DEFINED__ /* interface ICorDebugILFrame4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILFrame4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AD914A30-C6D1-4AC5-9C5E-577F3BAA8A45") ICorDebugILFrame4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariablesEx( + virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariablesEx( /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugValueEnum **ppValueEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalVariableEx( + + virtual HRESULT STDMETHODCALLTYPE GetLocalVariableEx( /* [in] */ ILCodeKind flags, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodeEx( + + virtual HRESULT STDMETHODCALLTYPE GetCodeEx( /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugCode **ppCode) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILFrame4Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame4 * This); - - DECLSPEC_XFGVIRT(ICorDebugILFrame4, EnumerateLocalVariablesEx) - HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariablesEx )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariablesEx )( ICorDebugILFrame4 * This, /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugValueEnum **ppValueEnum); - - DECLSPEC_XFGVIRT(ICorDebugILFrame4, GetLocalVariableEx) - HRESULT ( STDMETHODCALLTYPE *GetLocalVariableEx )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalVariableEx )( ICorDebugILFrame4 * This, /* [in] */ ILCodeKind flags, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugILFrame4, GetCodeEx) - HRESULT ( STDMETHODCALLTYPE *GetCodeEx )( + + HRESULT ( STDMETHODCALLTYPE *GetCodeEx )( ICorDebugILFrame4 * This, /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugCode **ppCode); - + END_INTERFACE } ICorDebugILFrame4Vtbl; @@ -12032,229 +11444,209 @@ EXTERN_C const IID IID_ICorDebugILFrame4; CONST_VTBL struct ICorDebugILFrame4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILFrame4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILFrame4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILFrame4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILFrame4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILFrame4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILFrame4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILFrame4_EnumerateLocalVariablesEx(This,flags,ppValueEnum) \ - ( (This)->lpVtbl -> EnumerateLocalVariablesEx(This,flags,ppValueEnum) ) +#define ICorDebugILFrame4_EnumerateLocalVariablesEx(This,flags,ppValueEnum) \ + ( (This)->lpVtbl -> EnumerateLocalVariablesEx(This,flags,ppValueEnum) ) -#define ICorDebugILFrame4_GetLocalVariableEx(This,flags,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetLocalVariableEx(This,flags,dwIndex,ppValue) ) +#define ICorDebugILFrame4_GetLocalVariableEx(This,flags,dwIndex,ppValue) \ + ( (This)->lpVtbl -> GetLocalVariableEx(This,flags,dwIndex,ppValue) ) -#define ICorDebugILFrame4_GetCodeEx(This,flags,ppCode) \ - ( (This)->lpVtbl -> GetCodeEx(This,flags,ppCode) ) +#define ICorDebugILFrame4_GetCodeEx(This,flags,ppCode) \ + ( (This)->lpVtbl -> GetCodeEx(This,flags,ppCode) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILFrame4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILFrame4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugNativeFrame_INTERFACE_DEFINED__ #define __ICorDebugNativeFrame_INTERFACE_DEFINED__ /* interface ICorDebugNativeFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugNativeFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("03E26314-4F76-11d3-88C6-006097945418") ICorDebugNativeFrame : public ICorDebugFrame { public: - virtual HRESULT STDMETHODCALLTYPE GetIP( + virtual HRESULT STDMETHODCALLTYPE GetIP( /* [out] */ ULONG32 *pnOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetIP( + + virtual HRESULT STDMETHODCALLTYPE SetIP( /* [in] */ ULONG32 nOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( + + virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( /* [out] */ ICorDebugRegisterSet **ppRegisters) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterValue( /* [in] */ CorDebugRegister reg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalDoubleRegisterValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalDoubleRegisterValue( /* [in] */ CorDebugRegister highWordReg, /* [in] */ CorDebugRegister lowWordReg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryValue( /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterMemoryValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterMemoryValue( /* [in] */ CorDebugRegister highWordReg, /* [in] */ CORDB_ADDRESS lowWordAddress, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryRegisterValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryRegisterValue( /* [in] */ CORDB_ADDRESS highWordAddress, /* [in] */ CorDebugRegister lowWordRegister, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanSetIP( + + virtual HRESULT STDMETHODCALLTYPE CanSetIP( /* [in] */ ULONG32 nOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugNativeFrameVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugNativeFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugNativeFrame * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugNativeFrame * This); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugCode **ppCode); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugNativeFrame * This, /* [out] */ mdMethodDef *pToken); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugNativeFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetIP) - HRESULT ( STDMETHODCALLTYPE *GetIP )( + + HRESULT ( STDMETHODCALLTYPE *GetIP )( ICorDebugNativeFrame * This, /* [out] */ ULONG32 *pnOffset); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame, SetIP) - HRESULT ( STDMETHODCALLTYPE *SetIP )( + + HRESULT ( STDMETHODCALLTYPE *SetIP )( ICorDebugNativeFrame * This, /* [in] */ ULONG32 nOffset); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetRegisterSet) - HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( + + HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugRegisterSet **ppRegisters); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalRegisterValue) - HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterValue )( ICorDebugNativeFrame * This, /* [in] */ CorDebugRegister reg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalDoubleRegisterValue) - HRESULT ( STDMETHODCALLTYPE *GetLocalDoubleRegisterValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalDoubleRegisterValue )( ICorDebugNativeFrame * This, /* [in] */ CorDebugRegister highWordReg, /* [in] */ CorDebugRegister lowWordReg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalMemoryValue) - HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryValue )( ICorDebugNativeFrame * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalRegisterMemoryValue) - HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterMemoryValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterMemoryValue )( ICorDebugNativeFrame * This, /* [in] */ CorDebugRegister highWordReg, /* [in] */ CORDB_ADDRESS lowWordAddress, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalMemoryRegisterValue) - HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryRegisterValue )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryRegisterValue )( ICorDebugNativeFrame * This, /* [in] */ CORDB_ADDRESS highWordAddress, /* [in] */ CorDebugRegister lowWordRegister, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame, CanSetIP) - HRESULT ( STDMETHODCALLTYPE *CanSetIP )( + + HRESULT ( STDMETHODCALLTYPE *CanSetIP )( ICorDebugNativeFrame * This, /* [in] */ ULONG32 nOffset); - + END_INTERFACE } ICorDebugNativeFrameVtbl; @@ -12263,89 +11655,89 @@ EXTERN_C const IID IID_ICorDebugNativeFrame; CONST_VTBL struct ICorDebugNativeFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugNativeFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugNativeFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugNativeFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugNativeFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugNativeFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugNativeFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugNativeFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugNativeFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugNativeFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugNativeFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugNativeFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugNativeFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugNativeFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugNativeFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugNativeFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugNativeFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugNativeFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugNativeFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugNativeFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugNativeFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugNativeFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugNativeFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) -#define ICorDebugNativeFrame_GetIP(This,pnOffset) \ - ( (This)->lpVtbl -> GetIP(This,pnOffset) ) +#define ICorDebugNativeFrame_GetIP(This,pnOffset) \ + ( (This)->lpVtbl -> GetIP(This,pnOffset) ) -#define ICorDebugNativeFrame_SetIP(This,nOffset) \ - ( (This)->lpVtbl -> SetIP(This,nOffset) ) +#define ICorDebugNativeFrame_SetIP(This,nOffset) \ + ( (This)->lpVtbl -> SetIP(This,nOffset) ) -#define ICorDebugNativeFrame_GetRegisterSet(This,ppRegisters) \ - ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) +#define ICorDebugNativeFrame_GetRegisterSet(This,ppRegisters) \ + ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) -#define ICorDebugNativeFrame_GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_CanSetIP(This,nOffset) \ - ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) +#define ICorDebugNativeFrame_CanSetIP(This,nOffset) \ + ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugNativeFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugNativeFrame_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0072 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0072_v0_0_c_ifspec; @@ -12355,67 +11747,61 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0072_v0_0_s_ifspec; #define __ICorDebugNativeFrame2_INTERFACE_DEFINED__ /* interface ICorDebugNativeFrame2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugNativeFrame2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("35389FF1-3684-4c55-A2EE-210F26C60E5E") ICorDebugNativeFrame2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsChild( + virtual HRESULT STDMETHODCALLTYPE IsChild( /* [out] */ BOOL *pIsChild) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsMatchingParentFrame( + + virtual HRESULT STDMETHODCALLTYPE IsMatchingParentFrame( /* [in] */ ICorDebugNativeFrame2 *pPotentialParentFrame, /* [out] */ BOOL *pIsParent) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackParameterSize( + + virtual HRESULT STDMETHODCALLTYPE GetStackParameterSize( /* [out] */ ULONG32 *pSize) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugNativeFrame2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugNativeFrame2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugNativeFrame2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugNativeFrame2 * This); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame2, IsChild) - HRESULT ( STDMETHODCALLTYPE *IsChild )( + + HRESULT ( STDMETHODCALLTYPE *IsChild )( ICorDebugNativeFrame2 * This, /* [out] */ BOOL *pIsChild); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame2, IsMatchingParentFrame) - HRESULT ( STDMETHODCALLTYPE *IsMatchingParentFrame )( + + HRESULT ( STDMETHODCALLTYPE *IsMatchingParentFrame )( ICorDebugNativeFrame2 * This, /* [in] */ ICorDebugNativeFrame2 *pPotentialParentFrame, /* [out] */ BOOL *pIsParent); - - DECLSPEC_XFGVIRT(ICorDebugNativeFrame2, GetStackParameterSize) - HRESULT ( STDMETHODCALLTYPE *GetStackParameterSize )( + + HRESULT ( STDMETHODCALLTYPE *GetStackParameterSize )( ICorDebugNativeFrame2 * This, /* [out] */ ULONG32 *pSize); - + END_INTERFACE } ICorDebugNativeFrame2Vtbl; @@ -12424,90 +11810,86 @@ EXTERN_C const IID IID_ICorDebugNativeFrame2; CONST_VTBL struct ICorDebugNativeFrame2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugNativeFrame2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugNativeFrame2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugNativeFrame2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugNativeFrame2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugNativeFrame2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugNativeFrame2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugNativeFrame2_IsChild(This,pIsChild) \ - ( (This)->lpVtbl -> IsChild(This,pIsChild) ) +#define ICorDebugNativeFrame2_IsChild(This,pIsChild) \ + ( (This)->lpVtbl -> IsChild(This,pIsChild) ) -#define ICorDebugNativeFrame2_IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) \ - ( (This)->lpVtbl -> IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) ) +#define ICorDebugNativeFrame2_IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) \ + ( (This)->lpVtbl -> IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) ) -#define ICorDebugNativeFrame2_GetStackParameterSize(This,pSize) \ - ( (This)->lpVtbl -> GetStackParameterSize(This,pSize) ) +#define ICorDebugNativeFrame2_GetStackParameterSize(This,pSize) \ + ( (This)->lpVtbl -> GetStackParameterSize(This,pSize) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugNativeFrame2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugNativeFrame2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModule3_INTERFACE_DEFINED__ #define __ICorDebugModule3_INTERFACE_DEFINED__ /* interface ICorDebugModule3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("86F012BF-FF15-4372-BD30-B6F11CAAE1DD") ICorDebugModule3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateReaderForInMemorySymbols( + virtual HRESULT STDMETHODCALLTYPE CreateReaderForInMemorySymbols( /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppObj) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModule3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule3 * This); - - DECLSPEC_XFGVIRT(ICorDebugModule3, CreateReaderForInMemorySymbols) - HRESULT ( STDMETHODCALLTYPE *CreateReaderForInMemorySymbols )( + + HRESULT ( STDMETHODCALLTYPE *CreateReaderForInMemorySymbols )( ICorDebugModule3 * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppObj); - + END_INTERFACE } ICorDebugModule3Vtbl; @@ -12516,82 +11898,78 @@ EXTERN_C const IID IID_ICorDebugModule3; CONST_VTBL struct ICorDebugModule3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModule3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModule3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModule3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModule3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModule3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModule3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModule3_CreateReaderForInMemorySymbols(This,riid,ppObj) \ - ( (This)->lpVtbl -> CreateReaderForInMemorySymbols(This,riid,ppObj) ) +#define ICorDebugModule3_CreateReaderForInMemorySymbols(This,riid,ppObj) \ + ( (This)->lpVtbl -> CreateReaderForInMemorySymbols(This,riid,ppObj) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModule3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModule3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModule4_INTERFACE_DEFINED__ #define __ICorDebugModule4_INTERFACE_DEFINED__ /* interface ICorDebugModule4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FF8B8EAF-25CD-4316-8859-84416DE4402E") ICorDebugModule4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsMappedLayout( + virtual HRESULT STDMETHODCALLTYPE IsMappedLayout( /* [out] */ BOOL *pIsMapped) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModule4Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule4 * This); - - DECLSPEC_XFGVIRT(ICorDebugModule4, IsMappedLayout) - HRESULT ( STDMETHODCALLTYPE *IsMappedLayout )( + + HRESULT ( STDMETHODCALLTYPE *IsMappedLayout )( ICorDebugModule4 * This, /* [out] */ BOOL *pIsMapped); - + END_INTERFACE } ICorDebugModule4Vtbl; @@ -12600,115 +11978,104 @@ EXTERN_C const IID IID_ICorDebugModule4; CONST_VTBL struct ICorDebugModule4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModule4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModule4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModule4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModule4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModule4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModule4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModule4_IsMappedLayout(This,pIsMapped) \ - ( (This)->lpVtbl -> IsMappedLayout(This,pIsMapped) ) +#define ICorDebugModule4_IsMappedLayout(This,pIsMapped) \ + ( (This)->lpVtbl -> IsMappedLayout(This,pIsMapped) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModule4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModule4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugRuntimeUnwindableFrame_INTERFACE_DEFINED__ #define __ICorDebugRuntimeUnwindableFrame_INTERFACE_DEFINED__ /* interface ICorDebugRuntimeUnwindableFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRuntimeUnwindableFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("879CAC0A-4A53-4668-B8E3-CB8473CB187F") ICorDebugRuntimeUnwindableFrame : public ICorDebugFrame { public: }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRuntimeUnwindableFrameVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRuntimeUnwindableFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRuntimeUnwindableFrame * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRuntimeUnwindableFrame * This); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugChain **ppChain); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugCode **ppCode); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ mdMethodDef *pToken); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - + END_INTERFACE } ICorDebugRuntimeUnwindableFrameVtbl; @@ -12717,248 +12084,228 @@ EXTERN_C const IID IID_ICorDebugRuntimeUnwindableFrame; CONST_VTBL struct ICorDebugRuntimeUnwindableFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRuntimeUnwindableFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRuntimeUnwindableFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRuntimeUnwindableFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRuntimeUnwindableFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRuntimeUnwindableFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRuntimeUnwindableFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRuntimeUnwindableFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugRuntimeUnwindableFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugRuntimeUnwindableFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugRuntimeUnwindableFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugRuntimeUnwindableFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugRuntimeUnwindableFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugRuntimeUnwindableFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugRuntimeUnwindableFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugRuntimeUnwindableFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugRuntimeUnwindableFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugRuntimeUnwindableFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugRuntimeUnwindableFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugRuntimeUnwindableFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugRuntimeUnwindableFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugRuntimeUnwindableFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugRuntimeUnwindableFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRuntimeUnwindableFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRuntimeUnwindableFrame_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModule_INTERFACE_DEFINED__ #define __ICorDebugModule_INTERFACE_DEFINED__ /* interface ICorDebugModule */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("dba2d8c1-e5c5-4069-8c13-10a7c6abf43d") ICorDebugModule : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( + + virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssembly( + + virtual HRESULT STDMETHODCALLTYPE GetAssembly( /* [out] */ ICorDebugAssembly **ppAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableJITDebugging( + + virtual HRESULT STDMETHODCALLTYPE EnableJITDebugging( /* [in] */ BOOL bTrackJITInfo, /* [in] */ BOOL bAllowJitOpts) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableClassLoadCallbacks( + + virtual HRESULT STDMETHODCALLTYPE EnableClassLoadCallbacks( /* [in] */ BOOL bClassLoadCallbacks) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken( /* [in] */ mdMethodDef methodDef, /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionFromRVA( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionFromRVA( /* [in] */ CORDB_ADDRESS rva, /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClassFromToken( + + virtual HRESULT STDMETHODCALLTYPE GetClassFromToken( /* [in] */ mdTypeDef typeDef, /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [out] */ ICorDebugModuleBreakpoint **ppBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEditAndContinueSnapshot( + + virtual HRESULT STDMETHODCALLTYPE GetEditAndContinueSnapshot( /* [out] */ ICorDebugEditAndContinueSnapshot **ppEditAndContinueSnapshot) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMetaDataInterface( + + virtual HRESULT STDMETHODCALLTYPE GetMetaDataInterface( /* [in] */ REFIID riid, /* [out] */ IUnknown **ppObj) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdModule *pToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsDynamic( + + virtual HRESULT STDMETHODCALLTYPE IsDynamic( /* [out] */ BOOL *pDynamic) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGlobalVariableValue( + + virtual HRESULT STDMETHODCALLTYPE GetGlobalVariableValue( /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcBytes) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsInMemory( + + virtual HRESULT STDMETHODCALLTYPE IsInMemory( /* [out] */ BOOL *pInMemory) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModuleVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule * This); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetProcess) - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugModule * This, /* [out] */ ICorDebugProcess **ppProcess); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetBaseAddress) - HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( ICorDebugModule * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetAssembly) - HRESULT ( STDMETHODCALLTYPE *GetAssembly )( + + HRESULT ( STDMETHODCALLTYPE *GetAssembly )( ICorDebugModule * This, /* [out] */ ICorDebugAssembly **ppAssembly); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetName) - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugModule * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugModule, EnableJITDebugging) - HRESULT ( STDMETHODCALLTYPE *EnableJITDebugging )( + + HRESULT ( STDMETHODCALLTYPE *EnableJITDebugging )( ICorDebugModule * This, /* [in] */ BOOL bTrackJITInfo, /* [in] */ BOOL bAllowJitOpts); - - DECLSPEC_XFGVIRT(ICorDebugModule, EnableClassLoadCallbacks) - HRESULT ( STDMETHODCALLTYPE *EnableClassLoadCallbacks )( + + HRESULT ( STDMETHODCALLTYPE *EnableClassLoadCallbacks )( ICorDebugModule * This, /* [in] */ BOOL bClassLoadCallbacks); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetFunctionFromToken) - HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( ICorDebugModule * This, /* [in] */ mdMethodDef methodDef, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetFunctionFromRVA) - HRESULT ( STDMETHODCALLTYPE *GetFunctionFromRVA )( + + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromRVA )( ICorDebugModule * This, /* [in] */ CORDB_ADDRESS rva, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetClassFromToken) - HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( + + HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( ICorDebugModule * This, /* [in] */ mdTypeDef typeDef, /* [out] */ ICorDebugClass **ppClass); - - DECLSPEC_XFGVIRT(ICorDebugModule, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugModule * This, /* [out] */ ICorDebugModuleBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetEditAndContinueSnapshot) - HRESULT ( STDMETHODCALLTYPE *GetEditAndContinueSnapshot )( + + HRESULT ( STDMETHODCALLTYPE *GetEditAndContinueSnapshot )( ICorDebugModule * This, /* [out] */ ICorDebugEditAndContinueSnapshot **ppEditAndContinueSnapshot); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetMetaDataInterface) - HRESULT ( STDMETHODCALLTYPE *GetMetaDataInterface )( + + HRESULT ( STDMETHODCALLTYPE *GetMetaDataInterface )( ICorDebugModule * This, /* [in] */ REFIID riid, /* [out] */ IUnknown **ppObj); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetToken) - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugModule * This, /* [out] */ mdModule *pToken); - - DECLSPEC_XFGVIRT(ICorDebugModule, IsDynamic) - HRESULT ( STDMETHODCALLTYPE *IsDynamic )( + + HRESULT ( STDMETHODCALLTYPE *IsDynamic )( ICorDebugModule * This, /* [out] */ BOOL *pDynamic); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetGlobalVariableValue) - HRESULT ( STDMETHODCALLTYPE *GetGlobalVariableValue )( + + HRESULT ( STDMETHODCALLTYPE *GetGlobalVariableValue )( ICorDebugModule * This, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugModule, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugModule * This, /* [out] */ ULONG32 *pcBytes); - - DECLSPEC_XFGVIRT(ICorDebugModule, IsInMemory) - HRESULT ( STDMETHODCALLTYPE *IsInMemory )( + + HRESULT ( STDMETHODCALLTYPE *IsInMemory )( ICorDebugModule * This, /* [out] */ BOOL *pInMemory); - + END_INTERFACE } ICorDebugModuleVtbl; @@ -12967,85 +12314,85 @@ EXTERN_C const IID IID_ICorDebugModule; CONST_VTBL struct ICorDebugModuleVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModule_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModule_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModule_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModule_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModule_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModule_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModule_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) +#define ICorDebugModule_GetProcess(This,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) -#define ICorDebugModule_GetBaseAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) +#define ICorDebugModule_GetBaseAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) -#define ICorDebugModule_GetAssembly(This,ppAssembly) \ - ( (This)->lpVtbl -> GetAssembly(This,ppAssembly) ) +#define ICorDebugModule_GetAssembly(This,ppAssembly) \ + ( (This)->lpVtbl -> GetAssembly(This,ppAssembly) ) -#define ICorDebugModule_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugModule_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugModule_EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) \ - ( (This)->lpVtbl -> EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) ) +#define ICorDebugModule_EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) \ + ( (This)->lpVtbl -> EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) ) -#define ICorDebugModule_EnableClassLoadCallbacks(This,bClassLoadCallbacks) \ - ( (This)->lpVtbl -> EnableClassLoadCallbacks(This,bClassLoadCallbacks) ) +#define ICorDebugModule_EnableClassLoadCallbacks(This,bClassLoadCallbacks) \ + ( (This)->lpVtbl -> EnableClassLoadCallbacks(This,bClassLoadCallbacks) ) -#define ICorDebugModule_GetFunctionFromToken(This,methodDef,ppFunction) \ - ( (This)->lpVtbl -> GetFunctionFromToken(This,methodDef,ppFunction) ) +#define ICorDebugModule_GetFunctionFromToken(This,methodDef,ppFunction) \ + ( (This)->lpVtbl -> GetFunctionFromToken(This,methodDef,ppFunction) ) -#define ICorDebugModule_GetFunctionFromRVA(This,rva,ppFunction) \ - ( (This)->lpVtbl -> GetFunctionFromRVA(This,rva,ppFunction) ) +#define ICorDebugModule_GetFunctionFromRVA(This,rva,ppFunction) \ + ( (This)->lpVtbl -> GetFunctionFromRVA(This,rva,ppFunction) ) -#define ICorDebugModule_GetClassFromToken(This,typeDef,ppClass) \ - ( (This)->lpVtbl -> GetClassFromToken(This,typeDef,ppClass) ) +#define ICorDebugModule_GetClassFromToken(This,typeDef,ppClass) \ + ( (This)->lpVtbl -> GetClassFromToken(This,typeDef,ppClass) ) -#define ICorDebugModule_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugModule_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugModule_GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) \ - ( (This)->lpVtbl -> GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) ) +#define ICorDebugModule_GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) \ + ( (This)->lpVtbl -> GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) ) -#define ICorDebugModule_GetMetaDataInterface(This,riid,ppObj) \ - ( (This)->lpVtbl -> GetMetaDataInterface(This,riid,ppObj) ) +#define ICorDebugModule_GetMetaDataInterface(This,riid,ppObj) \ + ( (This)->lpVtbl -> GetMetaDataInterface(This,riid,ppObj) ) -#define ICorDebugModule_GetToken(This,pToken) \ - ( (This)->lpVtbl -> GetToken(This,pToken) ) +#define ICorDebugModule_GetToken(This,pToken) \ + ( (This)->lpVtbl -> GetToken(This,pToken) ) -#define ICorDebugModule_IsDynamic(This,pDynamic) \ - ( (This)->lpVtbl -> IsDynamic(This,pDynamic) ) +#define ICorDebugModule_IsDynamic(This,pDynamic) \ + ( (This)->lpVtbl -> IsDynamic(This,pDynamic) ) -#define ICorDebugModule_GetGlobalVariableValue(This,fieldDef,ppValue) \ - ( (This)->lpVtbl -> GetGlobalVariableValue(This,fieldDef,ppValue) ) +#define ICorDebugModule_GetGlobalVariableValue(This,fieldDef,ppValue) \ + ( (This)->lpVtbl -> GetGlobalVariableValue(This,fieldDef,ppValue) ) -#define ICorDebugModule_GetSize(This,pcBytes) \ - ( (This)->lpVtbl -> GetSize(This,pcBytes) ) +#define ICorDebugModule_GetSize(This,pcBytes) \ + ( (This)->lpVtbl -> GetSize(This,pcBytes) ) -#define ICorDebugModule_IsInMemory(This,pInMemory) \ - ( (This)->lpVtbl -> IsInMemory(This,pInMemory) ) +#define ICorDebugModule_IsInMemory(This,pInMemory) \ + ( (This)->lpVtbl -> IsInMemory(This,pInMemory) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModule_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModule_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0077 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -13057,93 +12404,85 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0077_v0_0_s_ifspec; #define __ICorDebugModule2_INTERFACE_DEFINED__ /* interface ICorDebugModule2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("7FCC5FB5-49C0-41de-9938-3B88B5B9ADD7") ICorDebugModule2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( + virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( /* [in] */ BOOL bIsJustMyCode, /* [in] */ ULONG32 cTokens, /* [size_is][in] */ mdToken pTokens[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE ApplyChanges( + + virtual HRESULT STDMETHODCALLTYPE ApplyChanges( /* [in] */ ULONG cbMetadata, /* [size_is][in] */ BYTE pbMetadata[ ], /* [in] */ ULONG cbIL, /* [size_is][in] */ BYTE pbIL[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetJITCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE SetJITCompilerFlags( /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetJITCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE GetJITCompilerFlags( /* [out] */ DWORD *pdwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE ResolveAssembly( + + virtual HRESULT STDMETHODCALLTYPE ResolveAssembly( /* [in] */ mdToken tkAssemblyRef, /* [out] */ ICorDebugAssembly **ppAssembly) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModule2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule2 * This); - - DECLSPEC_XFGVIRT(ICorDebugModule2, SetJMCStatus) - HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( + + HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( ICorDebugModule2 * This, /* [in] */ BOOL bIsJustMyCode, /* [in] */ ULONG32 cTokens, /* [size_is][in] */ mdToken pTokens[ ]); - - DECLSPEC_XFGVIRT(ICorDebugModule2, ApplyChanges) - HRESULT ( STDMETHODCALLTYPE *ApplyChanges )( + + HRESULT ( STDMETHODCALLTYPE *ApplyChanges )( ICorDebugModule2 * This, /* [in] */ ULONG cbMetadata, /* [size_is][in] */ BYTE pbMetadata[ ], /* [in] */ ULONG cbIL, /* [size_is][in] */ BYTE pbIL[ ]); - - DECLSPEC_XFGVIRT(ICorDebugModule2, SetJITCompilerFlags) - HRESULT ( STDMETHODCALLTYPE *SetJITCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *SetJITCompilerFlags )( ICorDebugModule2 * This, /* [in] */ DWORD dwFlags); - - DECLSPEC_XFGVIRT(ICorDebugModule2, GetJITCompilerFlags) - HRESULT ( STDMETHODCALLTYPE *GetJITCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetJITCompilerFlags )( ICorDebugModule2 * This, /* [out] */ DWORD *pdwFlags); - - DECLSPEC_XFGVIRT(ICorDebugModule2, ResolveAssembly) - HRESULT ( STDMETHODCALLTYPE *ResolveAssembly )( + + HRESULT ( STDMETHODCALLTYPE *ResolveAssembly )( ICorDebugModule2 * This, /* [in] */ mdToken tkAssemblyRef, /* [out] */ ICorDebugAssembly **ppAssembly); - + END_INTERFACE } ICorDebugModule2Vtbl; @@ -13152,150 +12491,139 @@ EXTERN_C const IID IID_ICorDebugModule2; CONST_VTBL struct ICorDebugModule2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModule2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModule2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModule2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModule2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModule2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModule2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModule2_SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) \ - ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) ) +#define ICorDebugModule2_SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) \ + ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) ) -#define ICorDebugModule2_ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) \ - ( (This)->lpVtbl -> ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) ) +#define ICorDebugModule2_ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) \ + ( (This)->lpVtbl -> ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) ) -#define ICorDebugModule2_SetJITCompilerFlags(This,dwFlags) \ - ( (This)->lpVtbl -> SetJITCompilerFlags(This,dwFlags) ) +#define ICorDebugModule2_SetJITCompilerFlags(This,dwFlags) \ + ( (This)->lpVtbl -> SetJITCompilerFlags(This,dwFlags) ) -#define ICorDebugModule2_GetJITCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetJITCompilerFlags(This,pdwFlags) ) +#define ICorDebugModule2_GetJITCompilerFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> GetJITCompilerFlags(This,pdwFlags) ) -#define ICorDebugModule2_ResolveAssembly(This,tkAssemblyRef,ppAssembly) \ - ( (This)->lpVtbl -> ResolveAssembly(This,tkAssemblyRef,ppAssembly) ) +#define ICorDebugModule2_ResolveAssembly(This,tkAssemblyRef,ppAssembly) \ + ( (This)->lpVtbl -> ResolveAssembly(This,tkAssemblyRef,ppAssembly) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModule2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModule2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunction_INTERFACE_DEFINED__ #define __ICorDebugFunction_INTERFACE_DEFINED__ /* interface ICorDebugFunction */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF3-8A68-11d2-983C-0000F808342D") ICorDebugFunction : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClass( + + virtual HRESULT STDMETHODCALLTYPE GetClass( /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdMethodDef *pMethodDef) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetILCode( + + virtual HRESULT STDMETHODCALLTYPE GetILCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNativeCode( + + virtual HRESULT STDMETHODCALLTYPE GetNativeCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( + + virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( /* [out] */ mdSignature *pmdSig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentVersionNumber( + + virtual HRESULT STDMETHODCALLTYPE GetCurrentVersionNumber( /* [out] */ ULONG32 *pnCurrentVersion) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunctionVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction * This); - - DECLSPEC_XFGVIRT(ICorDebugFunction, GetModule) - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugFunction * This, /* [out] */ ICorDebugModule **ppModule); - - DECLSPEC_XFGVIRT(ICorDebugFunction, GetClass) - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugFunction * This, /* [out] */ ICorDebugClass **ppClass); - - DECLSPEC_XFGVIRT(ICorDebugFunction, GetToken) - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugFunction * This, /* [out] */ mdMethodDef *pMethodDef); - - DECLSPEC_XFGVIRT(ICorDebugFunction, GetILCode) - HRESULT ( STDMETHODCALLTYPE *GetILCode )( + + HRESULT ( STDMETHODCALLTYPE *GetILCode )( ICorDebugFunction * This, /* [out] */ ICorDebugCode **ppCode); - - DECLSPEC_XFGVIRT(ICorDebugFunction, GetNativeCode) - HRESULT ( STDMETHODCALLTYPE *GetNativeCode )( + + HRESULT ( STDMETHODCALLTYPE *GetNativeCode )( ICorDebugFunction * This, /* [out] */ ICorDebugCode **ppCode); - - DECLSPEC_XFGVIRT(ICorDebugFunction, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugFunction * This, /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugFunction, GetLocalVarSigToken) - HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( ICorDebugFunction * This, /* [out] */ mdSignature *pmdSig); - - DECLSPEC_XFGVIRT(ICorDebugFunction, GetCurrentVersionNumber) - HRESULT ( STDMETHODCALLTYPE *GetCurrentVersionNumber )( + + HRESULT ( STDMETHODCALLTYPE *GetCurrentVersionNumber )( ICorDebugFunction * This, /* [out] */ ULONG32 *pnCurrentVersion); - + END_INTERFACE } ICorDebugFunctionVtbl; @@ -13304,127 +12632,120 @@ EXTERN_C const IID IID_ICorDebugFunction; CONST_VTBL struct ICorDebugFunctionVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFunction_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunction_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunction_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunction_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunction_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunction_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunction_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) +#define ICorDebugFunction_GetModule(This,ppModule) \ + ( (This)->lpVtbl -> GetModule(This,ppModule) ) -#define ICorDebugFunction_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) +#define ICorDebugFunction_GetClass(This,ppClass) \ + ( (This)->lpVtbl -> GetClass(This,ppClass) ) -#define ICorDebugFunction_GetToken(This,pMethodDef) \ - ( (This)->lpVtbl -> GetToken(This,pMethodDef) ) +#define ICorDebugFunction_GetToken(This,pMethodDef) \ + ( (This)->lpVtbl -> GetToken(This,pMethodDef) ) -#define ICorDebugFunction_GetILCode(This,ppCode) \ - ( (This)->lpVtbl -> GetILCode(This,ppCode) ) +#define ICorDebugFunction_GetILCode(This,ppCode) \ + ( (This)->lpVtbl -> GetILCode(This,ppCode) ) -#define ICorDebugFunction_GetNativeCode(This,ppCode) \ - ( (This)->lpVtbl -> GetNativeCode(This,ppCode) ) +#define ICorDebugFunction_GetNativeCode(This,ppCode) \ + ( (This)->lpVtbl -> GetNativeCode(This,ppCode) ) -#define ICorDebugFunction_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugFunction_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugFunction_GetLocalVarSigToken(This,pmdSig) \ - ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) +#define ICorDebugFunction_GetLocalVarSigToken(This,pmdSig) \ + ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) -#define ICorDebugFunction_GetCurrentVersionNumber(This,pnCurrentVersion) \ - ( (This)->lpVtbl -> GetCurrentVersionNumber(This,pnCurrentVersion) ) +#define ICorDebugFunction_GetCurrentVersionNumber(This,pnCurrentVersion) \ + ( (This)->lpVtbl -> GetCurrentVersionNumber(This,pnCurrentVersion) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunction_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunction2_INTERFACE_DEFINED__ #define __ICorDebugFunction2_INTERFACE_DEFINED__ /* interface ICorDebugFunction2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("EF0C490B-94C3-4e4d-B629-DDC134C532D8") ICorDebugFunction2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( + virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( /* [in] */ BOOL bIsJustMyCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetJMCStatus( + + virtual HRESULT STDMETHODCALLTYPE GetJMCStatus( /* [out] */ BOOL *pbIsJustMyCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateNativeCode( + + virtual HRESULT STDMETHODCALLTYPE EnumerateNativeCode( /* [out] */ ICorDebugCodeEnum **ppCodeEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( + + virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( /* [out] */ ULONG32 *pnVersion) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunction2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction2 * This); - - DECLSPEC_XFGVIRT(ICorDebugFunction2, SetJMCStatus) - HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( + + HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( ICorDebugFunction2 * This, /* [in] */ BOOL bIsJustMyCode); - - DECLSPEC_XFGVIRT(ICorDebugFunction2, GetJMCStatus) - HRESULT ( STDMETHODCALLTYPE *GetJMCStatus )( + + HRESULT ( STDMETHODCALLTYPE *GetJMCStatus )( ICorDebugFunction2 * This, /* [out] */ BOOL *pbIsJustMyCode); - - DECLSPEC_XFGVIRT(ICorDebugFunction2, EnumerateNativeCode) - HRESULT ( STDMETHODCALLTYPE *EnumerateNativeCode )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateNativeCode )( ICorDebugFunction2 * This, /* [out] */ ICorDebugCodeEnum **ppCodeEnum); - - DECLSPEC_XFGVIRT(ICorDebugFunction2, GetVersionNumber) - HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( + + HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( ICorDebugFunction2 * This, /* [out] */ ULONG32 *pnVersion); - + END_INTERFACE } ICorDebugFunction2Vtbl; @@ -13433,91 +12754,87 @@ EXTERN_C const IID IID_ICorDebugFunction2; CONST_VTBL struct ICorDebugFunction2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFunction2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunction2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunction2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunction2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunction2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunction2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunction2_SetJMCStatus(This,bIsJustMyCode) \ - ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) +#define ICorDebugFunction2_SetJMCStatus(This,bIsJustMyCode) \ + ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) -#define ICorDebugFunction2_GetJMCStatus(This,pbIsJustMyCode) \ - ( (This)->lpVtbl -> GetJMCStatus(This,pbIsJustMyCode) ) +#define ICorDebugFunction2_GetJMCStatus(This,pbIsJustMyCode) \ + ( (This)->lpVtbl -> GetJMCStatus(This,pbIsJustMyCode) ) -#define ICorDebugFunction2_EnumerateNativeCode(This,ppCodeEnum) \ - ( (This)->lpVtbl -> EnumerateNativeCode(This,ppCodeEnum) ) +#define ICorDebugFunction2_EnumerateNativeCode(This,ppCodeEnum) \ + ( (This)->lpVtbl -> EnumerateNativeCode(This,ppCodeEnum) ) -#define ICorDebugFunction2_GetVersionNumber(This,pnVersion) \ - ( (This)->lpVtbl -> GetVersionNumber(This,pnVersion) ) +#define ICorDebugFunction2_GetVersionNumber(This,pnVersion) \ + ( (This)->lpVtbl -> GetVersionNumber(This,pnVersion) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunction2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunction3_INTERFACE_DEFINED__ #define __ICorDebugFunction3_INTERFACE_DEFINED__ /* interface ICorDebugFunction3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("09B70F28-E465-482D-99E0-81A165EB0532") ICorDebugFunction3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetActiveReJitRequestILCode( + virtual HRESULT STDMETHODCALLTYPE GetActiveReJitRequestILCode( ICorDebugILCode **ppReJitedILCode) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunction3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction3 * This); - - DECLSPEC_XFGVIRT(ICorDebugFunction3, GetActiveReJitRequestILCode) - HRESULT ( STDMETHODCALLTYPE *GetActiveReJitRequestILCode )( + + HRESULT ( STDMETHODCALLTYPE *GetActiveReJitRequestILCode )( ICorDebugFunction3 * This, ICorDebugILCode **ppReJitedILCode); - + END_INTERFACE } ICorDebugFunction3Vtbl; @@ -13526,82 +12843,78 @@ EXTERN_C const IID IID_ICorDebugFunction3; CONST_VTBL struct ICorDebugFunction3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFunction3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunction3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunction3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunction3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunction3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunction3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunction3_GetActiveReJitRequestILCode(This,ppReJitedILCode) \ - ( (This)->lpVtbl -> GetActiveReJitRequestILCode(This,ppReJitedILCode) ) +#define ICorDebugFunction3_GetActiveReJitRequestILCode(This,ppReJitedILCode) \ + ( (This)->lpVtbl -> GetActiveReJitRequestILCode(This,ppReJitedILCode) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunction3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunction4_INTERFACE_DEFINED__ #define __ICorDebugFunction4_INTERFACE_DEFINED__ /* interface ICorDebugFunction4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("72965963-34fd-46e9-9434-b817fe6e7f43") ICorDebugFunction4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateNativeBreakpoint( + virtual HRESULT STDMETHODCALLTYPE CreateNativeBreakpoint( ICorDebugFunctionBreakpoint **ppBreakpoint) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunction4Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction4 * This); - - DECLSPEC_XFGVIRT(ICorDebugFunction4, CreateNativeBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateNativeBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateNativeBreakpoint )( ICorDebugFunction4 * This, ICorDebugFunctionBreakpoint **ppBreakpoint); - + END_INTERFACE } ICorDebugFunction4Vtbl; @@ -13610,257 +12923,152 @@ EXTERN_C const IID IID_ICorDebugFunction4; CONST_VTBL struct ICorDebugFunction4Vtbl *lpVtbl; }; - - -#ifdef COBJMACROS - - -#define ICorDebugFunction4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICorDebugFunction4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICorDebugFunction4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICorDebugFunction4_CreateNativeBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateNativeBreakpoint(This,ppBreakpoint) ) - -#endif /* COBJMACROS */ - -#endif /* C style interface */ - - - - -#endif /* __ICorDebugFunction4_INTERFACE_DEFINED__ */ - - -#ifndef __ICorDebugFunction5_INTERFACE_DEFINED__ -#define __ICorDebugFunction5_INTERFACE_DEFINED__ - -/* interface ICorDebugFunction5 */ -/* [unique][uuid][local][object] */ - - -EXTERN_C const IID IID_ICorDebugFunction5; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("9D4DAB7B-3401-4F37-BD08-CA09F3FDF10F") - ICorDebugFunction5 : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE DisableOptimizations( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE AreOptimizationsDisabled( - BOOL *pOptimizationsDisabled) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICorDebugFunction5Vtbl - { - BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICorDebugFunction5 * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICorDebugFunction5 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( - ICorDebugFunction5 * This); - - DECLSPEC_XFGVIRT(ICorDebugFunction5, DisableOptimizations) - HRESULT ( STDMETHODCALLTYPE *DisableOptimizations )( - ICorDebugFunction5 * This); - - DECLSPEC_XFGVIRT(ICorDebugFunction5, AreOptimizationsDisabled) - HRESULT ( STDMETHODCALLTYPE *AreOptimizationsDisabled )( - ICorDebugFunction5 * This, - BOOL *pOptimizationsDisabled); - - END_INTERFACE - } ICorDebugFunction5Vtbl; - - interface ICorDebugFunction5 - { - CONST_VTBL struct ICorDebugFunction5Vtbl *lpVtbl; - }; - - #ifdef COBJMACROS -#define ICorDebugFunction5_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunction4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunction5_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunction4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunction5_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunction4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunction5_DisableOptimizations(This) \ - ( (This)->lpVtbl -> DisableOptimizations(This) ) - -#define ICorDebugFunction5_AreOptimizationsDisabled(This,pOptimizationsDisabled) \ - ( (This)->lpVtbl -> AreOptimizationsDisabled(This,pOptimizationsDisabled) ) +#define ICorDebugFunction4_CreateNativeBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateNativeBreakpoint(This,ppBreakpoint) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunction5_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCode_INTERFACE_DEFINED__ #define __ICorDebugCode_INTERFACE_DEFINED__ /* interface ICorDebugCode */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCode; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF4-8A68-11d2-983C-0000F808342D") ICorDebugCode : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsIL( + virtual HRESULT STDMETHODCALLTYPE IsIL( /* [out] */ BOOL *pbIL) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunction( + + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAddress( + + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pStart) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcBytes) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [in] */ ULONG32 offset, /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCode( + + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [in] */ ULONG32 startOffset, /* [in] */ ULONG32 endOffset, /* [in] */ ULONG32 cBufferAlloc, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *pcBufferSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( + + virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( /* [out] */ ULONG32 *nVersion) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping( + + virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping( /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEnCRemapSequencePoints( + + virtual HRESULT STDMETHODCALLTYPE GetEnCRemapSequencePoints( /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ ULONG32 offsets[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCodeVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode * This); - - DECLSPEC_XFGVIRT(ICorDebugCode, IsIL) - HRESULT ( STDMETHODCALLTYPE *IsIL )( + + HRESULT ( STDMETHODCALLTYPE *IsIL )( ICorDebugCode * This, /* [out] */ BOOL *pbIL); - - DECLSPEC_XFGVIRT(ICorDebugCode, GetFunction) - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugCode * This, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugCode, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugCode * This, /* [out] */ CORDB_ADDRESS *pStart); - - DECLSPEC_XFGVIRT(ICorDebugCode, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugCode * This, /* [out] */ ULONG32 *pcBytes); - - DECLSPEC_XFGVIRT(ICorDebugCode, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugCode * This, /* [in] */ ULONG32 offset, /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugCode, GetCode) - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugCode * This, /* [in] */ ULONG32 startOffset, /* [in] */ ULONG32 endOffset, /* [in] */ ULONG32 cBufferAlloc, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *pcBufferSize); - - DECLSPEC_XFGVIRT(ICorDebugCode, GetVersionNumber) - HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( + + HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( ICorDebugCode * This, /* [out] */ ULONG32 *nVersion); - - DECLSPEC_XFGVIRT(ICorDebugCode, GetILToNativeMapping) - HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( + + HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( ICorDebugCode * This, /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]); - - DECLSPEC_XFGVIRT(ICorDebugCode, GetEnCRemapSequencePoints) - HRESULT ( STDMETHODCALLTYPE *GetEnCRemapSequencePoints )( + + HRESULT ( STDMETHODCALLTYPE *GetEnCRemapSequencePoints )( ICorDebugCode * This, /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ ULONG32 offsets[ ]); - + END_INTERFACE } ICorDebugCodeVtbl; @@ -13869,124 +13077,119 @@ EXTERN_C const IID IID_ICorDebugCode; CONST_VTBL struct ICorDebugCodeVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCode_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCode_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCode_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCode_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCode_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCode_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCode_IsIL(This,pbIL) \ - ( (This)->lpVtbl -> IsIL(This,pbIL) ) +#define ICorDebugCode_IsIL(This,pbIL) \ + ( (This)->lpVtbl -> IsIL(This,pbIL) ) -#define ICorDebugCode_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugCode_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugCode_GetAddress(This,pStart) \ - ( (This)->lpVtbl -> GetAddress(This,pStart) ) +#define ICorDebugCode_GetAddress(This,pStart) \ + ( (This)->lpVtbl -> GetAddress(This,pStart) ) -#define ICorDebugCode_GetSize(This,pcBytes) \ - ( (This)->lpVtbl -> GetSize(This,pcBytes) ) +#define ICorDebugCode_GetSize(This,pcBytes) \ + ( (This)->lpVtbl -> GetSize(This,pcBytes) ) -#define ICorDebugCode_CreateBreakpoint(This,offset,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,offset,ppBreakpoint) ) +#define ICorDebugCode_CreateBreakpoint(This,offset,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,offset,ppBreakpoint) ) -#define ICorDebugCode_GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) \ - ( (This)->lpVtbl -> GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) ) +#define ICorDebugCode_GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) \ + ( (This)->lpVtbl -> GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) ) -#define ICorDebugCode_GetVersionNumber(This,nVersion) \ - ( (This)->lpVtbl -> GetVersionNumber(This,nVersion) ) +#define ICorDebugCode_GetVersionNumber(This,nVersion) \ + ( (This)->lpVtbl -> GetVersionNumber(This,nVersion) ) -#define ICorDebugCode_GetILToNativeMapping(This,cMap,pcMap,map) \ - ( (This)->lpVtbl -> GetILToNativeMapping(This,cMap,pcMap,map) ) +#define ICorDebugCode_GetILToNativeMapping(This,cMap,pcMap,map) \ + ( (This)->lpVtbl -> GetILToNativeMapping(This,cMap,pcMap,map) ) -#define ICorDebugCode_GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) \ - ( (This)->lpVtbl -> GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) ) +#define ICorDebugCode_GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) \ + ( (This)->lpVtbl -> GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCode_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCode_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCode2_INTERFACE_DEFINED__ #define __ICorDebugCode2_INTERFACE_DEFINED__ /* interface ICorDebugCode2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ typedef struct _CodeChunkInfo { CORDB_ADDRESS startAddr; ULONG32 length; - } CodeChunkInfo; + } CodeChunkInfo; EXTERN_C const IID IID_ICorDebugCode2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5F696509-452F-4436-A3FE-4D11FE7E2347") ICorDebugCode2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCodeChunks( + virtual HRESULT STDMETHODCALLTYPE GetCodeChunks( /* [in] */ ULONG32 cbufSize, /* [out] */ ULONG32 *pcnumChunks, /* [length_is][size_is][out] */ CodeChunkInfo chunks[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE GetCompilerFlags( /* [out] */ DWORD *pdwFlags) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCode2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode2 * This); - - DECLSPEC_XFGVIRT(ICorDebugCode2, GetCodeChunks) - HRESULT ( STDMETHODCALLTYPE *GetCodeChunks )( + + HRESULT ( STDMETHODCALLTYPE *GetCodeChunks )( ICorDebugCode2 * This, /* [in] */ ULONG32 cbufSize, /* [out] */ ULONG32 *pcnumChunks, /* [length_is][size_is][out] */ CodeChunkInfo chunks[ ]); - - DECLSPEC_XFGVIRT(ICorDebugCode2, GetCompilerFlags) - HRESULT ( STDMETHODCALLTYPE *GetCompilerFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetCompilerFlags )( ICorDebugCode2 * This, /* [out] */ DWORD *pdwFlags); - + END_INTERFACE } ICorDebugCode2Vtbl; @@ -13995,91 +13198,87 @@ EXTERN_C const IID IID_ICorDebugCode2; CONST_VTBL struct ICorDebugCode2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCode2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCode2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCode2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCode2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCode2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCode2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCode2_GetCodeChunks(This,cbufSize,pcnumChunks,chunks) \ - ( (This)->lpVtbl -> GetCodeChunks(This,cbufSize,pcnumChunks,chunks) ) +#define ICorDebugCode2_GetCodeChunks(This,cbufSize,pcnumChunks,chunks) \ + ( (This)->lpVtbl -> GetCodeChunks(This,cbufSize,pcnumChunks,chunks) ) -#define ICorDebugCode2_GetCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetCompilerFlags(This,pdwFlags) ) +#define ICorDebugCode2_GetCompilerFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> GetCompilerFlags(This,pdwFlags) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCode2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCode2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCode3_INTERFACE_DEFINED__ #define __ICorDebugCode3_INTERFACE_DEFINED__ /* interface ICorDebugCode3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCode3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D13D3E88-E1F2-4020-AA1D-3D162DCBE966") ICorDebugCode3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetReturnValueLiveOffset( + virtual HRESULT STDMETHODCALLTYPE GetReturnValueLiveOffset( /* [in] */ ULONG32 ILoffset, /* [in] */ ULONG32 bufferSize, /* [out] */ ULONG32 *pFetched, /* [length_is][size_is][out] */ ULONG32 pOffsets[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCode3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode3 * This); - - DECLSPEC_XFGVIRT(ICorDebugCode3, GetReturnValueLiveOffset) - HRESULT ( STDMETHODCALLTYPE *GetReturnValueLiveOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetReturnValueLiveOffset )( ICorDebugCode3 * This, /* [in] */ ULONG32 ILoffset, /* [in] */ ULONG32 bufferSize, /* [out] */ ULONG32 *pFetched, /* [length_is][size_is][out] */ ULONG32 pOffsets[ ]); - + END_INTERFACE } ICorDebugCode3Vtbl; @@ -14088,82 +13287,78 @@ EXTERN_C const IID IID_ICorDebugCode3; CONST_VTBL struct ICorDebugCode3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCode3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCode3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCode3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCode3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCode3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCode3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCode3_GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) \ - ( (This)->lpVtbl -> GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) ) +#define ICorDebugCode3_GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) \ + ( (This)->lpVtbl -> GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCode3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCode3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCode4_INTERFACE_DEFINED__ #define __ICorDebugCode4_INTERFACE_DEFINED__ /* interface ICorDebugCode4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCode4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("18221fa4-20cb-40fa-b19d-9f91c4fa8c14") ICorDebugCode4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateVariableHomes( + virtual HRESULT STDMETHODCALLTYPE EnumerateVariableHomes( /* [out] */ ICorDebugVariableHomeEnum **ppEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCode4Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode4 * This); - - DECLSPEC_XFGVIRT(ICorDebugCode4, EnumerateVariableHomes) - HRESULT ( STDMETHODCALLTYPE *EnumerateVariableHomes )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateVariableHomes )( ICorDebugCode4 * This, /* [out] */ ICorDebugVariableHomeEnum **ppEnum); - + END_INTERFACE } ICorDebugCode4Vtbl; @@ -14172,40 +13367,40 @@ EXTERN_C const IID IID_ICorDebugCode4; CONST_VTBL struct ICorDebugCode4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCode4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCode4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCode4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCode4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCode4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCode4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCode4_EnumerateVariableHomes(This,ppEnum) \ - ( (This)->lpVtbl -> EnumerateVariableHomes(This,ppEnum) ) +#define ICorDebugCode4_EnumerateVariableHomes(This,ppEnum) \ + ( (This)->lpVtbl -> EnumerateVariableHomes(This,ppEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCode4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCode4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILCode_INTERFACE_DEFINED__ #define __ICorDebugILCode_INTERFACE_DEFINED__ /* interface ICorDebugILCode */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ typedef struct _CorDebugEHClause { @@ -14216,53 +13411,49 @@ typedef struct _CorDebugEHClause ULONG32 HandlerLength; ULONG32 ClassToken; ULONG32 FilterOffset; - } CorDebugEHClause; + } CorDebugEHClause; EXTERN_C const IID IID_ICorDebugILCode; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("598D46C2-C877-42A7-89D2-3D0C7F1C1264") ICorDebugILCode : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetEHClauses( + virtual HRESULT STDMETHODCALLTYPE GetEHClauses( /* [in] */ ULONG32 cClauses, /* [out] */ ULONG32 *pcClauses, /* [length_is][size_is][out] */ CorDebugEHClause clauses[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILCodeVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILCode * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILCode * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILCode * This); - - DECLSPEC_XFGVIRT(ICorDebugILCode, GetEHClauses) - HRESULT ( STDMETHODCALLTYPE *GetEHClauses )( + + HRESULT ( STDMETHODCALLTYPE *GetEHClauses )( ICorDebugILCode * This, /* [in] */ ULONG32 cClauses, /* [out] */ ULONG32 *pcClauses, /* [length_is][size_is][out] */ CorDebugEHClause clauses[ ]); - + END_INTERFACE } ICorDebugILCodeVtbl; @@ -14271,94 +13462,89 @@ EXTERN_C const IID IID_ICorDebugILCode; CONST_VTBL struct ICorDebugILCodeVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILCode_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILCode_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILCode_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILCode_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILCode_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILCode_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILCode_GetEHClauses(This,cClauses,pcClauses,clauses) \ - ( (This)->lpVtbl -> GetEHClauses(This,cClauses,pcClauses,clauses) ) +#define ICorDebugILCode_GetEHClauses(This,cClauses,pcClauses,clauses) \ + ( (This)->lpVtbl -> GetEHClauses(This,cClauses,pcClauses,clauses) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILCode_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILCode_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILCode2_INTERFACE_DEFINED__ #define __ICorDebugILCode2_INTERFACE_DEFINED__ /* interface ICorDebugILCode2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILCode2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("46586093-D3F5-4DB6-ACDB-955BCE228C15") ICorDebugILCode2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( + virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( /* [out] */ mdSignature *pmdSig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInstrumentedILMap( + + virtual HRESULT STDMETHODCALLTYPE GetInstrumentedILMap( /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_IL_MAP map[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILCode2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILCode2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILCode2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILCode2 * This); - - DECLSPEC_XFGVIRT(ICorDebugILCode2, GetLocalVarSigToken) - HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( + + HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( ICorDebugILCode2 * This, /* [out] */ mdSignature *pmdSig); - - DECLSPEC_XFGVIRT(ICorDebugILCode2, GetInstrumentedILMap) - HRESULT ( STDMETHODCALLTYPE *GetInstrumentedILMap )( + + HRESULT ( STDMETHODCALLTYPE *GetInstrumentedILMap )( ICorDebugILCode2 * This, /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_IL_MAP map[ ]); - + END_INTERFACE } ICorDebugILCode2Vtbl; @@ -14367,105 +13553,99 @@ EXTERN_C const IID IID_ICorDebugILCode2; CONST_VTBL struct ICorDebugILCode2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILCode2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILCode2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILCode2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILCode2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILCode2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILCode2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILCode2_GetLocalVarSigToken(This,pmdSig) \ - ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) +#define ICorDebugILCode2_GetLocalVarSigToken(This,pmdSig) \ + ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) -#define ICorDebugILCode2_GetInstrumentedILMap(This,cMap,pcMap,map) \ - ( (This)->lpVtbl -> GetInstrumentedILMap(This,cMap,pcMap,map) ) +#define ICorDebugILCode2_GetInstrumentedILMap(This,cMap,pcMap,map) \ + ( (This)->lpVtbl -> GetInstrumentedILMap(This,cMap,pcMap,map) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILCode2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILCode2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugClass_INTERFACE_DEFINED__ #define __ICorDebugClass_INTERFACE_DEFINED__ /* interface ICorDebugClass */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugClass; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF5-8A68-11d2-983C-0000F808342D") ICorDebugClass : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **pModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdTypeDef *pTypeDef) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( + + virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugClassVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugClass * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugClass * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugClass * This); - - DECLSPEC_XFGVIRT(ICorDebugClass, GetModule) - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugClass * This, /* [out] */ ICorDebugModule **pModule); - - DECLSPEC_XFGVIRT(ICorDebugClass, GetToken) - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugClass * This, /* [out] */ mdTypeDef *pTypeDef); - - DECLSPEC_XFGVIRT(ICorDebugClass, GetStaticFieldValue) - HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( + + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( ICorDebugClass * This, /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugClassVtbl; @@ -14474,102 +13654,97 @@ EXTERN_C const IID IID_ICorDebugClass; CONST_VTBL struct ICorDebugClassVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugClass_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugClass_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugClass_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugClass_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugClass_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugClass_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugClass_GetModule(This,pModule) \ - ( (This)->lpVtbl -> GetModule(This,pModule) ) +#define ICorDebugClass_GetModule(This,pModule) \ + ( (This)->lpVtbl -> GetModule(This,pModule) ) -#define ICorDebugClass_GetToken(This,pTypeDef) \ - ( (This)->lpVtbl -> GetToken(This,pTypeDef) ) +#define ICorDebugClass_GetToken(This,pTypeDef) \ + ( (This)->lpVtbl -> GetToken(This,pTypeDef) ) -#define ICorDebugClass_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ - ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) +#define ICorDebugClass_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ + ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugClass_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugClass_INTERFACE_DEFINED__ */ #ifndef __ICorDebugClass2_INTERFACE_DEFINED__ #define __ICorDebugClass2_INTERFACE_DEFINED__ /* interface ICorDebugClass2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugClass2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("B008EA8D-7AB1-43f7-BB20-FBB5A04038AE") ICorDebugClass2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetParameterizedType( + virtual HRESULT STDMETHODCALLTYPE GetParameterizedType( /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( + + virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( /* [in] */ BOOL bIsJustMyCode) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugClass2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugClass2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugClass2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugClass2 * This); - - DECLSPEC_XFGVIRT(ICorDebugClass2, GetParameterizedType) - HRESULT ( STDMETHODCALLTYPE *GetParameterizedType )( + + HRESULT ( STDMETHODCALLTYPE *GetParameterizedType )( ICorDebugClass2 * This, /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType); - - DECLSPEC_XFGVIRT(ICorDebugClass2, SetJMCStatus) - HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( + + HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( ICorDebugClass2 * This, /* [in] */ BOOL bIsJustMyCode); - + END_INTERFACE } ICorDebugClass2Vtbl; @@ -14578,175 +13753,162 @@ EXTERN_C const IID IID_ICorDebugClass2; CONST_VTBL struct ICorDebugClass2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugClass2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugClass2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugClass2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugClass2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugClass2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugClass2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugClass2_GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) \ - ( (This)->lpVtbl -> GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) ) +#define ICorDebugClass2_GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) \ + ( (This)->lpVtbl -> GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) ) -#define ICorDebugClass2_SetJMCStatus(This,bIsJustMyCode) \ - ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) +#define ICorDebugClass2_SetJMCStatus(This,bIsJustMyCode) \ + ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugClass2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugClass2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugEval_INTERFACE_DEFINED__ #define __ICorDebugEval_INTERFACE_DEFINED__ /* interface ICorDebugEval */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEval; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF6-8A68-11d2-983C-0000F808342D") ICorDebugEval : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CallFunction( + virtual HRESULT STDMETHODCALLTYPE CallFunction( /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewObject( + + virtual HRESULT STDMETHODCALLTYPE NewObject( /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewObjectNoConstructor( + + virtual HRESULT STDMETHODCALLTYPE NewObjectNoConstructor( /* [in] */ ICorDebugClass *pClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewString( + + virtual HRESULT STDMETHODCALLTYPE NewString( /* [in] */ LPCWSTR string) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewArray( + + virtual HRESULT STDMETHODCALLTYPE NewArray( /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsActive( + + virtual HRESULT STDMETHODCALLTYPE IsActive( /* [out] */ BOOL *pbActive) = 0; - + virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetResult( + + virtual HRESULT STDMETHODCALLTYPE GetResult( /* [out] */ ICorDebugValue **ppResult) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThread( + + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateValue( + + virtual HRESULT STDMETHODCALLTYPE CreateValue( /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEvalVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEval * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEval * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEval * This); - - DECLSPEC_XFGVIRT(ICorDebugEval, CallFunction) - HRESULT ( STDMETHODCALLTYPE *CallFunction )( + + HRESULT ( STDMETHODCALLTYPE *CallFunction )( ICorDebugEval * This, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - DECLSPEC_XFGVIRT(ICorDebugEval, NewObject) - HRESULT ( STDMETHODCALLTYPE *NewObject )( + + HRESULT ( STDMETHODCALLTYPE *NewObject )( ICorDebugEval * This, /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - DECLSPEC_XFGVIRT(ICorDebugEval, NewObjectNoConstructor) - HRESULT ( STDMETHODCALLTYPE *NewObjectNoConstructor )( + + HRESULT ( STDMETHODCALLTYPE *NewObjectNoConstructor )( ICorDebugEval * This, /* [in] */ ICorDebugClass *pClass); - - DECLSPEC_XFGVIRT(ICorDebugEval, NewString) - HRESULT ( STDMETHODCALLTYPE *NewString )( + + HRESULT ( STDMETHODCALLTYPE *NewString )( ICorDebugEval * This, /* [in] */ LPCWSTR string); - - DECLSPEC_XFGVIRT(ICorDebugEval, NewArray) - HRESULT ( STDMETHODCALLTYPE *NewArray )( + + HRESULT ( STDMETHODCALLTYPE *NewArray )( ICorDebugEval * This, /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]); - - DECLSPEC_XFGVIRT(ICorDebugEval, IsActive) - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugEval * This, /* [out] */ BOOL *pbActive); - - DECLSPEC_XFGVIRT(ICorDebugEval, Abort) - HRESULT ( STDMETHODCALLTYPE *Abort )( + + HRESULT ( STDMETHODCALLTYPE *Abort )( ICorDebugEval * This); - - DECLSPEC_XFGVIRT(ICorDebugEval, GetResult) - HRESULT ( STDMETHODCALLTYPE *GetResult )( + + HRESULT ( STDMETHODCALLTYPE *GetResult )( ICorDebugEval * This, /* [out] */ ICorDebugValue **ppResult); - - DECLSPEC_XFGVIRT(ICorDebugEval, GetThread) - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugEval * This, /* [out] */ ICorDebugThread **ppThread); - - DECLSPEC_XFGVIRT(ICorDebugEval, CreateValue) - HRESULT ( STDMETHODCALLTYPE *CreateValue )( + + HRESULT ( STDMETHODCALLTYPE *CreateValue )( ICorDebugEval * This, /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugEvalVtbl; @@ -14755,185 +13917,175 @@ EXTERN_C const IID IID_ICorDebugEval; CONST_VTBL struct ICorDebugEvalVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEval_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEval_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEval_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEval_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEval_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEval_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEval_CallFunction(This,pFunction,nArgs,ppArgs) \ - ( (This)->lpVtbl -> CallFunction(This,pFunction,nArgs,ppArgs) ) +#define ICorDebugEval_CallFunction(This,pFunction,nArgs,ppArgs) \ + ( (This)->lpVtbl -> CallFunction(This,pFunction,nArgs,ppArgs) ) -#define ICorDebugEval_NewObject(This,pConstructor,nArgs,ppArgs) \ - ( (This)->lpVtbl -> NewObject(This,pConstructor,nArgs,ppArgs) ) +#define ICorDebugEval_NewObject(This,pConstructor,nArgs,ppArgs) \ + ( (This)->lpVtbl -> NewObject(This,pConstructor,nArgs,ppArgs) ) -#define ICorDebugEval_NewObjectNoConstructor(This,pClass) \ - ( (This)->lpVtbl -> NewObjectNoConstructor(This,pClass) ) +#define ICorDebugEval_NewObjectNoConstructor(This,pClass) \ + ( (This)->lpVtbl -> NewObjectNoConstructor(This,pClass) ) -#define ICorDebugEval_NewString(This,string) \ - ( (This)->lpVtbl -> NewString(This,string) ) +#define ICorDebugEval_NewString(This,string) \ + ( (This)->lpVtbl -> NewString(This,string) ) -#define ICorDebugEval_NewArray(This,elementType,pElementClass,rank,dims,lowBounds) \ - ( (This)->lpVtbl -> NewArray(This,elementType,pElementClass,rank,dims,lowBounds) ) +#define ICorDebugEval_NewArray(This,elementType,pElementClass,rank,dims,lowBounds) \ + ( (This)->lpVtbl -> NewArray(This,elementType,pElementClass,rank,dims,lowBounds) ) -#define ICorDebugEval_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugEval_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugEval_Abort(This) \ - ( (This)->lpVtbl -> Abort(This) ) +#define ICorDebugEval_Abort(This) \ + ( (This)->lpVtbl -> Abort(This) ) -#define ICorDebugEval_GetResult(This,ppResult) \ - ( (This)->lpVtbl -> GetResult(This,ppResult) ) +#define ICorDebugEval_GetResult(This,ppResult) \ + ( (This)->lpVtbl -> GetResult(This,ppResult) ) -#define ICorDebugEval_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugEval_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) -#define ICorDebugEval_CreateValue(This,elementType,pElementClass,ppValue) \ - ( (This)->lpVtbl -> CreateValue(This,elementType,pElementClass,ppValue) ) +#define ICorDebugEval_CreateValue(This,elementType,pElementClass,ppValue) \ + ( (This)->lpVtbl -> CreateValue(This,elementType,pElementClass,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEval_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEval_INTERFACE_DEFINED__ */ #ifndef __ICorDebugEval2_INTERFACE_DEFINED__ #define __ICorDebugEval2_INTERFACE_DEFINED__ /* interface ICorDebugEval2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEval2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FB0D9CE7-BE66-4683-9D32-A42A04E2FD91") ICorDebugEval2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CallParameterizedFunction( + virtual HRESULT STDMETHODCALLTYPE CallParameterizedFunction( /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateValueForType( + + virtual HRESULT STDMETHODCALLTYPE CreateValueForType( /* [in] */ ICorDebugType *pType, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewParameterizedObject( + + virtual HRESULT STDMETHODCALLTYPE NewParameterizedObject( /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewParameterizedObjectNoConstructor( + + virtual HRESULT STDMETHODCALLTYPE NewParameterizedObjectNoConstructor( /* [in] */ ICorDebugClass *pClass, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewParameterizedArray( + + virtual HRESULT STDMETHODCALLTYPE NewParameterizedArray( /* [in] */ ICorDebugType *pElementType, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewStringWithLength( + + virtual HRESULT STDMETHODCALLTYPE NewStringWithLength( /* [in] */ LPCWSTR string, /* [in] */ UINT uiLength) = 0; - + virtual HRESULT STDMETHODCALLTYPE RudeAbort( void) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEval2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEval2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEval2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEval2 * This); - - DECLSPEC_XFGVIRT(ICorDebugEval2, CallParameterizedFunction) - HRESULT ( STDMETHODCALLTYPE *CallParameterizedFunction )( + + HRESULT ( STDMETHODCALLTYPE *CallParameterizedFunction )( ICorDebugEval2 * This, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - DECLSPEC_XFGVIRT(ICorDebugEval2, CreateValueForType) - HRESULT ( STDMETHODCALLTYPE *CreateValueForType )( + + HRESULT ( STDMETHODCALLTYPE *CreateValueForType )( ICorDebugEval2 * This, /* [in] */ ICorDebugType *pType, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugEval2, NewParameterizedObject) - HRESULT ( STDMETHODCALLTYPE *NewParameterizedObject )( + + HRESULT ( STDMETHODCALLTYPE *NewParameterizedObject )( ICorDebugEval2 * This, /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - DECLSPEC_XFGVIRT(ICorDebugEval2, NewParameterizedObjectNoConstructor) - HRESULT ( STDMETHODCALLTYPE *NewParameterizedObjectNoConstructor )( + + HRESULT ( STDMETHODCALLTYPE *NewParameterizedObjectNoConstructor )( ICorDebugEval2 * This, /* [in] */ ICorDebugClass *pClass, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ]); - - DECLSPEC_XFGVIRT(ICorDebugEval2, NewParameterizedArray) - HRESULT ( STDMETHODCALLTYPE *NewParameterizedArray )( + + HRESULT ( STDMETHODCALLTYPE *NewParameterizedArray )( ICorDebugEval2 * This, /* [in] */ ICorDebugType *pElementType, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]); - - DECLSPEC_XFGVIRT(ICorDebugEval2, NewStringWithLength) - HRESULT ( STDMETHODCALLTYPE *NewStringWithLength )( + + HRESULT ( STDMETHODCALLTYPE *NewStringWithLength )( ICorDebugEval2 * This, /* [in] */ LPCWSTR string, /* [in] */ UINT uiLength); - - DECLSPEC_XFGVIRT(ICorDebugEval2, RudeAbort) - HRESULT ( STDMETHODCALLTYPE *RudeAbort )( + + HRESULT ( STDMETHODCALLTYPE *RudeAbort )( ICorDebugEval2 * This); - + END_INTERFACE } ICorDebugEval2Vtbl; @@ -14942,124 +14094,117 @@ EXTERN_C const IID IID_ICorDebugEval2; CONST_VTBL struct ICorDebugEval2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEval2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEval2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEval2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEval2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEval2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEval2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEval2_CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ - ( (This)->lpVtbl -> CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) +#define ICorDebugEval2_CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ + ( (This)->lpVtbl -> CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) -#define ICorDebugEval2_CreateValueForType(This,pType,ppValue) \ - ( (This)->lpVtbl -> CreateValueForType(This,pType,ppValue) ) +#define ICorDebugEval2_CreateValueForType(This,pType,ppValue) \ + ( (This)->lpVtbl -> CreateValueForType(This,pType,ppValue) ) -#define ICorDebugEval2_NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ - ( (This)->lpVtbl -> NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) +#define ICorDebugEval2_NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ + ( (This)->lpVtbl -> NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) -#define ICorDebugEval2_NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) \ - ( (This)->lpVtbl -> NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) ) +#define ICorDebugEval2_NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) \ + ( (This)->lpVtbl -> NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) ) -#define ICorDebugEval2_NewParameterizedArray(This,pElementType,rank,dims,lowBounds) \ - ( (This)->lpVtbl -> NewParameterizedArray(This,pElementType,rank,dims,lowBounds) ) +#define ICorDebugEval2_NewParameterizedArray(This,pElementType,rank,dims,lowBounds) \ + ( (This)->lpVtbl -> NewParameterizedArray(This,pElementType,rank,dims,lowBounds) ) -#define ICorDebugEval2_NewStringWithLength(This,string,uiLength) \ - ( (This)->lpVtbl -> NewStringWithLength(This,string,uiLength) ) +#define ICorDebugEval2_NewStringWithLength(This,string,uiLength) \ + ( (This)->lpVtbl -> NewStringWithLength(This,string,uiLength) ) -#define ICorDebugEval2_RudeAbort(This) \ - ( (This)->lpVtbl -> RudeAbort(This) ) +#define ICorDebugEval2_RudeAbort(This) \ + ( (This)->lpVtbl -> RudeAbort(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEval2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEval2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValue_INTERFACE_DEFINED__ #define __ICorDebugValue_INTERFACE_DEFINED__ /* interface ICorDebugValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF7-8A68-11d2-983C-0000F808342D") ICorDebugValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetType( + virtual HRESULT STDMETHODCALLTYPE GetType( /* [out] */ CorElementType *pType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAddress( + + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValue * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugValue * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - + END_INTERFACE } ICorDebugValueVtbl; @@ -15068,91 +14213,87 @@ EXTERN_C const IID IID_ICorDebugValue; CONST_VTBL struct ICorDebugValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValue2_INTERFACE_DEFINED__ #define __ICorDebugValue2_INTERFACE_DEFINED__ /* interface ICorDebugValue2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValue2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5E0B54E7-D88A-4626-9420-A691E0A78B49") ICorDebugValue2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetExactType( + virtual HRESULT STDMETHODCALLTYPE GetExactType( /* [out] */ ICorDebugType **ppType) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValue2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValue2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValue2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValue2 * This); - - DECLSPEC_XFGVIRT(ICorDebugValue2, GetExactType) - HRESULT ( STDMETHODCALLTYPE *GetExactType )( + + HRESULT ( STDMETHODCALLTYPE *GetExactType )( ICorDebugValue2 * This, /* [out] */ ICorDebugType **ppType); - + END_INTERFACE } ICorDebugValue2Vtbl; @@ -15161,82 +14302,78 @@ EXTERN_C const IID IID_ICorDebugValue2; CONST_VTBL struct ICorDebugValue2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValue2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValue2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValue2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValue2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValue2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValue2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValue2_GetExactType(This,ppType) \ - ( (This)->lpVtbl -> GetExactType(This,ppType) ) +#define ICorDebugValue2_GetExactType(This,ppType) \ + ( (This)->lpVtbl -> GetExactType(This,ppType) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValue2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValue2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValue3_INTERFACE_DEFINED__ #define __ICorDebugValue3_INTERFACE_DEFINED__ /* interface ICorDebugValue3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValue3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("565005FC-0F8A-4F3E-9EDB-83102B156595") ICorDebugValue3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetSize64( + virtual HRESULT STDMETHODCALLTYPE GetSize64( /* [out] */ ULONG64 *pSize) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValue3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValue3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValue3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValue3 * This); - - DECLSPEC_XFGVIRT(ICorDebugValue3, GetSize64) - HRESULT ( STDMETHODCALLTYPE *GetSize64 )( + + HRESULT ( STDMETHODCALLTYPE *GetSize64 )( ICorDebugValue3 * This, /* [out] */ ULONG64 *pSize); - + END_INTERFACE } ICorDebugValue3Vtbl; @@ -15245,110 +14382,101 @@ EXTERN_C const IID IID_ICorDebugValue3; CONST_VTBL struct ICorDebugValue3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValue3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValue3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValue3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValue3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValue3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValue3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValue3_GetSize64(This,pSize) \ - ( (This)->lpVtbl -> GetSize64(This,pSize) ) +#define ICorDebugValue3_GetSize64(This,pSize) \ + ( (This)->lpVtbl -> GetSize64(This,pSize) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValue3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValue3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugGenericValue_INTERFACE_DEFINED__ #define __ICorDebugGenericValue_INTERFACE_DEFINED__ /* interface ICorDebugGenericValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugGenericValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF8-8A68-11d2-983C-0000F808342D") ICorDebugGenericValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE GetValue( + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [out] */ void *pTo) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetValue( + + virtual HRESULT STDMETHODCALLTYPE SetValue( /* [in] */ void *pFrom) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugGenericValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugGenericValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugGenericValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugGenericValue * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugGenericValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugGenericValue * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugGenericValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugGenericValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugGenericValue, GetValue) - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugGenericValue * This, /* [out] */ void *pTo); - - DECLSPEC_XFGVIRT(ICorDebugGenericValue, SetValue) - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugGenericValue * This, /* [in] */ void *pFrom); - + END_INTERFACE } ICorDebugGenericValueVtbl; @@ -15357,150 +14485,138 @@ EXTERN_C const IID IID_ICorDebugGenericValue; CONST_VTBL struct ICorDebugGenericValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugGenericValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugGenericValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugGenericValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugGenericValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugGenericValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugGenericValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugGenericValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugGenericValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugGenericValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugGenericValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugGenericValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugGenericValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugGenericValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugGenericValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugGenericValue_GetValue(This,pTo) \ - ( (This)->lpVtbl -> GetValue(This,pTo) ) +#define ICorDebugGenericValue_GetValue(This,pTo) \ + ( (This)->lpVtbl -> GetValue(This,pTo) ) -#define ICorDebugGenericValue_SetValue(This,pFrom) \ - ( (This)->lpVtbl -> SetValue(This,pFrom) ) +#define ICorDebugGenericValue_SetValue(This,pFrom) \ + ( (This)->lpVtbl -> SetValue(This,pFrom) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugGenericValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugGenericValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugReferenceValue_INTERFACE_DEFINED__ #define __ICorDebugReferenceValue_INTERFACE_DEFINED__ /* interface ICorDebugReferenceValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugReferenceValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF9-8A68-11d2-983C-0000F808342D") ICorDebugReferenceValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE IsNull( + virtual HRESULT STDMETHODCALLTYPE IsNull( /* [out] */ BOOL *pbNull) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetValue( + + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [out] */ CORDB_ADDRESS *pValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetValue( + + virtual HRESULT STDMETHODCALLTYPE SetValue( /* [in] */ CORDB_ADDRESS value) = 0; - - virtual HRESULT STDMETHODCALLTYPE Dereference( + + virtual HRESULT STDMETHODCALLTYPE Dereference( /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE DereferenceStrong( + + virtual HRESULT STDMETHODCALLTYPE DereferenceStrong( /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugReferenceValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugReferenceValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugReferenceValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugReferenceValue * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugReferenceValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugReferenceValue * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugReferenceValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugReferenceValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, IsNull) - HRESULT ( STDMETHODCALLTYPE *IsNull )( + + HRESULT ( STDMETHODCALLTYPE *IsNull )( ICorDebugReferenceValue * This, /* [out] */ BOOL *pbNull); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, GetValue) - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugReferenceValue * This, /* [out] */ CORDB_ADDRESS *pValue); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, SetValue) - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugReferenceValue * This, /* [in] */ CORDB_ADDRESS value); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, Dereference) - HRESULT ( STDMETHODCALLTYPE *Dereference )( + + HRESULT ( STDMETHODCALLTYPE *Dereference )( ICorDebugReferenceValue * This, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, DereferenceStrong) - HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( + + HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( ICorDebugReferenceValue * This, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugReferenceValueVtbl; @@ -15509,135 +14625,126 @@ EXTERN_C const IID IID_ICorDebugReferenceValue; CONST_VTBL struct ICorDebugReferenceValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugReferenceValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugReferenceValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugReferenceValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugReferenceValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugReferenceValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugReferenceValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugReferenceValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugReferenceValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugReferenceValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugReferenceValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugReferenceValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugReferenceValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugReferenceValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugReferenceValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugReferenceValue_IsNull(This,pbNull) \ - ( (This)->lpVtbl -> IsNull(This,pbNull) ) +#define ICorDebugReferenceValue_IsNull(This,pbNull) \ + ( (This)->lpVtbl -> IsNull(This,pbNull) ) -#define ICorDebugReferenceValue_GetValue(This,pValue) \ - ( (This)->lpVtbl -> GetValue(This,pValue) ) +#define ICorDebugReferenceValue_GetValue(This,pValue) \ + ( (This)->lpVtbl -> GetValue(This,pValue) ) -#define ICorDebugReferenceValue_SetValue(This,value) \ - ( (This)->lpVtbl -> SetValue(This,value) ) +#define ICorDebugReferenceValue_SetValue(This,value) \ + ( (This)->lpVtbl -> SetValue(This,value) ) -#define ICorDebugReferenceValue_Dereference(This,ppValue) \ - ( (This)->lpVtbl -> Dereference(This,ppValue) ) +#define ICorDebugReferenceValue_Dereference(This,ppValue) \ + ( (This)->lpVtbl -> Dereference(This,ppValue) ) -#define ICorDebugReferenceValue_DereferenceStrong(This,ppValue) \ - ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) +#define ICorDebugReferenceValue_DereferenceStrong(This,ppValue) \ + ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugReferenceValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugReferenceValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHeapValue_INTERFACE_DEFINED__ #define __ICorDebugHeapValue_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAFA-8A68-11d2-983C-0000F808342D") ICorDebugHeapValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE IsValid( + virtual HRESULT STDMETHODCALLTYPE IsValid( /* [out] */ BOOL *pbValid) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRelocBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateRelocBreakpoint( /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugHeapValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugHeapValue * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugHeapValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugHeapValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue, IsValid) - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugHeapValue * This, /* [out] */ BOOL *pbValid); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue, CreateRelocBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugHeapValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - + END_INTERFACE } ICorDebugHeapValueVtbl; @@ -15646,100 +14753,96 @@ EXTERN_C const IID IID_ICorDebugHeapValue; CONST_VTBL struct ICorDebugHeapValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugHeapValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugHeapValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugHeapValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugHeapValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugHeapValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugHeapValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugHeapValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugHeapValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) +#define ICorDebugHeapValue_IsValid(This,pbValid) \ + ( (This)->lpVtbl -> IsValid(This,pbValid) ) -#define ICorDebugHeapValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) +#define ICorDebugHeapValue_CreateRelocBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHeapValue2_INTERFACE_DEFINED__ #define __ICorDebugHeapValue2_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("E3AC4D6C-9CB7-43e6-96CC-B21540E5083C") ICorDebugHeapValue2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateHandle( + virtual HRESULT STDMETHODCALLTYPE CreateHandle( /* [in] */ CorDebugHandleType type, /* [out] */ ICorDebugHandleValue **ppHandle) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapValue2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue2 * This); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue2, CreateHandle) - HRESULT ( STDMETHODCALLTYPE *CreateHandle )( + + HRESULT ( STDMETHODCALLTYPE *CreateHandle )( ICorDebugHeapValue2 * This, /* [in] */ CorDebugHandleType type, /* [out] */ ICorDebugHandleValue **ppHandle); - + END_INTERFACE } ICorDebugHeapValue2Vtbl; @@ -15748,92 +14851,87 @@ EXTERN_C const IID IID_ICorDebugHeapValue2; CONST_VTBL struct ICorDebugHeapValue2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapValue2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapValue2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapValue2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapValue2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapValue2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapValue2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapValue2_CreateHandle(This,type,ppHandle) \ - ( (This)->lpVtbl -> CreateHandle(This,type,ppHandle) ) +#define ICorDebugHeapValue2_CreateHandle(This,type,ppHandle) \ + ( (This)->lpVtbl -> CreateHandle(This,type,ppHandle) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapValue2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapValue2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHeapValue3_INTERFACE_DEFINED__ #define __ICorDebugHeapValue3_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A69ACAD8-2374-46e9-9FF8-B1F14120D296") ICorDebugHeapValue3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetThreadOwningMonitorLock( + virtual HRESULT STDMETHODCALLTYPE GetThreadOwningMonitorLock( /* [out] */ ICorDebugThread **ppThread, /* [out] */ DWORD *pAcquisitionCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMonitorEventWaitList( + + virtual HRESULT STDMETHODCALLTYPE GetMonitorEventWaitList( /* [out] */ ICorDebugThreadEnum **ppThreadEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapValue3Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue3 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue3 * This); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue3, GetThreadOwningMonitorLock) - HRESULT ( STDMETHODCALLTYPE *GetThreadOwningMonitorLock )( + + HRESULT ( STDMETHODCALLTYPE *GetThreadOwningMonitorLock )( ICorDebugHeapValue3 * This, /* [out] */ ICorDebugThread **ppThread, /* [out] */ DWORD *pAcquisitionCount); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue3, GetMonitorEventWaitList) - HRESULT ( STDMETHODCALLTYPE *GetMonitorEventWaitList )( + + HRESULT ( STDMETHODCALLTYPE *GetMonitorEventWaitList )( ICorDebugHeapValue3 * This, /* [out] */ ICorDebugThreadEnum **ppThreadEnum); - + END_INTERFACE } ICorDebugHeapValue3Vtbl; @@ -15842,85 +14940,81 @@ EXTERN_C const IID IID_ICorDebugHeapValue3; CONST_VTBL struct ICorDebugHeapValue3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapValue3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapValue3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapValue3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapValue3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapValue3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapValue3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapValue3_GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) \ - ( (This)->lpVtbl -> GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) ) +#define ICorDebugHeapValue3_GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) \ + ( (This)->lpVtbl -> GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) ) -#define ICorDebugHeapValue3_GetMonitorEventWaitList(This,ppThreadEnum) \ - ( (This)->lpVtbl -> GetMonitorEventWaitList(This,ppThreadEnum) ) +#define ICorDebugHeapValue3_GetMonitorEventWaitList(This,ppThreadEnum) \ + ( (This)->lpVtbl -> GetMonitorEventWaitList(This,ppThreadEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapValue3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapValue3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHeapValue4_INTERFACE_DEFINED__ #define __ICorDebugHeapValue4_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("B35DD495-A555-463B-9BE9-C55338486BB8") ICorDebugHeapValue4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreatePinnedHandle( + virtual HRESULT STDMETHODCALLTYPE CreatePinnedHandle( /* [out] */ ICorDebugHandleValue **ppHandle) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapValue4Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue4 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue4 * This); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue4, CreatePinnedHandle) - HRESULT ( STDMETHODCALLTYPE *CreatePinnedHandle )( + + HRESULT ( STDMETHODCALLTYPE *CreatePinnedHandle )( ICorDebugHeapValue4 * This, /* [out] */ ICorDebugHandleValue **ppHandle); - + END_INTERFACE } ICorDebugHeapValue4Vtbl; @@ -15929,156 +15023,142 @@ EXTERN_C const IID IID_ICorDebugHeapValue4; CONST_VTBL struct ICorDebugHeapValue4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapValue4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapValue4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapValue4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapValue4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapValue4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapValue4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapValue4_CreatePinnedHandle(This,ppHandle) \ - ( (This)->lpVtbl -> CreatePinnedHandle(This,ppHandle) ) +#define ICorDebugHeapValue4_CreatePinnedHandle(This,ppHandle) \ + ( (This)->lpVtbl -> CreatePinnedHandle(This,ppHandle) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapValue4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapValue4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugObjectValue_INTERFACE_DEFINED__ #define __ICorDebugObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("18AD3D6E-B7D2-11d2-BD04-0000F80849BD") ICorDebugObjectValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE GetClass( + virtual HRESULT STDMETHODCALLTYPE GetClass( /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFieldValue( + + virtual HRESULT STDMETHODCALLTYPE GetFieldValue( /* [in] */ ICorDebugClass *pClass, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVirtualMethod( + + virtual HRESULT STDMETHODCALLTYPE GetVirtualMethod( /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetContext( + + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [out] */ ICorDebugContext **ppContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsValueClass( + + virtual HRESULT STDMETHODCALLTYPE IsValueClass( /* [out] */ BOOL *pbIsValueClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetManagedCopy( + + virtual HRESULT STDMETHODCALLTYPE GetManagedCopy( /* [out] */ IUnknown **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFromManagedCopy( + + virtual HRESULT STDMETHODCALLTYPE SetFromManagedCopy( /* [in] */ IUnknown *pObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugObjectValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugObjectValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugObjectValue * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugObjectValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugObjectValue * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugObjectValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugObjectValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetClass) - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugObjectValue * This, /* [out] */ ICorDebugClass **ppClass); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetFieldValue) - HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( + + HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( ICorDebugObjectValue * This, /* [in] */ ICorDebugClass *pClass, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetVirtualMethod) - HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( + + HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( ICorDebugObjectValue * This, /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetContext) - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugObjectValue * This, /* [out] */ ICorDebugContext **ppContext); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, IsValueClass) - HRESULT ( STDMETHODCALLTYPE *IsValueClass )( + + HRESULT ( STDMETHODCALLTYPE *IsValueClass )( ICorDebugObjectValue * This, /* [out] */ BOOL *pbIsValueClass); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetManagedCopy) - HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( + + HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( ICorDebugObjectValue * This, /* [out] */ IUnknown **ppObject); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, SetFromManagedCopy) - HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( + + HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( ICorDebugObjectValue * This, /* [in] */ IUnknown *pObject); - + END_INTERFACE } ICorDebugObjectValueVtbl; @@ -16087,117 +15167,113 @@ EXTERN_C const IID IID_ICorDebugObjectValue; CONST_VTBL struct ICorDebugObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugObjectValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugObjectValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugObjectValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugObjectValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugObjectValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugObjectValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugObjectValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugObjectValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugObjectValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugObjectValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugObjectValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugObjectValue_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) +#define ICorDebugObjectValue_GetClass(This,ppClass) \ + ( (This)->lpVtbl -> GetClass(This,ppClass) ) -#define ICorDebugObjectValue_GetFieldValue(This,pClass,fieldDef,ppValue) \ - ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) +#define ICorDebugObjectValue_GetFieldValue(This,pClass,fieldDef,ppValue) \ + ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) -#define ICorDebugObjectValue_GetVirtualMethod(This,memberRef,ppFunction) \ - ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) +#define ICorDebugObjectValue_GetVirtualMethod(This,memberRef,ppFunction) \ + ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) -#define ICorDebugObjectValue_GetContext(This,ppContext) \ - ( (This)->lpVtbl -> GetContext(This,ppContext) ) +#define ICorDebugObjectValue_GetContext(This,ppContext) \ + ( (This)->lpVtbl -> GetContext(This,ppContext) ) -#define ICorDebugObjectValue_IsValueClass(This,pbIsValueClass) \ - ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) +#define ICorDebugObjectValue_IsValueClass(This,pbIsValueClass) \ + ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) -#define ICorDebugObjectValue_GetManagedCopy(This,ppObject) \ - ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) +#define ICorDebugObjectValue_GetManagedCopy(This,ppObject) \ + ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) -#define ICorDebugObjectValue_SetFromManagedCopy(This,pObject) \ - ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) +#define ICorDebugObjectValue_SetFromManagedCopy(This,pObject) \ + ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugObjectValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugObjectValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugObjectValue2_INTERFACE_DEFINED__ #define __ICorDebugObjectValue2_INTERFACE_DEFINED__ /* interface ICorDebugObjectValue2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugObjectValue2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("49E4A320-4A9B-4eca-B105-229FB7D5009F") ICorDebugObjectValue2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetVirtualMethodAndType( + virtual HRESULT STDMETHODCALLTYPE GetVirtualMethodAndType( /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction, /* [out] */ ICorDebugType **ppType) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugObjectValue2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugObjectValue2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugObjectValue2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugObjectValue2 * This); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue2, GetVirtualMethodAndType) - HRESULT ( STDMETHODCALLTYPE *GetVirtualMethodAndType )( + + HRESULT ( STDMETHODCALLTYPE *GetVirtualMethodAndType )( ICorDebugObjectValue2 * This, /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction, /* [out] */ ICorDebugType **ppType); - + END_INTERFACE } ICorDebugObjectValue2Vtbl; @@ -16206,90 +15282,85 @@ EXTERN_C const IID IID_ICorDebugObjectValue2; CONST_VTBL struct ICorDebugObjectValue2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugObjectValue2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugObjectValue2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugObjectValue2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugObjectValue2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugObjectValue2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugObjectValue2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugObjectValue2_GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) \ - ( (This)->lpVtbl -> GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) ) +#define ICorDebugObjectValue2_GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) \ + ( (This)->lpVtbl -> GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugObjectValue2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugObjectValue2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ #define __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugDelegateObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugDelegateObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3AF70CC7-6047-47F6-A5C5-090A1A622638") ICorDebugDelegateObjectValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetTarget( + virtual HRESULT STDMETHODCALLTYPE GetTarget( /* [out] */ ICorDebugReferenceValue **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunction( + + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDelegateObjectValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDelegateObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDelegateObjectValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDelegateObjectValue * This); - - DECLSPEC_XFGVIRT(ICorDebugDelegateObjectValue, GetTarget) - HRESULT ( STDMETHODCALLTYPE *GetTarget )( + + HRESULT ( STDMETHODCALLTYPE *GetTarget )( ICorDebugDelegateObjectValue * This, /* [out] */ ICorDebugReferenceValue **ppObject); - - DECLSPEC_XFGVIRT(ICorDebugDelegateObjectValue, GetFunction) - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugDelegateObjectValue * This, /* [out] */ ICorDebugFunction **ppFunction); - + END_INTERFACE } ICorDebugDelegateObjectValueVtbl; @@ -16298,115 +15369,105 @@ EXTERN_C const IID IID_ICorDebugDelegateObjectValue; CONST_VTBL struct ICorDebugDelegateObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDelegateObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDelegateObjectValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDelegateObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDelegateObjectValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDelegateObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDelegateObjectValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDelegateObjectValue_GetTarget(This,ppObject) \ - ( (This)->lpVtbl -> GetTarget(This,ppObject) ) +#define ICorDebugDelegateObjectValue_GetTarget(This,ppObject) \ + ( (This)->lpVtbl -> GetTarget(This,ppObject) ) -#define ICorDebugDelegateObjectValue_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugDelegateObjectValue_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugBoxValue_INTERFACE_DEFINED__ #define __ICorDebugBoxValue_INTERFACE_DEFINED__ /* interface ICorDebugBoxValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBoxValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAFC-8A68-11d2-983C-0000F808342D") ICorDebugBoxValue : public ICorDebugHeapValue { public: - virtual HRESULT STDMETHODCALLTYPE GetObject( + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugObjectValue **ppObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugBoxValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBoxValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBoxValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBoxValue * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugBoxValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugBoxValue * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugBoxValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugBoxValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue, IsValid) - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugBoxValue * This, /* [out] */ BOOL *pbValid); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue, CreateRelocBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugBoxValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugBoxValue, GetObject) - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugBoxValue * This, /* [out] */ ICorDebugObjectValue **ppObject); - + END_INTERFACE } ICorDebugBoxValueVtbl; @@ -16415,154 +15476,143 @@ EXTERN_C const IID IID_ICorDebugBoxValue; CONST_VTBL struct ICorDebugBoxValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugBoxValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugBoxValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugBoxValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugBoxValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugBoxValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugBoxValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugBoxValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugBoxValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugBoxValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugBoxValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugBoxValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugBoxValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugBoxValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugBoxValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugBoxValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) +#define ICorDebugBoxValue_IsValid(This,pbValid) \ + ( (This)->lpVtbl -> IsValid(This,pbValid) ) -#define ICorDebugBoxValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) +#define ICorDebugBoxValue_CreateRelocBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) -#define ICorDebugBoxValue_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) +#define ICorDebugBoxValue_GetObject(This,ppObject) \ + ( (This)->lpVtbl -> GetObject(This,ppObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugBoxValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugBoxValue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0106 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0105 */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0106_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0106_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0105_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0105_v0_0_s_ifspec; #ifndef __ICorDebugStringValue_INTERFACE_DEFINED__ #define __ICorDebugStringValue_INTERFACE_DEFINED__ /* interface ICorDebugStringValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStringValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAFD-8A68-11d2-983C-0000F808342D") ICorDebugStringValue : public ICorDebugHeapValue { public: - virtual HRESULT STDMETHODCALLTYPE GetLength( + virtual HRESULT STDMETHODCALLTYPE GetLength( /* [out] */ ULONG32 *pcchString) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( + + virtual HRESULT STDMETHODCALLTYPE GetString( /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStringValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStringValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStringValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStringValue * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugStringValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugStringValue * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugStringValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugStringValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue, IsValid) - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugStringValue * This, /* [out] */ BOOL *pbValid); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue, CreateRelocBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugStringValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugStringValue, GetLength) - HRESULT ( STDMETHODCALLTYPE *GetLength )( + + HRESULT ( STDMETHODCALLTYPE *GetLength )( ICorDebugStringValue * This, /* [out] */ ULONG32 *pcchString); - - DECLSPEC_XFGVIRT(ICorDebugStringValue, GetString) - HRESULT ( STDMETHODCALLTYPE *GetString )( + + HRESULT ( STDMETHODCALLTYPE *GetString )( ICorDebugStringValue * This, /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]); - + END_INTERFACE } ICorDebugStringValueVtbl; @@ -16571,210 +15621,193 @@ EXTERN_C const IID IID_ICorDebugStringValue; CONST_VTBL struct ICorDebugStringValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStringValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStringValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStringValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStringValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStringValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStringValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStringValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugStringValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugStringValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugStringValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugStringValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugStringValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugStringValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugStringValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugStringValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) +#define ICorDebugStringValue_IsValid(This,pbValid) \ + ( (This)->lpVtbl -> IsValid(This,pbValid) ) -#define ICorDebugStringValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) +#define ICorDebugStringValue_CreateRelocBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) -#define ICorDebugStringValue_GetLength(This,pcchString) \ - ( (This)->lpVtbl -> GetLength(This,pcchString) ) +#define ICorDebugStringValue_GetLength(This,pcchString) \ + ( (This)->lpVtbl -> GetLength(This,pcchString) ) -#define ICorDebugStringValue_GetString(This,cchString,pcchString,szString) \ - ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) +#define ICorDebugStringValue_GetString(This,cchString,pcchString,szString) \ + ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStringValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStringValue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0107 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0106 */ +/* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0107_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0107_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0106_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0106_v0_0_s_ifspec; #ifndef __ICorDebugArrayValue_INTERFACE_DEFINED__ #define __ICorDebugArrayValue_INTERFACE_DEFINED__ /* interface ICorDebugArrayValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugArrayValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("0405B0DF-A660-11d2-BD02-0000F80849BD") ICorDebugArrayValue : public ICorDebugHeapValue { public: - virtual HRESULT STDMETHODCALLTYPE GetElementType( + virtual HRESULT STDMETHODCALLTYPE GetElementType( /* [out] */ CorElementType *pType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRank( + + virtual HRESULT STDMETHODCALLTYPE GetRank( /* [out] */ ULONG32 *pnRank) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCount( + + virtual HRESULT STDMETHODCALLTYPE GetCount( /* [out] */ ULONG32 *pnCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDimensions( + + virtual HRESULT STDMETHODCALLTYPE GetDimensions( /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 dims[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE HasBaseIndicies( + + virtual HRESULT STDMETHODCALLTYPE HasBaseIndicies( /* [out] */ BOOL *pbHasBaseIndicies) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBaseIndicies( + + virtual HRESULT STDMETHODCALLTYPE GetBaseIndicies( /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 indices[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetElement( + + virtual HRESULT STDMETHODCALLTYPE GetElement( /* [in] */ ULONG32 cdim, /* [length_is][size_is][in] */ ULONG32 indices[ ], /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetElementAtPosition( + + virtual HRESULT STDMETHODCALLTYPE GetElementAtPosition( /* [in] */ ULONG32 nPosition, /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugArrayValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugArrayValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugArrayValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugArrayValue * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugArrayValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugArrayValue * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugArrayValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugArrayValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue, IsValid) - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugArrayValue * This, /* [out] */ BOOL *pbValid); - - DECLSPEC_XFGVIRT(ICorDebugHeapValue, CreateRelocBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugArrayValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetElementType) - HRESULT ( STDMETHODCALLTYPE *GetElementType )( + + HRESULT ( STDMETHODCALLTYPE *GetElementType )( ICorDebugArrayValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetRank) - HRESULT ( STDMETHODCALLTYPE *GetRank )( + + HRESULT ( STDMETHODCALLTYPE *GetRank )( ICorDebugArrayValue * This, /* [out] */ ULONG32 *pnRank); - - DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugArrayValue * This, /* [out] */ ULONG32 *pnCount); - - DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetDimensions) - HRESULT ( STDMETHODCALLTYPE *GetDimensions )( + + HRESULT ( STDMETHODCALLTYPE *GetDimensions )( ICorDebugArrayValue * This, /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 dims[ ]); - - DECLSPEC_XFGVIRT(ICorDebugArrayValue, HasBaseIndicies) - HRESULT ( STDMETHODCALLTYPE *HasBaseIndicies )( + + HRESULT ( STDMETHODCALLTYPE *HasBaseIndicies )( ICorDebugArrayValue * This, /* [out] */ BOOL *pbHasBaseIndicies); - - DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetBaseIndicies) - HRESULT ( STDMETHODCALLTYPE *GetBaseIndicies )( + + HRESULT ( STDMETHODCALLTYPE *GetBaseIndicies )( ICorDebugArrayValue * This, /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 indices[ ]); - - DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetElement) - HRESULT ( STDMETHODCALLTYPE *GetElement )( + + HRESULT ( STDMETHODCALLTYPE *GetElement )( ICorDebugArrayValue * This, /* [in] */ ULONG32 cdim, /* [length_is][size_is][in] */ ULONG32 indices[ ], /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetElementAtPosition) - HRESULT ( STDMETHODCALLTYPE *GetElementAtPosition )( + + HRESULT ( STDMETHODCALLTYPE *GetElementAtPosition )( ICorDebugArrayValue * This, /* [in] */ ULONG32 nPosition, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugArrayValueVtbl; @@ -16783,181 +15816,171 @@ EXTERN_C const IID IID_ICorDebugArrayValue; CONST_VTBL struct ICorDebugArrayValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugArrayValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugArrayValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugArrayValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugArrayValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugArrayValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugArrayValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugArrayValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugArrayValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugArrayValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugArrayValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugArrayValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugArrayValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugArrayValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugArrayValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugArrayValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) +#define ICorDebugArrayValue_IsValid(This,pbValid) \ + ( (This)->lpVtbl -> IsValid(This,pbValid) ) -#define ICorDebugArrayValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) +#define ICorDebugArrayValue_CreateRelocBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) -#define ICorDebugArrayValue_GetElementType(This,pType) \ - ( (This)->lpVtbl -> GetElementType(This,pType) ) +#define ICorDebugArrayValue_GetElementType(This,pType) \ + ( (This)->lpVtbl -> GetElementType(This,pType) ) -#define ICorDebugArrayValue_GetRank(This,pnRank) \ - ( (This)->lpVtbl -> GetRank(This,pnRank) ) +#define ICorDebugArrayValue_GetRank(This,pnRank) \ + ( (This)->lpVtbl -> GetRank(This,pnRank) ) -#define ICorDebugArrayValue_GetCount(This,pnCount) \ - ( (This)->lpVtbl -> GetCount(This,pnCount) ) +#define ICorDebugArrayValue_GetCount(This,pnCount) \ + ( (This)->lpVtbl -> GetCount(This,pnCount) ) -#define ICorDebugArrayValue_GetDimensions(This,cdim,dims) \ - ( (This)->lpVtbl -> GetDimensions(This,cdim,dims) ) +#define ICorDebugArrayValue_GetDimensions(This,cdim,dims) \ + ( (This)->lpVtbl -> GetDimensions(This,cdim,dims) ) -#define ICorDebugArrayValue_HasBaseIndicies(This,pbHasBaseIndicies) \ - ( (This)->lpVtbl -> HasBaseIndicies(This,pbHasBaseIndicies) ) +#define ICorDebugArrayValue_HasBaseIndicies(This,pbHasBaseIndicies) \ + ( (This)->lpVtbl -> HasBaseIndicies(This,pbHasBaseIndicies) ) -#define ICorDebugArrayValue_GetBaseIndicies(This,cdim,indices) \ - ( (This)->lpVtbl -> GetBaseIndicies(This,cdim,indices) ) +#define ICorDebugArrayValue_GetBaseIndicies(This,cdim,indices) \ + ( (This)->lpVtbl -> GetBaseIndicies(This,cdim,indices) ) -#define ICorDebugArrayValue_GetElement(This,cdim,indices,ppValue) \ - ( (This)->lpVtbl -> GetElement(This,cdim,indices,ppValue) ) +#define ICorDebugArrayValue_GetElement(This,cdim,indices,ppValue) \ + ( (This)->lpVtbl -> GetElement(This,cdim,indices,ppValue) ) -#define ICorDebugArrayValue_GetElementAtPosition(This,nPosition,ppValue) \ - ( (This)->lpVtbl -> GetElementAtPosition(This,nPosition,ppValue) ) +#define ICorDebugArrayValue_GetElementAtPosition(This,nPosition,ppValue) \ + ( (This)->lpVtbl -> GetElementAtPosition(This,nPosition,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugArrayValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugArrayValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugVariableHome_INTERFACE_DEFINED__ #define __ICorDebugVariableHome_INTERFACE_DEFINED__ /* interface ICorDebugVariableHome */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum VariableLocationType { - VLT_REGISTER = 0, - VLT_REGISTER_RELATIVE = ( VLT_REGISTER + 1 ) , - VLT_INVALID = ( VLT_REGISTER_RELATIVE + 1 ) - } VariableLocationType; + VLT_REGISTER = 0, + VLT_REGISTER_RELATIVE = ( VLT_REGISTER + 1 ) , + VLT_INVALID = ( VLT_REGISTER_RELATIVE + 1 ) + } VariableLocationType; EXTERN_C const IID IID_ICorDebugVariableHome; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("50847b8d-f43f-41b0-924c-6383a5f2278b") ICorDebugVariableHome : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCode( + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( + + virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( /* [out] */ ULONG32 *pSlotIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetArgumentIndex( + + virtual HRESULT STDMETHODCALLTYPE GetArgumentIndex( /* [out] */ ULONG32 *pArgumentIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLiveRange( + + virtual HRESULT STDMETHODCALLTYPE GetLiveRange( /* [out] */ ULONG32 *pStartOffset, /* [out] */ ULONG32 *pEndOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocationType( + + virtual HRESULT STDMETHODCALLTYPE GetLocationType( /* [out] */ VariableLocationType *pLocationType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegister( + + virtual HRESULT STDMETHODCALLTYPE GetRegister( /* [out] */ CorDebugRegister *pRegister) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOffset( + + virtual HRESULT STDMETHODCALLTYPE GetOffset( /* [out] */ LONG *pOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVariableHomeVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVariableHome * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVariableHome * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVariableHome * This); - - DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetCode) - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugVariableHome * This, /* [out] */ ICorDebugCode **ppCode); - - DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetSlotIndex) - HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( + + HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( ICorDebugVariableHome * This, /* [out] */ ULONG32 *pSlotIndex); - - DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetArgumentIndex) - HRESULT ( STDMETHODCALLTYPE *GetArgumentIndex )( + + HRESULT ( STDMETHODCALLTYPE *GetArgumentIndex )( ICorDebugVariableHome * This, /* [out] */ ULONG32 *pArgumentIndex); - - DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetLiveRange) - HRESULT ( STDMETHODCALLTYPE *GetLiveRange )( + + HRESULT ( STDMETHODCALLTYPE *GetLiveRange )( ICorDebugVariableHome * This, /* [out] */ ULONG32 *pStartOffset, /* [out] */ ULONG32 *pEndOffset); - - DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetLocationType) - HRESULT ( STDMETHODCALLTYPE *GetLocationType )( + + HRESULT ( STDMETHODCALLTYPE *GetLocationType )( ICorDebugVariableHome * This, /* [out] */ VariableLocationType *pLocationType); - - DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetRegister) - HRESULT ( STDMETHODCALLTYPE *GetRegister )( + + HRESULT ( STDMETHODCALLTYPE *GetRegister )( ICorDebugVariableHome * This, /* [out] */ CorDebugRegister *pRegister); - - DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetOffset) - HRESULT ( STDMETHODCALLTYPE *GetOffset )( + + HRESULT ( STDMETHODCALLTYPE *GetOffset )( ICorDebugVariableHome * This, /* [out] */ LONG *pOffset); - + END_INTERFACE } ICorDebugVariableHomeVtbl; @@ -16966,151 +15989,137 @@ EXTERN_C const IID IID_ICorDebugVariableHome; CONST_VTBL struct ICorDebugVariableHomeVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugVariableHome_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugVariableHome_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugVariableHome_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugVariableHome_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugVariableHome_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugVariableHome_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugVariableHome_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugVariableHome_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugVariableHome_GetSlotIndex(This,pSlotIndex) \ - ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) +#define ICorDebugVariableHome_GetSlotIndex(This,pSlotIndex) \ + ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) -#define ICorDebugVariableHome_GetArgumentIndex(This,pArgumentIndex) \ - ( (This)->lpVtbl -> GetArgumentIndex(This,pArgumentIndex) ) +#define ICorDebugVariableHome_GetArgumentIndex(This,pArgumentIndex) \ + ( (This)->lpVtbl -> GetArgumentIndex(This,pArgumentIndex) ) -#define ICorDebugVariableHome_GetLiveRange(This,pStartOffset,pEndOffset) \ - ( (This)->lpVtbl -> GetLiveRange(This,pStartOffset,pEndOffset) ) +#define ICorDebugVariableHome_GetLiveRange(This,pStartOffset,pEndOffset) \ + ( (This)->lpVtbl -> GetLiveRange(This,pStartOffset,pEndOffset) ) -#define ICorDebugVariableHome_GetLocationType(This,pLocationType) \ - ( (This)->lpVtbl -> GetLocationType(This,pLocationType) ) +#define ICorDebugVariableHome_GetLocationType(This,pLocationType) \ + ( (This)->lpVtbl -> GetLocationType(This,pLocationType) ) -#define ICorDebugVariableHome_GetRegister(This,pRegister) \ - ( (This)->lpVtbl -> GetRegister(This,pRegister) ) +#define ICorDebugVariableHome_GetRegister(This,pRegister) \ + ( (This)->lpVtbl -> GetRegister(This,pRegister) ) -#define ICorDebugVariableHome_GetOffset(This,pOffset) \ - ( (This)->lpVtbl -> GetOffset(This,pOffset) ) +#define ICorDebugVariableHome_GetOffset(This,pOffset) \ + ( (This)->lpVtbl -> GetOffset(This,pOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugVariableHome_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugVariableHome_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHandleValue_INTERFACE_DEFINED__ #define __ICorDebugHandleValue_INTERFACE_DEFINED__ /* interface ICorDebugHandleValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHandleValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("029596E8-276B-46a1-9821-732E96BBB00B") ICorDebugHandleValue : public ICorDebugReferenceValue { public: - virtual HRESULT STDMETHODCALLTYPE GetHandleType( + virtual HRESULT STDMETHODCALLTYPE GetHandleType( /* [out] */ CorDebugHandleType *pType) = 0; - + virtual HRESULT STDMETHODCALLTYPE Dispose( void) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHandleValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHandleValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHandleValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHandleValue * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugHandleValue * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugHandleValue * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugHandleValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugHandleValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, IsNull) - HRESULT ( STDMETHODCALLTYPE *IsNull )( + + HRESULT ( STDMETHODCALLTYPE *IsNull )( ICorDebugHandleValue * This, /* [out] */ BOOL *pbNull); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, GetValue) - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugHandleValue * This, /* [out] */ CORDB_ADDRESS *pValue); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, SetValue) - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugHandleValue * This, /* [in] */ CORDB_ADDRESS value); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, Dereference) - HRESULT ( STDMETHODCALLTYPE *Dereference )( + + HRESULT ( STDMETHODCALLTYPE *Dereference )( ICorDebugHandleValue * This, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugReferenceValue, DereferenceStrong) - HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( + + HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( ICorDebugHandleValue * This, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugHandleValue, GetHandleType) - HRESULT ( STDMETHODCALLTYPE *GetHandleType )( + + HRESULT ( STDMETHODCALLTYPE *GetHandleType )( ICorDebugHandleValue * This, /* [out] */ CorDebugHandleType *pType); - - DECLSPEC_XFGVIRT(ICorDebugHandleValue, Dispose) - HRESULT ( STDMETHODCALLTYPE *Dispose )( + + HRESULT ( STDMETHODCALLTYPE *Dispose )( ICorDebugHandleValue * This); - + END_INTERFACE } ICorDebugHandleValueVtbl; @@ -17119,164 +16128,150 @@ EXTERN_C const IID IID_ICorDebugHandleValue; CONST_VTBL struct ICorDebugHandleValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHandleValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHandleValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHandleValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHandleValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHandleValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHandleValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHandleValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugHandleValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugHandleValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugHandleValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugHandleValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugHandleValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugHandleValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugHandleValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugHandleValue_IsNull(This,pbNull) \ - ( (This)->lpVtbl -> IsNull(This,pbNull) ) +#define ICorDebugHandleValue_IsNull(This,pbNull) \ + ( (This)->lpVtbl -> IsNull(This,pbNull) ) -#define ICorDebugHandleValue_GetValue(This,pValue) \ - ( (This)->lpVtbl -> GetValue(This,pValue) ) +#define ICorDebugHandleValue_GetValue(This,pValue) \ + ( (This)->lpVtbl -> GetValue(This,pValue) ) -#define ICorDebugHandleValue_SetValue(This,value) \ - ( (This)->lpVtbl -> SetValue(This,value) ) +#define ICorDebugHandleValue_SetValue(This,value) \ + ( (This)->lpVtbl -> SetValue(This,value) ) -#define ICorDebugHandleValue_Dereference(This,ppValue) \ - ( (This)->lpVtbl -> Dereference(This,ppValue) ) +#define ICorDebugHandleValue_Dereference(This,ppValue) \ + ( (This)->lpVtbl -> Dereference(This,ppValue) ) -#define ICorDebugHandleValue_DereferenceStrong(This,ppValue) \ - ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) +#define ICorDebugHandleValue_DereferenceStrong(This,ppValue) \ + ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) -#define ICorDebugHandleValue_GetHandleType(This,pType) \ - ( (This)->lpVtbl -> GetHandleType(This,pType) ) +#define ICorDebugHandleValue_GetHandleType(This,pType) \ + ( (This)->lpVtbl -> GetHandleType(This,pType) ) -#define ICorDebugHandleValue_Dispose(This) \ - ( (This)->lpVtbl -> Dispose(This) ) +#define ICorDebugHandleValue_Dispose(This) \ + ( (This)->lpVtbl -> Dispose(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHandleValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHandleValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugContext_INTERFACE_DEFINED__ #define __ICorDebugContext_INTERFACE_DEFINED__ /* interface ICorDebugContext */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugContext; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB00-8A68-11d2-983C-0000F808342D") ICorDebugContext : public ICorDebugObjectValue { public: }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugContextVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugContext * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugContext * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugContext * This); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugContext * This, /* [out] */ CorElementType *pType); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugContext * This, /* [out] */ ULONG32 *pSize); - - DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugContext * This, /* [out] */ CORDB_ADDRESS *pAddress); - - DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugContext * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetClass) - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugContext * This, /* [out] */ ICorDebugClass **ppClass); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetFieldValue) - HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( + + HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( ICorDebugContext * This, /* [in] */ ICorDebugClass *pClass, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetVirtualMethod) - HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( + + HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( ICorDebugContext * This, /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetContext) - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugContext * This, /* [out] */ ICorDebugContext **ppContext); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, IsValueClass) - HRESULT ( STDMETHODCALLTYPE *IsValueClass )( + + HRESULT ( STDMETHODCALLTYPE *IsValueClass )( ICorDebugContext * This, /* [out] */ BOOL *pbIsValueClass); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetManagedCopy) - HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( + + HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( ICorDebugContext * This, /* [out] */ IUnknown **ppObject); - - DECLSPEC_XFGVIRT(ICorDebugObjectValue, SetFromManagedCopy) - HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( + + HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( ICorDebugContext * This, /* [in] */ IUnknown *pObject); - + END_INTERFACE } ICorDebugContextVtbl; @@ -17285,130 +16280,125 @@ EXTERN_C const IID IID_ICorDebugContext; CONST_VTBL struct ICorDebugContextVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugContext_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugContext_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugContext_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugContext_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugContext_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugContext_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugContext_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugContext_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugContext_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugContext_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugContext_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugContext_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugContext_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugContext_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugContext_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) +#define ICorDebugContext_GetClass(This,ppClass) \ + ( (This)->lpVtbl -> GetClass(This,ppClass) ) -#define ICorDebugContext_GetFieldValue(This,pClass,fieldDef,ppValue) \ - ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) +#define ICorDebugContext_GetFieldValue(This,pClass,fieldDef,ppValue) \ + ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) -#define ICorDebugContext_GetVirtualMethod(This,memberRef,ppFunction) \ - ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) +#define ICorDebugContext_GetVirtualMethod(This,memberRef,ppFunction) \ + ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) -#define ICorDebugContext_GetContext(This,ppContext) \ - ( (This)->lpVtbl -> GetContext(This,ppContext) ) +#define ICorDebugContext_GetContext(This,ppContext) \ + ( (This)->lpVtbl -> GetContext(This,ppContext) ) -#define ICorDebugContext_IsValueClass(This,pbIsValueClass) \ - ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) +#define ICorDebugContext_IsValueClass(This,pbIsValueClass) \ + ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) -#define ICorDebugContext_GetManagedCopy(This,ppObject) \ - ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) +#define ICorDebugContext_GetManagedCopy(This,ppObject) \ + ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) -#define ICorDebugContext_SetFromManagedCopy(This,pObject) \ - ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) +#define ICorDebugContext_SetFromManagedCopy(This,pObject) \ + ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugContext_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugContext_INTERFACE_DEFINED__ */ #ifndef __ICorDebugComObjectValue_INTERFACE_DEFINED__ #define __ICorDebugComObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugComObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugComObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5F69C5E5-3E12-42DF-B371-F9D761D6EE24") ICorDebugComObjectValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCachedInterfaceTypes( + virtual HRESULT STDMETHODCALLTYPE GetCachedInterfaceTypes( /* [in] */ BOOL bIInspectableOnly, /* [out] */ ICorDebugTypeEnum **ppInterfacesEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCachedInterfacePointers( + + virtual HRESULT STDMETHODCALLTYPE GetCachedInterfacePointers( /* [in] */ BOOL bIInspectableOnly, /* [in] */ ULONG32 celt, /* [out] */ ULONG32 *pcEltFetched, /* [length_is][size_is][out] */ CORDB_ADDRESS *ptrs) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugComObjectValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugComObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugComObjectValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugComObjectValue * This); - - DECLSPEC_XFGVIRT(ICorDebugComObjectValue, GetCachedInterfaceTypes) - HRESULT ( STDMETHODCALLTYPE *GetCachedInterfaceTypes )( + + HRESULT ( STDMETHODCALLTYPE *GetCachedInterfaceTypes )( ICorDebugComObjectValue * This, /* [in] */ BOOL bIInspectableOnly, /* [out] */ ICorDebugTypeEnum **ppInterfacesEnum); - - DECLSPEC_XFGVIRT(ICorDebugComObjectValue, GetCachedInterfacePointers) - HRESULT ( STDMETHODCALLTYPE *GetCachedInterfacePointers )( + + HRESULT ( STDMETHODCALLTYPE *GetCachedInterfacePointers )( ICorDebugComObjectValue * This, /* [in] */ BOOL bIInspectableOnly, /* [in] */ ULONG32 celt, /* [out] */ ULONG32 *pcEltFetched, /* [length_is][size_is][out] */ CORDB_ADDRESS *ptrs); - + END_INTERFACE } ICorDebugComObjectValueVtbl; @@ -17417,108 +16407,100 @@ EXTERN_C const IID IID_ICorDebugComObjectValue; CONST_VTBL struct ICorDebugComObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugComObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugComObjectValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugComObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugComObjectValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugComObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugComObjectValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugComObjectValue_GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) \ - ( (This)->lpVtbl -> GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) ) +#define ICorDebugComObjectValue_GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) \ + ( (This)->lpVtbl -> GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) ) -#define ICorDebugComObjectValue_GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) \ - ( (This)->lpVtbl -> GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) ) +#define ICorDebugComObjectValue_GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) \ + ( (This)->lpVtbl -> GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugComObjectValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugComObjectValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugObjectEnum_INTERFACE_DEFINED__ #define __ICorDebugObjectEnum_INTERFACE_DEFINED__ /* interface ICorDebugObjectEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugObjectEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB02-8A68-11d2-983C-0000F808342D") ICorDebugObjectEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CORDB_ADDRESS objects[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugObjectEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugObjectEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugObjectEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugObjectEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugObjectEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugObjectEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugObjectEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugObjectEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugObjectEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugObjectEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CORDB_ADDRESS objects[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugObjectEnumVtbl; @@ -17527,118 +16509,110 @@ EXTERN_C const IID IID_ICorDebugObjectEnum; CONST_VTBL struct ICorDebugObjectEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugObjectEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugObjectEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugObjectEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugObjectEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugObjectEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugObjectEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugObjectEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugObjectEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugObjectEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugObjectEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugObjectEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugObjectEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugObjectEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugObjectEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugObjectEnum_Next(This,celt,objects,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) +#define ICorDebugObjectEnum_Next(This,celt,objects,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugObjectEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugObjectEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugBreakpointEnum_INTERFACE_DEFINED__ #define __ICorDebugBreakpointEnum_INTERFACE_DEFINED__ /* interface ICorDebugBreakpointEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBreakpointEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB03-8A68-11d2-983C-0000F808342D") ICorDebugBreakpointEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugBreakpoint *breakpoints[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugBreakpointEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBreakpointEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBreakpointEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBreakpointEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugBreakpointEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugBreakpointEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugBreakpointEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugBreakpointEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugBreakpointEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugBreakpointEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugBreakpoint *breakpoints[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugBreakpointEnumVtbl; @@ -17647,118 +16621,110 @@ EXTERN_C const IID IID_ICorDebugBreakpointEnum; CONST_VTBL struct ICorDebugBreakpointEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugBreakpointEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugBreakpointEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugBreakpointEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugBreakpointEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugBreakpointEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugBreakpointEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugBreakpointEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugBreakpointEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugBreakpointEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugBreakpointEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugBreakpointEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugBreakpointEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugBreakpointEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugBreakpointEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugBreakpointEnum_Next(This,celt,breakpoints,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,breakpoints,pceltFetched) ) +#define ICorDebugBreakpointEnum_Next(This,celt,breakpoints,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,breakpoints,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugBreakpointEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugBreakpointEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStepperEnum_INTERFACE_DEFINED__ #define __ICorDebugStepperEnum_INTERFACE_DEFINED__ /* interface ICorDebugStepperEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStepperEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB04-8A68-11d2-983C-0000F808342D") ICorDebugStepperEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugStepper *steppers[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStepperEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStepperEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStepperEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStepperEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugStepperEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugStepperEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugStepperEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugStepperEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugStepperEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugStepperEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugStepper *steppers[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugStepperEnumVtbl; @@ -17767,118 +16733,110 @@ EXTERN_C const IID IID_ICorDebugStepperEnum; CONST_VTBL struct ICorDebugStepperEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStepperEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStepperEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStepperEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStepperEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStepperEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStepperEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStepperEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugStepperEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugStepperEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugStepperEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugStepperEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugStepperEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugStepperEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugStepperEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugStepperEnum_Next(This,celt,steppers,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,steppers,pceltFetched) ) +#define ICorDebugStepperEnum_Next(This,celt,steppers,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,steppers,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStepperEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStepperEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcessEnum_INTERFACE_DEFINED__ #define __ICorDebugProcessEnum_INTERFACE_DEFINED__ /* interface ICorDebugProcessEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcessEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB05-8A68-11d2-983C-0000F808342D") ICorDebugProcessEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugProcess *processes[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcessEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcessEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcessEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcessEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugProcessEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugProcessEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugProcessEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugProcessEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugProcessEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugProcessEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugProcess *processes[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugProcessEnumVtbl; @@ -17887,118 +16845,110 @@ EXTERN_C const IID IID_ICorDebugProcessEnum; CONST_VTBL struct ICorDebugProcessEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcessEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcessEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcessEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcessEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcessEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcessEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcessEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugProcessEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugProcessEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugProcessEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugProcessEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugProcessEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugProcessEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugProcessEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugProcessEnum_Next(This,celt,processes,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,processes,pceltFetched) ) +#define ICorDebugProcessEnum_Next(This,celt,processes,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,processes,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcessEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcessEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThreadEnum_INTERFACE_DEFINED__ #define __ICorDebugThreadEnum_INTERFACE_DEFINED__ /* interface ICorDebugThreadEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThreadEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB06-8A68-11d2-983C-0000F808342D") ICorDebugThreadEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugThread *threads[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThreadEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThreadEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThreadEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThreadEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugThreadEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugThreadEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugThreadEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugThreadEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugThreadEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugThreadEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugThread *threads[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugThreadEnumVtbl; @@ -18007,118 +16957,110 @@ EXTERN_C const IID IID_ICorDebugThreadEnum; CONST_VTBL struct ICorDebugThreadEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThreadEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThreadEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThreadEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThreadEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThreadEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThreadEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThreadEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugThreadEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugThreadEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugThreadEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugThreadEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugThreadEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugThreadEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugThreadEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugThreadEnum_Next(This,celt,threads,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,threads,pceltFetched) ) +#define ICorDebugThreadEnum_Next(This,celt,threads,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,threads,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThreadEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThreadEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFrameEnum_INTERFACE_DEFINED__ #define __ICorDebugFrameEnum_INTERFACE_DEFINED__ /* interface ICorDebugFrameEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFrameEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB07-8A68-11d2-983C-0000F808342D") ICorDebugFrameEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugFrame *frames[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFrameEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFrameEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFrameEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFrameEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugFrameEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugFrameEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugFrameEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugFrameEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugFrameEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugFrameEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugFrame *frames[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugFrameEnumVtbl; @@ -18127,118 +17069,110 @@ EXTERN_C const IID IID_ICorDebugFrameEnum; CONST_VTBL struct ICorDebugFrameEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFrameEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFrameEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFrameEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFrameEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFrameEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFrameEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFrameEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugFrameEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugFrameEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugFrameEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugFrameEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugFrameEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugFrameEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugFrameEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugFrameEnum_Next(This,celt,frames,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,frames,pceltFetched) ) +#define ICorDebugFrameEnum_Next(This,celt,frames,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,frames,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFrameEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFrameEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugChainEnum_INTERFACE_DEFINED__ #define __ICorDebugChainEnum_INTERFACE_DEFINED__ /* interface ICorDebugChainEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugChainEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB08-8A68-11d2-983C-0000F808342D") ICorDebugChainEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugChain *chains[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugChainEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugChainEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugChainEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugChainEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugChainEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugChainEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugChainEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugChainEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugChainEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugChainEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugChain *chains[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugChainEnumVtbl; @@ -18247,118 +17181,110 @@ EXTERN_C const IID IID_ICorDebugChainEnum; CONST_VTBL struct ICorDebugChainEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugChainEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugChainEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugChainEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugChainEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugChainEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugChainEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugChainEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugChainEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugChainEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugChainEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugChainEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugChainEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugChainEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugChainEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugChainEnum_Next(This,celt,chains,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,chains,pceltFetched) ) +#define ICorDebugChainEnum_Next(This,celt,chains,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,chains,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugChainEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugChainEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModuleEnum_INTERFACE_DEFINED__ #define __ICorDebugModuleEnum_INTERFACE_DEFINED__ /* interface ICorDebugModuleEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModuleEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB09-8A68-11d2-983C-0000F808342D") ICorDebugModuleEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugModule *modules[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModuleEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModuleEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModuleEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModuleEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugModuleEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugModuleEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugModuleEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugModuleEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugModuleEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugModuleEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugModule *modules[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugModuleEnumVtbl; @@ -18367,118 +17293,110 @@ EXTERN_C const IID IID_ICorDebugModuleEnum; CONST_VTBL struct ICorDebugModuleEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModuleEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModuleEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModuleEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModuleEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModuleEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModuleEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModuleEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugModuleEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugModuleEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugModuleEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugModuleEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugModuleEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugModuleEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugModuleEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugModuleEnum_Next(This,celt,modules,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,modules,pceltFetched) ) +#define ICorDebugModuleEnum_Next(This,celt,modules,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,modules,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModuleEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModuleEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValueEnum_INTERFACE_DEFINED__ #define __ICorDebugValueEnum_INTERFACE_DEFINED__ /* interface ICorDebugValueEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValueEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB0A-8A68-11d2-983C-0000F808342D") ICorDebugValueEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugValue *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValueEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValueEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValueEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValueEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugValueEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugValueEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugValueEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugValueEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugValueEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugValueEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugValue *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugValueEnumVtbl; @@ -18487,118 +17405,110 @@ EXTERN_C const IID IID_ICorDebugValueEnum; CONST_VTBL struct ICorDebugValueEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValueEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValueEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValueEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValueEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValueEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValueEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValueEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugValueEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugValueEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugValueEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugValueEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugValueEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugValueEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugValueEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugValueEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugValueEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValueEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValueEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugVariableHomeEnum_INTERFACE_DEFINED__ #define __ICorDebugVariableHomeEnum_INTERFACE_DEFINED__ /* interface ICorDebugVariableHomeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugVariableHomeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("e76b7a57-4f7a-4309-85a7-5d918c3deaf7") ICorDebugVariableHomeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugVariableHome *homes[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVariableHomeEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVariableHomeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVariableHomeEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVariableHomeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugVariableHomeEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugVariableHomeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugVariableHomeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugVariableHomeEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugVariableHomeEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugVariableHomeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugVariableHome *homes[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugVariableHomeEnumVtbl; @@ -18607,118 +17517,110 @@ EXTERN_C const IID IID_ICorDebugVariableHomeEnum; CONST_VTBL struct ICorDebugVariableHomeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugVariableHomeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugVariableHomeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugVariableHomeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugVariableHomeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugVariableHomeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugVariableHomeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugVariableHomeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugVariableHomeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugVariableHomeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugVariableHomeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugVariableHomeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugVariableHomeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugVariableHomeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugVariableHomeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugVariableHomeEnum_Next(This,celt,homes,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,homes,pceltFetched) ) +#define ICorDebugVariableHomeEnum_Next(This,celt,homes,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,homes,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugVariableHomeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugVariableHomeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCodeEnum_INTERFACE_DEFINED__ #define __ICorDebugCodeEnum_INTERFACE_DEFINED__ /* interface ICorDebugCodeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCodeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("55E96461-9645-45e4-A2FF-0367877ABCDE") ICorDebugCodeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugCode *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCodeEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCodeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCodeEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCodeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugCodeEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugCodeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugCodeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugCodeEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugCodeEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugCodeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugCode *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugCodeEnumVtbl; @@ -18727,118 +17629,110 @@ EXTERN_C const IID IID_ICorDebugCodeEnum; CONST_VTBL struct ICorDebugCodeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCodeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCodeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCodeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCodeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCodeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCodeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCodeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugCodeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugCodeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugCodeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugCodeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugCodeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugCodeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugCodeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugCodeEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugCodeEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCodeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCodeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugTypeEnum_INTERFACE_DEFINED__ #define __ICorDebugTypeEnum_INTERFACE_DEFINED__ /* interface ICorDebugTypeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugTypeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("10F27499-9DF2-43ce-8333-A321D7C99CB4") ICorDebugTypeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugType *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugTypeEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugTypeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugTypeEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugTypeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugTypeEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugTypeEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugTypeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugTypeEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugTypeEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugTypeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugType *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugTypeEnumVtbl; @@ -18847,147 +17741,137 @@ EXTERN_C const IID IID_ICorDebugTypeEnum; CONST_VTBL struct ICorDebugTypeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugTypeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugTypeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugTypeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugTypeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugTypeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugTypeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugTypeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugTypeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugTypeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugTypeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugTypeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugTypeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugTypeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugTypeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugTypeEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugTypeEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugTypeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugTypeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugType_INTERFACE_DEFINED__ #define __ICorDebugType_INTERFACE_DEFINED__ /* interface ICorDebugType */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugType; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D613F0BB-ACE1-4c19-BD72-E4C08D5DA7F5") ICorDebugType : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetType( + virtual HRESULT STDMETHODCALLTYPE GetType( /* [out] */ CorElementType *ty) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClass( + + virtual HRESULT STDMETHODCALLTYPE GetClass( /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( + + virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( /* [out] */ ICorDebugTypeEnum **ppTyParEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFirstTypeParameter( + + virtual HRESULT STDMETHODCALLTYPE GetFirstTypeParameter( /* [out] */ ICorDebugType **value) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBase( + + virtual HRESULT STDMETHODCALLTYPE GetBase( /* [out] */ ICorDebugType **pBase) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( + + virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRank( + + virtual HRESULT STDMETHODCALLTYPE GetRank( /* [out] */ ULONG32 *pnRank) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugTypeVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugType * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugType * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugType * This); - - DECLSPEC_XFGVIRT(ICorDebugType, GetType) - HRESULT ( STDMETHODCALLTYPE *GetType )( + + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugType * This, /* [out] */ CorElementType *ty); - - DECLSPEC_XFGVIRT(ICorDebugType, GetClass) - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugType * This, /* [out] */ ICorDebugClass **ppClass); - - DECLSPEC_XFGVIRT(ICorDebugType, EnumerateTypeParameters) - HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( ICorDebugType * This, /* [out] */ ICorDebugTypeEnum **ppTyParEnum); - - DECLSPEC_XFGVIRT(ICorDebugType, GetFirstTypeParameter) - HRESULT ( STDMETHODCALLTYPE *GetFirstTypeParameter )( + + HRESULT ( STDMETHODCALLTYPE *GetFirstTypeParameter )( ICorDebugType * This, /* [out] */ ICorDebugType **value); - - DECLSPEC_XFGVIRT(ICorDebugType, GetBase) - HRESULT ( STDMETHODCALLTYPE *GetBase )( + + HRESULT ( STDMETHODCALLTYPE *GetBase )( ICorDebugType * This, /* [out] */ ICorDebugType **pBase); - - DECLSPEC_XFGVIRT(ICorDebugType, GetStaticFieldValue) - HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( + + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( ICorDebugType * This, /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue); - - DECLSPEC_XFGVIRT(ICorDebugType, GetRank) - HRESULT ( STDMETHODCALLTYPE *GetRank )( + + HRESULT ( STDMETHODCALLTYPE *GetRank )( ICorDebugType * This, /* [out] */ ULONG32 *pnRank); - + END_INTERFACE } ICorDebugTypeVtbl; @@ -18996,100 +17880,96 @@ EXTERN_C const IID IID_ICorDebugType; CONST_VTBL struct ICorDebugTypeVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugType_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugType_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugType_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugType_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugType_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugType_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugType_GetType(This,ty) \ - ( (This)->lpVtbl -> GetType(This,ty) ) +#define ICorDebugType_GetType(This,ty) \ + ( (This)->lpVtbl -> GetType(This,ty) ) -#define ICorDebugType_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) +#define ICorDebugType_GetClass(This,ppClass) \ + ( (This)->lpVtbl -> GetClass(This,ppClass) ) -#define ICorDebugType_EnumerateTypeParameters(This,ppTyParEnum) \ - ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) +#define ICorDebugType_EnumerateTypeParameters(This,ppTyParEnum) \ + ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) -#define ICorDebugType_GetFirstTypeParameter(This,value) \ - ( (This)->lpVtbl -> GetFirstTypeParameter(This,value) ) +#define ICorDebugType_GetFirstTypeParameter(This,value) \ + ( (This)->lpVtbl -> GetFirstTypeParameter(This,value) ) -#define ICorDebugType_GetBase(This,pBase) \ - ( (This)->lpVtbl -> GetBase(This,pBase) ) +#define ICorDebugType_GetBase(This,pBase) \ + ( (This)->lpVtbl -> GetBase(This,pBase) ) -#define ICorDebugType_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ - ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) +#define ICorDebugType_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ + ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) -#define ICorDebugType_GetRank(This,pnRank) \ - ( (This)->lpVtbl -> GetRank(This,pnRank) ) +#define ICorDebugType_GetRank(This,pnRank) \ + ( (This)->lpVtbl -> GetRank(This,pnRank) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugType_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugType_INTERFACE_DEFINED__ */ #ifndef __ICorDebugType2_INTERFACE_DEFINED__ #define __ICorDebugType2_INTERFACE_DEFINED__ /* interface ICorDebugType2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugType2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("e6e91d79-693d-48bc-b417-8284b4f10fb5") ICorDebugType2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetTypeID( + virtual HRESULT STDMETHODCALLTYPE GetTypeID( /* [out] */ COR_TYPEID *id) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugType2Vtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugType2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugType2 * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugType2 * This); - - DECLSPEC_XFGVIRT(ICorDebugType2, GetTypeID) - HRESULT ( STDMETHODCALLTYPE *GetTypeID )( + + HRESULT ( STDMETHODCALLTYPE *GetTypeID )( ICorDebugType2 * This, /* [out] */ COR_TYPEID *id); - + END_INTERFACE } ICorDebugType2Vtbl; @@ -19098,105 +17978,97 @@ EXTERN_C const IID IID_ICorDebugType2; CONST_VTBL struct ICorDebugType2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugType2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugType2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugType2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugType2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugType2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugType2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugType2_GetTypeID(This,id) \ - ( (This)->lpVtbl -> GetTypeID(This,id) ) +#define ICorDebugType2_GetTypeID(This,id) \ + ( (This)->lpVtbl -> GetTypeID(This,id) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugType2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugType2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugErrorInfoEnum_INTERFACE_DEFINED__ #define __ICorDebugErrorInfoEnum_INTERFACE_DEFINED__ /* interface ICorDebugErrorInfoEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugErrorInfoEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F0E18809-72B5-11d2-976F-00A0C9B4D50C") ICorDebugErrorInfoEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugEditAndContinueErrorInfo *errors[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugErrorInfoEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugErrorInfoEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugErrorInfoEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugErrorInfoEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugErrorInfoEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugErrorInfoEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugErrorInfoEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugErrorInfoEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugErrorInfoEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugErrorInfoEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugEditAndContinueErrorInfo *errors[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugErrorInfoEnumVtbl; @@ -19205,118 +18077,110 @@ EXTERN_C const IID IID_ICorDebugErrorInfoEnum; CONST_VTBL struct ICorDebugErrorInfoEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugErrorInfoEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugErrorInfoEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugErrorInfoEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugErrorInfoEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugErrorInfoEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugErrorInfoEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugErrorInfoEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugErrorInfoEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugErrorInfoEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugErrorInfoEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugErrorInfoEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugErrorInfoEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugErrorInfoEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugErrorInfoEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugErrorInfoEnum_Next(This,celt,errors,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,errors,pceltFetched) ) +#define ICorDebugErrorInfoEnum_Next(This,celt,errors,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,errors,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugErrorInfoEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugErrorInfoEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAppDomainEnum_INTERFACE_DEFINED__ #define __ICorDebugAppDomainEnum_INTERFACE_DEFINED__ /* interface ICorDebugAppDomainEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomainEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("63ca1b24-4359-4883-bd57-13f815f58744") ICorDebugAppDomainEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAppDomain *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomainEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomainEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomainEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomainEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugAppDomainEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugAppDomainEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugAppDomainEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugAppDomainEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugAppDomainEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugAppDomainEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAppDomain *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugAppDomainEnumVtbl; @@ -19325,118 +18189,110 @@ EXTERN_C const IID IID_ICorDebugAppDomainEnum; CONST_VTBL struct ICorDebugAppDomainEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomainEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomainEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomainEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomainEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomainEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomainEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomainEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugAppDomainEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugAppDomainEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugAppDomainEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugAppDomainEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugAppDomainEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugAppDomainEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugAppDomainEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugAppDomainEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugAppDomainEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomainEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomainEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAssemblyEnum_INTERFACE_DEFINED__ #define __ICorDebugAssemblyEnum_INTERFACE_DEFINED__ /* interface ICorDebugAssemblyEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssemblyEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("4a2a1ec9-85ec-4bfb-9f15-a89fdfe0fe83") ICorDebugAssemblyEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAssembly *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAssemblyEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssemblyEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssemblyEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssemblyEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugAssemblyEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugAssemblyEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugAssemblyEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugAssemblyEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugAssemblyEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugAssemblyEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAssembly *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugAssemblyEnumVtbl; @@ -19445,118 +18301,110 @@ EXTERN_C const IID IID_ICorDebugAssemblyEnum; CONST_VTBL struct ICorDebugAssemblyEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAssemblyEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAssemblyEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAssemblyEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAssemblyEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAssemblyEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAssemblyEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAssemblyEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugAssemblyEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugAssemblyEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugAssemblyEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugAssemblyEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugAssemblyEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugAssemblyEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugAssemblyEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugAssemblyEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugAssemblyEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAssemblyEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAssemblyEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ #define __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ /* interface ICorDebugBlockingObjectEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBlockingObjectEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("976A6278-134A-4a81-81A3-8F277943F4C3") ICorDebugBlockingObjectEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugBlockingObject values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugBlockingObjectEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBlockingObjectEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBlockingObjectEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBlockingObjectEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugBlockingObjectEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugBlockingObjectEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugBlockingObjectEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugBlockingObjectEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugBlockingObjectEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugBlockingObjectEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugBlockingObject values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugBlockingObjectEnumVtbl; @@ -19565,155 +18413,147 @@ EXTERN_C const IID IID_ICorDebugBlockingObjectEnum; CONST_VTBL struct ICorDebugBlockingObjectEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugBlockingObjectEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugBlockingObjectEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugBlockingObjectEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugBlockingObjectEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugBlockingObjectEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugBlockingObjectEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugBlockingObjectEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugBlockingObjectEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugBlockingObjectEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugBlockingObjectEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugBlockingObjectEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugBlockingObjectEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugBlockingObjectEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugBlockingObjectEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugBlockingObjectEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugBlockingObjectEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0131 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0130 */ +/* [local] */ #pragma warning(push) #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0130_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0130_v0_0_s_ifspec; #ifndef __ICorDebugMDA_INTERFACE_DEFINED__ #define __ICorDebugMDA_INTERFACE_DEFINED__ /* interface ICorDebugMDA */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugMDAFlags { - MDA_FLAG_SLIP = 0x2 - } CorDebugMDAFlags; + MDA_FLAG_SLIP = 0x2 + } CorDebugMDAFlags; EXTERN_C const IID IID_ICorDebugMDA; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC726F2F-1DB7-459b-B0EC-05F01D841B42") ICorDebugMDA : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDescription( + + virtual HRESULT STDMETHODCALLTYPE GetDescription( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetXML( + + virtual HRESULT STDMETHODCALLTYPE GetXML( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFlags( + + virtual HRESULT STDMETHODCALLTYPE GetFlags( /* [in] */ CorDebugMDAFlags *pFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOSThreadId( + + virtual HRESULT STDMETHODCALLTYPE GetOSThreadId( /* [out] */ DWORD *pOsTid) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMDAVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMDA * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMDA * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMDA * This); - - DECLSPEC_XFGVIRT(ICorDebugMDA, GetName) - HRESULT ( STDMETHODCALLTYPE *GetName )( + + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugMDA * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugMDA, GetDescription) - HRESULT ( STDMETHODCALLTYPE *GetDescription )( + + HRESULT ( STDMETHODCALLTYPE *GetDescription )( ICorDebugMDA * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugMDA, GetXML) - HRESULT ( STDMETHODCALLTYPE *GetXML )( + + HRESULT ( STDMETHODCALLTYPE *GetXML )( ICorDebugMDA * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - DECLSPEC_XFGVIRT(ICorDebugMDA, GetFlags) - HRESULT ( STDMETHODCALLTYPE *GetFlags )( + + HRESULT ( STDMETHODCALLTYPE *GetFlags )( ICorDebugMDA * This, /* [in] */ CorDebugMDAFlags *pFlags); - - DECLSPEC_XFGVIRT(ICorDebugMDA, GetOSThreadId) - HRESULT ( STDMETHODCALLTYPE *GetOSThreadId )( + + HRESULT ( STDMETHODCALLTYPE *GetOSThreadId )( ICorDebugMDA * This, /* [out] */ DWORD *pOsTid); - + END_INTERFACE } ICorDebugMDAVtbl; @@ -19722,133 +18562,126 @@ EXTERN_C const IID IID_ICorDebugMDA; CONST_VTBL struct ICorDebugMDAVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMDA_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMDA_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMDA_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMDA_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMDA_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMDA_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMDA_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugMDA_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugMDA_GetDescription(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetDescription(This,cchName,pcchName,szName) ) +#define ICorDebugMDA_GetDescription(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetDescription(This,cchName,pcchName,szName) ) -#define ICorDebugMDA_GetXML(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetXML(This,cchName,pcchName,szName) ) +#define ICorDebugMDA_GetXML(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetXML(This,cchName,pcchName,szName) ) -#define ICorDebugMDA_GetFlags(This,pFlags) \ - ( (This)->lpVtbl -> GetFlags(This,pFlags) ) +#define ICorDebugMDA_GetFlags(This,pFlags) \ + ( (This)->lpVtbl -> GetFlags(This,pFlags) ) -#define ICorDebugMDA_GetOSThreadId(This,pOsTid) \ - ( (This)->lpVtbl -> GetOSThreadId(This,pOsTid) ) +#define ICorDebugMDA_GetOSThreadId(This,pOsTid) \ + ( (This)->lpVtbl -> GetOSThreadId(This,pOsTid) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMDA_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMDA_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0132 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0131 */ +/* [local] */ #pragma warning(pop) #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0132_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0132_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_s_ifspec; #ifndef __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ #define __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ /* interface ICorDebugEditAndContinueErrorInfo */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEditAndContinueErrorInfo; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("8D600D41-F4F6-4cb3-B7EC-7BD164944036") ICorDebugEditAndContinueErrorInfo : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdToken *pToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetErrorCode( + + virtual HRESULT STDMETHODCALLTYPE GetErrorCode( /* [out] */ HRESULT *pHr) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( + + virtual HRESULT STDMETHODCALLTYPE GetString( /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEditAndContinueErrorInfoVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEditAndContinueErrorInfo * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEditAndContinueErrorInfo * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEditAndContinueErrorInfo * This); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueErrorInfo, GetModule) - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugEditAndContinueErrorInfo * This, /* [out] */ ICorDebugModule **ppModule); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueErrorInfo, GetToken) - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugEditAndContinueErrorInfo * This, /* [out] */ mdToken *pToken); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueErrorInfo, GetErrorCode) - HRESULT ( STDMETHODCALLTYPE *GetErrorCode )( + + HRESULT ( STDMETHODCALLTYPE *GetErrorCode )( ICorDebugEditAndContinueErrorInfo * This, /* [out] */ HRESULT *pHr); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueErrorInfo, GetString) - HRESULT ( STDMETHODCALLTYPE *GetString )( + + HRESULT ( STDMETHODCALLTYPE *GetString )( ICorDebugEditAndContinueErrorInfo * This, /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]); - + END_INTERFACE } ICorDebugEditAndContinueErrorInfoVtbl; @@ -19857,154 +18690,144 @@ EXTERN_C const IID IID_ICorDebugEditAndContinueErrorInfo; CONST_VTBL struct ICorDebugEditAndContinueErrorInfoVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEditAndContinueErrorInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEditAndContinueErrorInfo_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEditAndContinueErrorInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEditAndContinueErrorInfo_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEditAndContinueErrorInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEditAndContinueErrorInfo_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEditAndContinueErrorInfo_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) +#define ICorDebugEditAndContinueErrorInfo_GetModule(This,ppModule) \ + ( (This)->lpVtbl -> GetModule(This,ppModule) ) -#define ICorDebugEditAndContinueErrorInfo_GetToken(This,pToken) \ - ( (This)->lpVtbl -> GetToken(This,pToken) ) +#define ICorDebugEditAndContinueErrorInfo_GetToken(This,pToken) \ + ( (This)->lpVtbl -> GetToken(This,pToken) ) -#define ICorDebugEditAndContinueErrorInfo_GetErrorCode(This,pHr) \ - ( (This)->lpVtbl -> GetErrorCode(This,pHr) ) +#define ICorDebugEditAndContinueErrorInfo_GetErrorCode(This,pHr) \ + ( (This)->lpVtbl -> GetErrorCode(This,pHr) ) -#define ICorDebugEditAndContinueErrorInfo_GetString(This,cchString,pcchString,szString) \ - ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) +#define ICorDebugEditAndContinueErrorInfo_GetString(This,cchString,pcchString,szString) \ + ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0133 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0132 */ +/* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0133_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0133_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0132_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0132_v0_0_s_ifspec; #ifndef __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ #define __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ /* interface ICorDebugEditAndContinueSnapshot */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEditAndContinueSnapshot; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("6DC3FA01-D7CB-11d2-8A95-0080C792E5D8") ICorDebugEditAndContinueSnapshot : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CopyMetaData( + virtual HRESULT STDMETHODCALLTYPE CopyMetaData( /* [in] */ IStream *pIStream, /* [out] */ GUID *pMvid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMvid( + + virtual HRESULT STDMETHODCALLTYPE GetMvid( /* [out] */ GUID *pMvid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRoDataRVA( + + virtual HRESULT STDMETHODCALLTYPE GetRoDataRVA( /* [out] */ ULONG32 *pRoDataRVA) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRwDataRVA( + + virtual HRESULT STDMETHODCALLTYPE GetRwDataRVA( /* [out] */ ULONG32 *pRwDataRVA) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPEBytes( + + virtual HRESULT STDMETHODCALLTYPE SetPEBytes( /* [in] */ IStream *pIStream) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetILMap( + + virtual HRESULT STDMETHODCALLTYPE SetILMap( /* [in] */ mdToken mdFunction, /* [in] */ ULONG cMapSize, /* [size_is][in] */ COR_IL_MAP map[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPESymbolBytes( + + virtual HRESULT STDMETHODCALLTYPE SetPESymbolBytes( /* [in] */ IStream *pIStream) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEditAndContinueSnapshotVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEditAndContinueSnapshot * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEditAndContinueSnapshot * This); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, CopyMetaData) - HRESULT ( STDMETHODCALLTYPE *CopyMetaData )( + + HRESULT ( STDMETHODCALLTYPE *CopyMetaData )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ IStream *pIStream, /* [out] */ GUID *pMvid); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, GetMvid) - HRESULT ( STDMETHODCALLTYPE *GetMvid )( + + HRESULT ( STDMETHODCALLTYPE *GetMvid )( ICorDebugEditAndContinueSnapshot * This, /* [out] */ GUID *pMvid); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, GetRoDataRVA) - HRESULT ( STDMETHODCALLTYPE *GetRoDataRVA )( + + HRESULT ( STDMETHODCALLTYPE *GetRoDataRVA )( ICorDebugEditAndContinueSnapshot * This, /* [out] */ ULONG32 *pRoDataRVA); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, GetRwDataRVA) - HRESULT ( STDMETHODCALLTYPE *GetRwDataRVA )( + + HRESULT ( STDMETHODCALLTYPE *GetRwDataRVA )( ICorDebugEditAndContinueSnapshot * This, /* [out] */ ULONG32 *pRwDataRVA); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, SetPEBytes) - HRESULT ( STDMETHODCALLTYPE *SetPEBytes )( + + HRESULT ( STDMETHODCALLTYPE *SetPEBytes )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ IStream *pIStream); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, SetILMap) - HRESULT ( STDMETHODCALLTYPE *SetILMap )( + + HRESULT ( STDMETHODCALLTYPE *SetILMap )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ mdToken mdFunction, /* [in] */ ULONG cMapSize, /* [size_is][in] */ COR_IL_MAP map[ ]); - - DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, SetPESymbolBytes) - HRESULT ( STDMETHODCALLTYPE *SetPESymbolBytes )( + + HRESULT ( STDMETHODCALLTYPE *SetPESymbolBytes )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ IStream *pIStream); - + END_INTERFACE } ICorDebugEditAndContinueSnapshotVtbl; @@ -20013,123 +18836,115 @@ EXTERN_C const IID IID_ICorDebugEditAndContinueSnapshot; CONST_VTBL struct ICorDebugEditAndContinueSnapshotVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEditAndContinueSnapshot_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEditAndContinueSnapshot_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEditAndContinueSnapshot_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEditAndContinueSnapshot_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEditAndContinueSnapshot_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEditAndContinueSnapshot_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEditAndContinueSnapshot_CopyMetaData(This,pIStream,pMvid) \ - ( (This)->lpVtbl -> CopyMetaData(This,pIStream,pMvid) ) +#define ICorDebugEditAndContinueSnapshot_CopyMetaData(This,pIStream,pMvid) \ + ( (This)->lpVtbl -> CopyMetaData(This,pIStream,pMvid) ) -#define ICorDebugEditAndContinueSnapshot_GetMvid(This,pMvid) \ - ( (This)->lpVtbl -> GetMvid(This,pMvid) ) +#define ICorDebugEditAndContinueSnapshot_GetMvid(This,pMvid) \ + ( (This)->lpVtbl -> GetMvid(This,pMvid) ) -#define ICorDebugEditAndContinueSnapshot_GetRoDataRVA(This,pRoDataRVA) \ - ( (This)->lpVtbl -> GetRoDataRVA(This,pRoDataRVA) ) +#define ICorDebugEditAndContinueSnapshot_GetRoDataRVA(This,pRoDataRVA) \ + ( (This)->lpVtbl -> GetRoDataRVA(This,pRoDataRVA) ) -#define ICorDebugEditAndContinueSnapshot_GetRwDataRVA(This,pRwDataRVA) \ - ( (This)->lpVtbl -> GetRwDataRVA(This,pRwDataRVA) ) +#define ICorDebugEditAndContinueSnapshot_GetRwDataRVA(This,pRwDataRVA) \ + ( (This)->lpVtbl -> GetRwDataRVA(This,pRwDataRVA) ) -#define ICorDebugEditAndContinueSnapshot_SetPEBytes(This,pIStream) \ - ( (This)->lpVtbl -> SetPEBytes(This,pIStream) ) +#define ICorDebugEditAndContinueSnapshot_SetPEBytes(This,pIStream) \ + ( (This)->lpVtbl -> SetPEBytes(This,pIStream) ) -#define ICorDebugEditAndContinueSnapshot_SetILMap(This,mdFunction,cMapSize,map) \ - ( (This)->lpVtbl -> SetILMap(This,mdFunction,cMapSize,map) ) +#define ICorDebugEditAndContinueSnapshot_SetILMap(This,mdFunction,cMapSize,map) \ + ( (This)->lpVtbl -> SetILMap(This,mdFunction,cMapSize,map) ) -#define ICorDebugEditAndContinueSnapshot_SetPESymbolBytes(This,pIStream) \ - ( (This)->lpVtbl -> SetPESymbolBytes(This,pIStream) ) +#define ICorDebugEditAndContinueSnapshot_SetPESymbolBytes(This,pIStream) \ + ( (This)->lpVtbl -> SetPESymbolBytes(This,pIStream) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ */ #ifndef __ICorDebugExceptionObjectCallStackEnum_INTERFACE_DEFINED__ #define __ICorDebugExceptionObjectCallStackEnum_INTERFACE_DEFINED__ /* interface ICorDebugExceptionObjectCallStackEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugExceptionObjectCallStackEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("ED775530-4DC4-41F7-86D0-9E2DEF7DFC66") ICorDebugExceptionObjectCallStackEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugExceptionObjectStackFrame values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugExceptionObjectCallStackEnumVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugExceptionObjectCallStackEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugExceptionObjectCallStackEnum * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugExceptionObjectCallStackEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) - HRESULT ( STDMETHODCALLTYPE *Skip )( + + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugExceptionObjectCallStackEnum * This, /* [in] */ ULONG celt); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) - HRESULT ( STDMETHODCALLTYPE *Reset )( + + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugExceptionObjectCallStackEnum * This); - - DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) - HRESULT ( STDMETHODCALLTYPE *Clone )( + + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugExceptionObjectCallStackEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugExceptionObjectCallStackEnum * This, /* [out] */ ULONG *pcelt); - - DECLSPEC_XFGVIRT(ICorDebugExceptionObjectCallStackEnum, Next) - HRESULT ( STDMETHODCALLTYPE *Next )( + + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugExceptionObjectCallStackEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugExceptionObjectStackFrame values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugExceptionObjectCallStackEnumVtbl; @@ -20138,95 +18953,91 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectCallStackEnum; CONST_VTBL struct ICorDebugExceptionObjectCallStackEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugExceptionObjectCallStackEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugExceptionObjectCallStackEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugExceptionObjectCallStackEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugExceptionObjectCallStackEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugExceptionObjectCallStackEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugExceptionObjectCallStackEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugExceptionObjectCallStackEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugExceptionObjectCallStackEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugExceptionObjectCallStackEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugExceptionObjectCallStackEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugExceptionObjectCallStackEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugExceptionObjectCallStackEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugExceptionObjectCallStackEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugExceptionObjectCallStackEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugExceptionObjectCallStackEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugExceptionObjectCallStackEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugExceptionObjectCallStackEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugExceptionObjectCallStackEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugExceptionObjectValue_INTERFACE_DEFINED__ #define __ICorDebugExceptionObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugExceptionObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugExceptionObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AE4CA65D-59DD-42A2-83A5-57E8A08D8719") ICorDebugExceptionObjectValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateExceptionCallStack( + virtual HRESULT STDMETHODCALLTYPE EnumerateExceptionCallStack( /* [out] */ ICorDebugExceptionObjectCallStackEnum **ppCallStackEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugExceptionObjectValueVtbl { BEGIN_INTERFACE - - DECLSPEC_XFGVIRT(IUnknown, QueryInterface) - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugExceptionObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - DECLSPEC_XFGVIRT(IUnknown, AddRef) - ULONG ( STDMETHODCALLTYPE *AddRef )( + + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugExceptionObjectValue * This); - - DECLSPEC_XFGVIRT(IUnknown, Release) - ULONG ( STDMETHODCALLTYPE *Release )( + + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugExceptionObjectValue * This); - - DECLSPEC_XFGVIRT(ICorDebugExceptionObjectValue, EnumerateExceptionCallStack) - HRESULT ( STDMETHODCALLTYPE *EnumerateExceptionCallStack )( + + HRESULT ( STDMETHODCALLTYPE *EnumerateExceptionCallStack )( ICorDebugExceptionObjectValue * This, /* [out] */ ICorDebugExceptionObjectCallStackEnum **ppCallStackEnum); - + END_INTERFACE } ICorDebugExceptionObjectValueVtbl; @@ -20235,33 +19046,33 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectValue; CONST_VTBL struct ICorDebugExceptionObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugExceptionObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugExceptionObjectValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugExceptionObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugExceptionObjectValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugExceptionObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugExceptionObjectValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugExceptionObjectValue_EnumerateExceptionCallStack(This,ppCallStackEnum) \ - ( (This)->lpVtbl -> EnumerateExceptionCallStack(This,ppCallStackEnum) ) +#define ICorDebugExceptionObjectValue_EnumerateExceptionCallStack(This,ppCallStackEnum) \ + ( (This)->lpVtbl -> EnumerateExceptionCallStack(This,ppCallStackEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugExceptionObjectValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugExceptionObjectValue_INTERFACE_DEFINED__ */ @@ -20269,7 +19080,7 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectValue; #define __CORDBLib_LIBRARY_DEFINED__ /* library CORDBLib */ -/* [helpstring][version][uuid] */ +/* [helpstring][version][uuid] */ @@ -20330,5 +19141,3 @@ EmbeddedCLRCorDebug; #endif #endif - - diff --git a/src/coreclr/pal/prebuilt/inc/corprof.h b/src/coreclr/pal/prebuilt/inc/corprof.h index d4cd312a99d3a..88c6dcc98bac3 100644 --- a/src/coreclr/pal/prebuilt/inc/corprof.h +++ b/src/coreclr/pal/prebuilt/inc/corprof.h @@ -10218,8 +10218,7 @@ typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0011_0001 { COR_PRF_CODEGEN_DISABLE_INLINING = 0x1, - COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2, - COR_PRF_CODEGEN_DEBUG_INFO = 0x3 + COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2 } COR_PRF_CODEGEN_FLAGS; diff --git a/src/coreclr/tools/Common/Compiler/NativeAotNameMangler.cs b/src/coreclr/tools/Common/Compiler/NativeAotNameMangler.cs index 787767ed0d077..d5818b5aecc42 100644 --- a/src/coreclr/tools/Common/Compiler/NativeAotNameMangler.cs +++ b/src/coreclr/tools/Common/Compiler/NativeAotNameMangler.cs @@ -353,7 +353,8 @@ private string ComputeMangledTypeName(TypeDesc type) lock (this) { // Ensure that name is unique and update our tables accordingly. - _mangledTypeNames.TryAdd(type, mangledName); + if (!_mangledTypeNames.ContainsKey(type)) + _mangledTypeNames.Add(type, mangledName); } return mangledName; @@ -385,7 +386,8 @@ public override Utf8String GetMangledMethodName(MethodDesc method) lock (this) { - _mangledMethodNames.TryAdd(method, utf8MangledName); + if (!_mangledMethodNames.ContainsKey(method)) + _mangledMethodNames.Add(method, utf8MangledName); } return utf8MangledName; @@ -555,7 +557,8 @@ private Utf8String ComputeUnqualifiedMangledMethodName(MethodDesc method) { lock (this) { - _unqualifiedMangledMethodNames.TryAdd(method, utf8MangledName); + if (!_unqualifiedMangledMethodNames.ContainsKey(method)) + _unqualifiedMangledMethodNames.Add(method, utf8MangledName); } } @@ -619,7 +622,8 @@ private Utf8String ComputeMangledFieldName(FieldDesc field) lock (this) { - _mangledFieldNames.TryAdd(field, utf8MangledName); + if (!_mangledFieldNames.ContainsKey(field)) + _mangledFieldNames.Add(field, utf8MangledName); } return utf8MangledName; @@ -640,7 +644,8 @@ public override string GetMangledStringName(string literal) lock (this) { - _mangledStringLiterals.TryAdd(literal, mangledName); + if (!_mangledStringLiterals.ContainsKey(literal)) + _mangledStringLiterals.Add(literal, mangledName); } return mangledName; diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs b/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs index 7837e8c24f832..0693f3c1b69f1 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs @@ -275,7 +275,6 @@ which is the right helper to use to allocate an object of a given type. */ CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED, // throw PlatformNotSupportedException CORINFO_HELP_THROW_TYPE_NOT_SUPPORTED, // throw TypeNotSupportedException CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION, // throw AmbiguousResolutionException for failed static virtual method resolution - CORINFO_HELP_THROW_ENTRYPOINT_NOT_FOUND_EXCEPTION, // throw EntryPointNotFoundException for failed static virtual method resolution CORINFO_HELP_JIT_PINVOKE_BEGIN, // Transition to preemptive mode before a P/Invoke, frame is the first argument CORINFO_HELP_JIT_PINVOKE_END, // Transition to cooperative mode after a P/Invoke, frame is the first argument diff --git a/src/coreclr/tools/StressLogAnalyzer/StressLogDump.cpp b/src/coreclr/tools/StressLogAnalyzer/StressLogDump.cpp index f3be8b8812218..61fa9c41b1f30 100644 --- a/src/coreclr/tools/StressLogAnalyzer/StressLogDump.cpp +++ b/src/coreclr/tools/StressLogAnalyzer/StressLogDump.cpp @@ -22,11 +22,10 @@ class MapViewHolder #endif // STRESS_LOG #define STRESS_LOG_READONLY #include "../../../inc/stresslog.h" -#include "StressMsgReader.h" void GcHistClear(); -void GcHistAddLog(LPCSTR msg, StressMsgReader stressMsg); +void GcHistAddLog(LPCSTR msg, StressMsg* stressMsg); /*********************************************************************************/ @@ -58,7 +57,7 @@ ThreadStressLog* ThreadStressLog::FindLatestThreadLog() const for (const ThreadStressLog* ptr = this; ptr != NULL; ptr = ptr->next) { if (ptr->readPtr != NULL) - if (latestLog == 0 || StressMsgReader(ptr->readPtr).GetTimeStamp() > StressMsgReader(latestLog->readPtr).GetTimeStamp()) + if (latestLog == 0 || ptr->readPtr->GetTimeStamp() > latestLog->readPtr->GetTimeStamp()) latestLog = ptr; } return const_cast(latestLog); @@ -424,9 +423,9 @@ HRESULT StressLog::Dump(ULONG64 outProcLog, const char* fileName, struct IDebugD // TODO: fix on 64 bit inProcPtr->Activate (); - if (StressMsgReader(inProcPtr->readPtr).GetTimeStamp() > lastTimeStamp) + if (inProcPtr->readPtr->GetTimeStamp() > lastTimeStamp) { - lastTimeStamp = StressMsgReader(inProcPtr->readPtr).GetTimeStamp(); + lastTimeStamp = inProcPtr->readPtr->GetTimeStamp(); } outProcPtr = TO_CDADDR(inProcPtr->next); @@ -489,20 +488,20 @@ HRESULT StressLog::Dump(ULONG64 outProcLog, const char* fileName, struct IDebugD break; } - StressMsgReader latestMsg = latestLog->readPtr; - if (latestMsg.GetFormatOffset() != 0 && !latestLog->CompletedDump()) + StressMsg* latestMsg = latestLog->readPtr; + if (latestMsg->GetFormatOffset() != 0 && !latestLog->CompletedDump()) { - TADDR taFmt = (latestMsg.GetFormatOffset()) + TO_TADDR(g_hThisInst); + TADDR taFmt = (latestMsg->GetFormatOffset()) + TO_TADDR(g_hThisInst); hr = memCallBack->ReadVirtual(TO_CDADDR(taFmt), format, 256, 0); if (hr != S_OK) strcpy_s(format, ARRAY_SIZE(format), "Could not read address of format string"); - double deltaTime = ((double) (latestMsg.GetTimeStamp() - inProcLog.startTimeStamp)) / inProcLog.tickFrequency; + double deltaTime = ((double) (latestMsg->GetTimeStamp() - inProcLog.startTimeStamp)) / inProcLog.tickFrequency; if (bDoGcHist) { if (strcmp(format, ThreadStressLog::TaskSwitchMsg()) == 0) { - latestLog->threadId = (unsigned)(size_t)latestMsg.GetArgs()[0]; + latestLog->threadId = (unsigned)(size_t)latestMsg->args[0]; } GcHistAddLog(format, latestMsg); } @@ -510,19 +509,19 @@ HRESULT StressLog::Dump(ULONG64 outProcLog, const char* fileName, struct IDebugD { if (strcmp(format, ThreadStressLog::TaskSwitchMsg()) == 0) { - fprintf (file, "Task was switched from %x\n", (unsigned)(size_t)latestMsg.GetArgs()[0]); - latestLog->threadId = (unsigned)(size_t)latestMsg.GetArgs()[0]; + fprintf (file, "Task was switched from %x\n", (unsigned)(size_t)latestMsg->args[0]); + latestLog->threadId = (unsigned)(size_t)latestMsg->args[0]; } else { - args = latestMsg.GetArgs(); - formatOutput(memCallBack, file, format, (unsigned)latestLog->threadId, deltaTime, latestMsg.GetFacility(), args); + args = latestMsg->args; + formatOutput(memCallBack, file, format, (unsigned)latestLog->threadId, deltaTime, latestMsg->GetFacility(), args); } } msgCtr++; } - latestLog->readPtr = latestLog->AdvanceRead(latestMsg.GetNumberOfArgs()); + latestLog->readPtr = latestLog->AdvanceRead(latestMsg->GetNumberOfArgs()); if (latestLog->CompletedDump()) { latestLog->readPtr = NULL; diff --git a/src/coreclr/tools/StressLogAnalyzer/StressLogPlugin.cpp b/src/coreclr/tools/StressLogAnalyzer/StressLogPlugin.cpp index d4ec55851c711..65e5edc5a3a9c 100644 --- a/src/coreclr/tools/StressLogAnalyzer/StressLogPlugin.cpp +++ b/src/coreclr/tools/StressLogAnalyzer/StressLogPlugin.cpp @@ -40,7 +40,6 @@ bool IsInCantAllocStressLogRegion() #include #include "../../../inc/stresslog.h" -#include "StressMsgReader.h" size_t StressLog::writing_base_address; size_t StressLog::reading_base_address; @@ -68,7 +67,7 @@ void GcHistClear() { } -void GcHistAddLog(LPCSTR msg, StressMsgReader stressMsg) +void GcHistAddLog(LPCSTR msg, StressMsg* stressMsg) { } @@ -532,7 +531,7 @@ bool FilterMessage(StressLog::StressLogHeader* hdr, ThreadStressLog* tsl, uint32 struct StressThreadAndMsg { uint64_t threadId; - StressMsgReader msg; + StressMsg* msg; uint64_t msgId; }; @@ -541,9 +540,9 @@ int CmpMsg(const void* p1, const void* p2) const StressThreadAndMsg* msg1 = (const StressThreadAndMsg*)p1; const StressThreadAndMsg* msg2 = (const StressThreadAndMsg*)p2; - if (msg1->msg.GetTimeStamp() < msg2->msg.GetTimeStamp()) + if (msg1->msg->GetTimeStamp() < msg2->msg->GetTimeStamp()) return 1; - if (msg1->msg.GetTimeStamp() > msg2->msg.GetTimeStamp()) + if (msg1->msg->GetTimeStamp() > msg2->msg->GetTimeStamp()) return -11; if (msg1->threadId < msg2->threadId) @@ -565,7 +564,7 @@ struct ThreadStressLogDesc volatile LONG workStarted; volatile LONG workFinished; ThreadStressLog* tsl; - StressMsgReader earliestMessage; + StressMsg* earliestMessage; ThreadStressLogDesc() : workStarted(0), workFinished(0), tsl(nullptr), earliestMessage(nullptr) { @@ -585,7 +584,7 @@ static double s_timeFilterStart = 0; static double s_timeFilterEnd = 0; static const char* s_outputFileName = nullptr; -StressLog::StressLogHeader* s_hdr; +static StressLog::StressLogHeader* s_hdr; static bool s_fPrintFormatStrings; @@ -1057,7 +1056,7 @@ bool ParseOptions(int argc, char* argv[]) return true; } -static void IncludeMessage(uint64_t threadId, StressMsgReader msg) +static void IncludeMessage(uint64_t threadId, StressMsg* msg) { LONGLONG msgCount = InterlockedIncrement64(&s_msgCount) - 1; if (msgCount < MAX_MESSAGE_COUNT) @@ -1090,10 +1089,10 @@ DWORD WINAPI ProcessStresslogWorker(LPVOID) wrappedWriteThreadCount++; } // printf("thread: %zx\n", tsl->threadId); - void* msg = StressLog::TranslateMemoryMappedPointer(tsl->curPtr); + StressMsg* msg = StressLog::TranslateMemoryMappedPointer(tsl->curPtr); StressLogChunk* slc = StressLog::TranslateMemoryMappedPointer(tsl->curWriteChunk); int chunkCount = 0; - void* prevMsg = nullptr; + StressMsg* prevMsg = nullptr; while (true) { // printf("stress log chunk %zx\n", (size_t)slc); @@ -1136,15 +1135,14 @@ DWORD WINAPI ProcessStresslogWorker(LPVOID) { while (p < end && *p == 0) p++; - msg = (void*)p; + msg = (StressMsg*)p; } - void* endMsg = (void*)end; + StressMsg* endMsg = (StressMsg*)end; while (msg < endMsg) { - StressMsgReader msgReader(msg); totalMsgCount++; - char* format = (char*)(hdr->moduleImage + msgReader.GetFormatOffset()); - double deltaTime = ((double)(msgReader.GetTimeStamp() - hdr->startTimeStamp)) / hdr->tickFrequency; + char* format = (char*)(hdr->moduleImage + msg->GetFormatOffset()); + double deltaTime = ((double)(msg->GetTimeStamp() - hdr->startTimeStamp)) / hdr->tickFrequency; bool fIgnoreMessage = false; if (fTimeFilter) { @@ -1158,17 +1156,17 @@ DWORD WINAPI ProcessStresslogWorker(LPVOID) fIgnoreMessage = true; } } - int numberOfArgs = msgReader.GetNumberOfArgs(); + int numberOfArgs = msg->GetNumberOfArgs(); if (!fIgnoreMessage) { - bool fIncludeMessage = s_showAllMessages || FilterMessage(hdr, tsl, msgReader.GetFacility(), format, deltaTime, numberOfArgs, msgReader.GetArgs()); + bool fIncludeMessage = s_showAllMessages || FilterMessage(hdr, tsl, msg->GetFacility(), format, deltaTime, numberOfArgs, msg->args); if (!fIncludeMessage && s_valueFilterCount > 0) { for (int i = 0; i < numberOfArgs; i++) { for (int j = 0; j < s_valueFilterCount; j++) { - if (s_valueFilter[j].start <= (size_t)msgReader.GetArgs()[i] && (size_t)msgReader.GetArgs()[i] <= s_valueFilter[j].end) + if (s_valueFilter[j].start <= (size_t)msg->args[i] && (size_t)msg->args[i] <= s_valueFilter[j].end) { fIncludeMessage = true; break; @@ -1184,7 +1182,7 @@ DWORD WINAPI ProcessStresslogWorker(LPVOID) } } prevMsg = msg; - msg = (StressMsg*)&msgReader.GetArgs()[numberOfArgs]; + msg = (StressMsg*)&msg->args[numberOfArgs]; } if (slc == StressLog::TranslateMemoryMappedPointer(tsl->chunkListTail) && !tsl->writeHasWrapped) break; @@ -1235,16 +1233,16 @@ static void PrintFriendlyNumber(LONGLONG n) printf("%11.9f billion", n / 1000000000.0); } -static void PrintMessage(CorClrData& corClrData, FILE *outputFile, uint64_t threadId, StressMsgReader msg) +static void PrintMessage(CorClrData& corClrData, FILE *outputFile, uint64_t threadId, StressMsg* msg) { void* argBuffer[StressMsg::maxArgCnt]; - char* format = (char*)(s_hdr->moduleImage + msg.GetFormatOffset()); - int numberOfArgs = msg.GetNumberOfArgs(); + char* format = (char*)(s_hdr->moduleImage + msg->GetFormatOffset()); + int numberOfArgs = msg->GetNumberOfArgs(); for (int i = 0; i < numberOfArgs; i++) { - argBuffer[i] = msg.GetArgs()[i]; + argBuffer[i] = msg->args[i]; } - double deltaTime = ((double)(msg.GetTimeStamp() - s_hdr->startTimeStamp)) / s_hdr->tickFrequency; + double deltaTime = ((double)(msg->GetTimeStamp() - s_hdr->startTimeStamp)) / s_hdr->tickFrequency; if (!s_printHexTidForGcThreads) { GcThread gcThread; @@ -1257,7 +1255,7 @@ static void PrintMessage(CorClrData& corClrData, FILE *outputFile, uint64_t thre threadId |= 0x4000000000000000; } } - formatOutput(&corClrData, outputFile, format, threadId, deltaTime, msg.GetFacility(), argBuffer, s_fPrintFormatStrings); + formatOutput(&corClrData, outputFile, format, threadId, deltaTime, msg->GetFacility(), argBuffer, s_fPrintFormatStrings); } int ProcessStressLog(void* baseAddress, int argc, char* argv[]) @@ -1303,8 +1301,7 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) StressLog::StressLogHeader* hdr = (StressLog::StressLogHeader*)baseAddress; if (hdr->headerSize != sizeof(*hdr) || hdr->magic != *(uint32_t*)"LRTS" || - (hdr->version != 0x00010001 && - hdr->version != 0x00010002)) + hdr->version != 0x00010001) { printf("Unrecognized file format\n"); return 1; @@ -1386,8 +1383,8 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) int remMsgCount = 0; for (int msgIndex = 0; msgIndex < s_msgCount; msgIndex++) { - StressMsgReader msg = s_threadMsgBuf[msgIndex].msg; - double deltaTime = ((double)(msg.GetTimeStamp() - hdr->startTimeStamp)) / hdr->tickFrequency; + StressMsg* msg = s_threadMsgBuf[msgIndex].msg; + double deltaTime = ((double)(msg->GetTimeStamp() - hdr->startTimeStamp)) / hdr->tickFrequency; if (startTime <= deltaTime && deltaTime <= endTime) { s_threadMsgBuf[remMsgCount] = s_threadMsgBuf[msgIndex]; @@ -1466,7 +1463,7 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) for (LONGLONG i = 0; i < s_msgCount; i++) { uint64_t threadId = (unsigned)s_threadMsgBuf[i].threadId; - StressMsgReader msg = s_threadMsgBuf[i].msg; + StressMsg* msg = s_threadMsgBuf[i].msg; PrintMessage(corClrData, outputFile, threadId, msg); } @@ -1503,7 +1500,7 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) LONGLONG earliestStartCount = s_msgCount; for (int threadStressLogIndex = 0; threadStressLogIndex < s_threadStressLogCount; threadStressLogIndex++) { - StressMsgReader msg = s_threadStressLogDesc[threadStressLogIndex].earliestMessage; + StressMsg* msg = s_threadStressLogDesc[threadStressLogIndex].earliestMessage; if (msg == nullptr) continue; bool fIncludeMessage = s_printEarliestMessages; @@ -1528,7 +1525,7 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) for (LONGLONG i = earliestStartCount; i < s_msgCount; i++) { uint64_t threadId = (unsigned)s_threadMsgBuf[i].threadId; - StressMsgReader msg = s_threadMsgBuf[i].msg; + StressMsg* msg = s_threadMsgBuf[i].msg; PrintMessage(corClrData, outputFile, threadId, msg); } } diff --git a/src/coreclr/tools/SuperFileCheck/Program.cs b/src/coreclr/tools/SuperFileCheck/Program.cs index 540f1df989d8a..64203bedcf3e0 100644 --- a/src/coreclr/tools/SuperFileCheck/Program.cs +++ b/src/coreclr/tools/SuperFileCheck/Program.cs @@ -391,8 +391,8 @@ static string PreProcessMethod(MethodDeclarationInfo methodDeclInfo, string[] ch var methodName = methodDeclInfo.FullyQualifiedName.Replace("*", "{{.*}}"); // Change wild-card to FileCheck wild-card syntax. // Create anchors from the first prefix. - var beginAnchorText = $"// {checkPrefixes[0]}-LABEL: BEGIN METHOD {methodName}"; - var endAnchorText = $"// {checkPrefixes[0]}: END METHOD {methodName}"; + var startAnchorText = $"// {checkPrefixes[0]}-LABEL: for method {methodName}"; + var endAnchorText = $"// {checkPrefixes[0]}: for method {methodName}"; // Create temp source file based on the source text of the method. // Newlines are added to pad the text so FileCheck's error messages will correspond @@ -404,7 +404,7 @@ static string PreProcessMethod(MethodDeclarationInfo methodDeclInfo, string[] ch { tmpSrc.AppendLine(String.Empty); } - tmpSrc.AppendLine(beginAnchorText); + tmpSrc.AppendLine(startAnchorText); tmpSrc.AppendLine(TransformMethod(methodDecl, checkPrefixes)); tmpSrc.AppendLine(endAnchorText); diff --git a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs index 5fabd83920ea2..a36d77e8fe652 100644 --- a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs +++ b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs @@ -51,7 +51,10 @@ public IBCProfileData(MibcConfig config, bool partialNGen, IEnumerableheaderSize = sizeof(StressLogHeader); hdr->magic = *(uint32_t*)"LRTS"; - hdr->version = 0x00010002; + hdr->version = 0x00010001; hdr->memoryBase = (uint8_t*)hdr; hdr->memoryCur = hdr->memoryBase + sizeof(StressLogHeader); hdr->memoryLimit = hdr->memoryBase + maxBytesTotal; diff --git a/src/coreclr/vm/codeversion.cpp b/src/coreclr/vm/codeversion.cpp index 9c1fd769081b3..55fbb5cdd1e2e 100644 --- a/src/coreclr/vm/codeversion.cpp +++ b/src/coreclr/vm/codeversion.cpp @@ -46,10 +46,6 @@ void NativeCodeVersion::SetGCCoverageInfo(PTR_GCCoverageInfo gcCover) #else // FEATURE_CODE_VERSIONING -// This is just used as a unique id. Overflow is OK. If we happen to have more than 4+Billion rejits -// and somehow manage to not run out of memory, we'll just have to redefine ReJITID as size_t. -/* static */ -static ReJITID s_GlobalReJitId = 1; #ifndef DACCESS_COMPILE NativeCodeVersionNode::NativeCodeVersionNode( @@ -557,22 +553,20 @@ ILCodeVersionNode::ILCodeVersionNode() : m_pNextILVersionNode(dac_cast(nullptr)), m_rejitState(ILCodeVersion::kStateRequested), m_pIL(), - m_jitFlags(0), - m_deoptimized(FALSE) + m_jitFlags(0) { m_pIL.Store(dac_cast(nullptr)); } #ifndef DACCESS_COMPILE -ILCodeVersionNode::ILCodeVersionNode(Module* pModule, mdMethodDef methodDef, ReJITID id, BOOL isDeoptimized) : +ILCodeVersionNode::ILCodeVersionNode(Module* pModule, mdMethodDef methodDef, ReJITID id) : m_pModule(pModule), m_methodDef(methodDef), m_rejitId(id), m_pNextILVersionNode(dac_cast(nullptr)), m_rejitState(ILCodeVersion::kStateRequested), m_pIL(nullptr), - m_jitFlags(0), - m_deoptimized(isDeoptimized) + m_jitFlags(0) {} #endif @@ -633,12 +627,6 @@ PTR_ILCodeVersionNode ILCodeVersionNode::GetNextILVersionNode() const return m_pNextILVersionNode; } -BOOL ILCodeVersionNode::IsDeoptimized() const -{ - LIMITED_METHOD_DAC_CONTRACT; - return m_deoptimized; -} - #ifndef DACCESS_COMPILE void ILCodeVersionNode::SetRejitState(ILCodeVersion::RejitFlags newState) { @@ -953,19 +941,6 @@ const InstrumentedILOffsetMapping* ILCodeVersion::GetInstrumentedILMap() const } } -BOOL ILCodeVersion::IsDeoptimized() const -{ - LIMITED_METHOD_DAC_CONTRACT; - if (m_storageKind == StorageKind::Explicit) - { - return AsNode()->IsDeoptimized(); - } - else - { - return FALSE; - } -} - #ifndef DACCESS_COMPILE void ILCodeVersion::SetRejitState(RejitFlags newState) { @@ -1473,7 +1448,7 @@ NativeCodeVersion CodeVersionManager::GetNativeCodeVersion(PTR_MethodDesc pMetho } #ifndef DACCESS_COMPILE -HRESULT CodeVersionManager::AddILCodeVersion(Module* pModule, mdMethodDef methodDef, ILCodeVersion* pILCodeVersion, BOOL isDeoptimized) +HRESULT CodeVersionManager::AddILCodeVersion(Module* pModule, mdMethodDef methodDef, ReJITID rejitId, ILCodeVersion* pILCodeVersion) { LIMITED_METHOD_CONTRACT; _ASSERTE(IsLockOwnedByCurrentThread()); @@ -1486,7 +1461,7 @@ HRESULT CodeVersionManager::AddILCodeVersion(Module* pModule, mdMethodDef method return hr; } - ILCodeVersionNode* pILCodeVersionNode = new (nothrow) ILCodeVersionNode(pModule, methodDef, InterlockedIncrement(reinterpret_cast(&s_GlobalReJitId)), isDeoptimized); + ILCodeVersionNode* pILCodeVersionNode = new (nothrow) ILCodeVersionNode(pModule, methodDef, rejitId); if (pILCodeVersionNode == NULL) { return E_OUTOFMEMORY; @@ -1520,7 +1495,7 @@ HRESULT CodeVersionManager::SetActiveILCodeVersions(ILCodeVersion* pActiveVersio CONTRACTL_END; _ASSERTE(!IsLockOwnedByCurrentThread()); HRESULT hr = S_OK; - + #if DEBUG for (DWORD i = 0; i < cActiveVersions; i++) { diff --git a/src/coreclr/vm/codeversion.h b/src/coreclr/vm/codeversion.h index 7b536fb071a62..66de4ba27257a 100644 --- a/src/coreclr/vm/codeversion.h +++ b/src/coreclr/vm/codeversion.h @@ -213,7 +213,6 @@ class ILCodeVersion RejitFlags GetRejitState() const; BOOL GetEnableReJITCallback() const; - BOOL IsDeoptimized() const; #ifndef DACCESS_COMPILE void SetRejitState(RejitFlags newState); void SetEnableReJITCallback(BOOL state); @@ -366,7 +365,7 @@ class ILCodeVersionNode public: ILCodeVersionNode(); #ifndef DACCESS_COMPILE - ILCodeVersionNode(Module* pModule, mdMethodDef methodDef, ReJITID id, BOOL isDeoptimized); + ILCodeVersionNode(Module* pModule, mdMethodDef methodDef, ReJITID id); #endif PTR_Module GetModule() const; mdMethodDef GetMethodDef() const; @@ -377,7 +376,6 @@ class ILCodeVersionNode ILCodeVersion::RejitFlags GetRejitState() const; BOOL GetEnableReJITCallback() const; PTR_ILCodeVersionNode GetNextILVersionNode() const; - BOOL IsDeoptimized() const; #ifndef DACCESS_COMPILE void SetIL(COR_ILMETHOD* pIL); void SetJitFlags(DWORD flags); @@ -396,7 +394,6 @@ class ILCodeVersionNode VolatilePtr m_pIL; Volatile m_jitFlags; InstrumentedILOffsetMapping m_instrumentedILMap; - BOOL m_deoptimized; }; class ILCodeVersionCollection @@ -594,7 +591,7 @@ class CodeVersionManager HRESULT hrStatus; }; - HRESULT AddILCodeVersion(Module* pModule, mdMethodDef methodDef, ILCodeVersion* pILCodeVersion, BOOL isDeoptimized); + HRESULT AddILCodeVersion(Module* pModule, mdMethodDef methodDef, ReJITID rejitId, ILCodeVersion* pILCodeVersion); HRESULT AddNativeCodeVersion(ILCodeVersion ilCodeVersion, MethodDesc* pClosedMethodDesc, NativeCodeVersion::OptimizationTier optimizationTier, NativeCodeVersion* pNativeCodeVersion, PatchpointInfo* patchpointInfo = NULL, unsigned ilOffset = 0); PCODE PublishVersionableCodeIfNecessary( diff --git a/src/coreclr/vm/dbginterface.h b/src/coreclr/vm/dbginterface.h index daa57d25c86cf..25e4bf81722ac 100644 --- a/src/coreclr/vm/dbginterface.h +++ b/src/coreclr/vm/dbginterface.h @@ -413,11 +413,6 @@ class DebugInterface virtual void ResumeForGarbageCollectionStarted() = 0; #endif virtual BOOL IsSynchronizing() = 0; - -#ifndef DACCESS_COMPILE - virtual HRESULT DeoptimizeMethod(Module* pModule, mdMethodDef methodDef) = 0; - virtual HRESULT IsMethodDeoptimized(Module *pModule, mdMethodDef methodDef, BOOL *pResult) = 0; -#endif //DACCESS_COMPILE }; #ifndef DACCESS_COMPILE diff --git a/src/coreclr/vm/dllimport.h b/src/coreclr/vm/dllimport.h index 256b950799336..d3ac9847abf7b 100644 --- a/src/coreclr/vm/dllimport.h +++ b/src/coreclr/vm/dllimport.h @@ -194,7 +194,6 @@ enum ILStubTypes ILSTUB_WRAPPERDELEGATE_INVOKE = 0x80000007, ILSTUB_TAILCALL_STOREARGS = 0x80000008, ILSTUB_TAILCALL_CALLTARGET = 0x80000009, - ILSTUB_STATIC_VIRTUAL_DISPATCH_STUB = 0x8000000A, }; #ifdef FEATURE_COMINTEROP @@ -215,8 +214,6 @@ inline bool SF_IsForNumParamBytes (DWORD dwStubFlags) { LIMITED_METHOD_CONT inline bool SF_IsStructMarshalStub (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return (dwStubFlags < NDIRECTSTUB_FL_INVALID && 0 != (dwStubFlags & NDIRECTSTUB_FL_STRUCT_MARSHAL)); } inline bool SF_IsCheckPendingException (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return (dwStubFlags < NDIRECTSTUB_FL_INVALID && 0 != (dwStubFlags & NDIRECTSTUB_FL_CHECK_PENDING_EXCEPTION)); } -inline bool SF_IsVirtualStaticMethodDispatchStub(DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return dwStubFlags == ILSTUB_STATIC_VIRTUAL_DISPATCH_STUB; } - #ifdef FEATURE_ARRAYSTUB_AS_IL inline bool SF_IsArrayOpStub (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return ((dwStubFlags == ILSTUB_ARRAYOP_GET) || (dwStubFlags == ILSTUB_ARRAYOP_SET) || diff --git a/src/coreclr/vm/eedbginterfaceimpl.cpp b/src/coreclr/vm/eedbginterfaceimpl.cpp index 792c608918a61..313f240ede190 100644 --- a/src/coreclr/vm/eedbginterfaceimpl.cpp +++ b/src/coreclr/vm/eedbginterfaceimpl.cpp @@ -1572,4 +1572,5 @@ BOOL EEDbgInterfaceImpl::AdjustContextForJITHelpersForDebugger(CONTEXT* context) return AdjustContextForJITHelpers(nullptr, context); } #endif + #endif // DEBUGGING_SUPPORTED diff --git a/src/coreclr/vm/gcheaputilities.cpp b/src/coreclr/vm/gcheaputilities.cpp index a705a428c707b..ed4e89f4797a4 100644 --- a/src/coreclr/vm/gcheaputilities.cpp +++ b/src/coreclr/vm/gcheaputilities.cpp @@ -344,8 +344,6 @@ HRESULT GCHeapUtilities::LoadAndInitialize() g_gc_load_status = GC_LOAD_STATUS_START; LPCWSTR standaloneGcLocation = Configuration::GetKnobStringValue(W("System.GC.Name"), CLRConfig::EXTERNAL_GCName); - g_gc_dac_vars.major_version_number = GC_INTERFACE_MAJOR_VERSION; - g_gc_dac_vars.minor_version_number = GC_INTERFACE_MINOR_VERSION; if (!standaloneGcLocation) { return InitializeDefaultGC(); diff --git a/src/coreclr/vm/genericdict.cpp b/src/coreclr/vm/genericdict.cpp index 456bec758b2a6..2a79009f4cbd7 100644 --- a/src/coreclr/vm/genericdict.cpp +++ b/src/coreclr/vm/genericdict.cpp @@ -29,7 +29,6 @@ #include "typectxt.h" #include "virtualcallstub.h" #include "sigbuilder.h" -#include "dllimport.h" #ifndef DACCESS_COMPILE @@ -600,70 +599,6 @@ Dictionary* Dictionary::GetTypeDictionaryWithSizeCheck(MethodTable* pMT, ULONG s RETURN pDictionary; } -struct StaticVirtualDispatchHashBlob : public ILStubHashBlobBase -{ - MethodDesc *pExactInterfaceMethod; - MethodTable *pTargetMT; -}; - -PCODE CreateStubForStaticVirtualDispatch(MethodTable* pTargetMT, MethodTable* pInterfaceMT, MethodDesc *pInterfaceMD) -{ - GCX_PREEMP(); - - Module* pLoaderModule = ClassLoader::ComputeLoaderModule(pTargetMT, 0, pInterfaceMD->GetMethodInstantiation()); - - MethodDesc *pExactMD = MethodDesc::FindOrCreateAssociatedMethodDesc( - pInterfaceMD, - pInterfaceMT, - FALSE, // forceBoxedEntryPoint - pInterfaceMD->GetMethodInstantiation(), // methodInst - FALSE, // allowInstParam - TRUE); // forceRemotableMethod - - StaticVirtualDispatchHashBlob hashBlob; - memset(&hashBlob, 0, sizeof(hashBlob)); - hashBlob.pExactInterfaceMethod = pExactMD; - hashBlob.pTargetMT = pTargetMT; - hashBlob.m_cbSizeOfBlob = sizeof(hashBlob); - ILStubHashBlob *pHashBlob = (ILStubHashBlob*)&hashBlob; - - MethodDesc *pStubMD = pLoaderModule->GetILStubCache()->LookupStubMethodDesc(pHashBlob); - if (pStubMD == NULL) - { - SigTypeContext context(pExactMD); - ILStubLinker sl(pExactMD->GetModule(), pExactMD->GetSignature(), &context, pExactMD, ILSTUB_LINKER_FLAG_NONE); - MetaSig sig(pInterfaceMD); - - ILCodeStream *pCode = sl.NewCodeStream(ILStubLinker::kDispatch); - - UINT paramCount = 0; - BOOL fReturnVal = !sig.IsReturnTypeVoid(); - while(paramCount < sig.NumFixedArgs()) - pCode->EmitLDARG(paramCount++); - - pCode->EmitCONSTRAINED(pCode->GetToken(pTargetMT)); - pCode->EmitCALL(pCode->GetToken(pInterfaceMD), sig.NumFixedArgs(), fReturnVal); - pCode->EmitRET(); - - PCCOR_SIGNATURE pSig; - DWORD cbSig; - - pInterfaceMD->GetSig(&pSig,&cbSig); - - pStubMD = ILStubCache::CreateAndLinkNewILStubMethodDesc(pLoaderModule->GetLoaderAllocator(), - pLoaderModule->GetILStubCache()->GetOrCreateStubMethodTable(pLoaderModule), - ILSTUB_STATIC_VIRTUAL_DISPATCH_STUB, - pInterfaceMD->GetModule(), - pSig, cbSig, - &context, - &sl); - - pStubMD = pLoaderModule->GetILStubCache()->InsertStubMethodDesc(pStubMD, pHashBlob); - } - - return JitILStub(pStubMD); -} - //--------------------------------------------------------------------------------------- // DictionaryEntry @@ -1133,40 +1068,11 @@ Dictionary::PopulateEntry( } _ASSERTE(!constraintType.IsNull()); - MethodDesc *pResolvedMD; + MethodDesc *pResolvedMD = constraintType.GetMethodTable()->TryResolveConstraintMethodApprox(ownerType, pMethod); - if (pMethod->IsStatic()) - { - // Virtual Static Method resolution - _ASSERTE(!ownerType.IsTypeDesc()); - _ASSERTE(ownerType.IsInterface()); - BOOL uniqueResolution; - pResolvedMD = constraintType.GetMethodTable()->ResolveVirtualStaticMethod( - ownerType.GetMethodTable(), - pMethod, - /* allowNullResult */ TRUE, - /* verifyImplemented */ FALSE, - /* allowVariantMatches */ TRUE, - &uniqueResolution); - - // If we couldn't get an exact result, fall back to using a stub to make the exact function call - // This will trigger the logic in the JIT which can handle AmbiguousImplementationException and - // EntryPointNotFoundException at exactly the right time - if (!uniqueResolution || pResolvedMD == NULL || pResolvedMD->IsAbstract()) - { - _ASSERTE(pResolvedMD == NULL || pResolvedMD->IsStatic()); - result = (CORINFO_GENERIC_HANDLE)CreateStubForStaticVirtualDispatch(constraintType.GetMethodTable(), ownerType.GetMethodTable(), pMethod); - break; - } - } - else - { - pResolvedMD = constraintType.GetMethodTable()->TryResolveConstraintMethodApprox(ownerType, pMethod); - - // All such calls should be resolvable. If not then for now just throw an error. - _ASSERTE(pResolvedMD); - INDEBUG(if (!pResolvedMD) constraintType.GetMethodTable()->TryResolveConstraintMethodApprox(ownerType, pMethod);) - } + // All such calls should be resolvable. If not then for now just throw an error. + _ASSERTE(pResolvedMD); + INDEBUG(if (!pResolvedMD) constraintType.GetMethodTable()->TryResolveConstraintMethodApprox(ownerType, pMethod);) if (!pResolvedMD) COMPlusThrowHR(COR_E_BADIMAGEFORMAT); diff --git a/src/coreclr/vm/ilstubcache.cpp b/src/coreclr/vm/ilstubcache.cpp index 4c955e322bb73..8737bbd33bfba 100644 --- a/src/coreclr/vm/ilstubcache.cpp +++ b/src/coreclr/vm/ilstubcache.cpp @@ -159,7 +159,6 @@ namespace case DynamicMethodDesc::StubWrapperDelegate: return "IL_STUB_WrapperDelegate_Invoke"; case DynamicMethodDesc::StubTailCallStoreArgs: return "IL_STUB_StoreTailCallArgs"; case DynamicMethodDesc::StubTailCallCallTarget: return "IL_STUB_CallTailCallTarget"; - case DynamicMethodDesc::StubVirtualStaticMethodDispatch: return "IL_STUB_bVirtualStaticMethodDispatch"; default: UNREACHABLE_MSG("Unknown stub type"); } @@ -320,11 +319,6 @@ MethodDesc* ILStubCache::CreateNewMethodDesc(LoaderHeap* pCreationHeap, MethodTa } } - if (SF_IsVirtualStaticMethodDispatchStub(dwStubFlags)) - { - pMD->SetILStubType(DynamicMethodDesc::StubVirtualStaticMethodDispatch); - } - // if we made it this far, we can set a more descriptive stub name #ifdef FEATURE_ARRAYSTUB_AS_IL if (SF_IsArrayOpStub(dwStubFlags)) @@ -403,45 +397,6 @@ MethodTable* ILStubCache::GetOrCreateStubMethodTable(Module* pModule) RETURN m_pStubMT; } - -MethodDesc* ILStubCache::LookupStubMethodDesc(ILStubHashBlob* pHashBlob) -{ - CrstHolder ch(&m_crst); - - // Try to find the stub - const ILStubCacheEntry* phe = m_hashMap.LookupPtr(pHashBlob); - if (phe) - { - return phe->m_pMethodDesc; - } - - return NULL; -} - -MethodDesc* ILStubCache::InsertStubMethodDesc(MethodDesc *pMD, ILStubHashBlob* pHashBlob) -{ - size_t cbSizeOfBlob = pHashBlob->m_cbSizeOfBlob; - - CrstHolder ch(&m_crst); - - const ILStubCacheEntry* phe = m_hashMap.LookupPtr(pHashBlob); - if (phe == NULL) - { - AllocMemHolder pBlobHolder( m_heap->AllocMem(S_SIZE_T(cbSizeOfBlob)) ); - ILStubHashBlob* pBlob = pBlobHolder; - _ASSERTE(pHashBlob->m_cbSizeOfBlob == cbSizeOfBlob); - memcpy(pBlob, pHashBlob, cbSizeOfBlob); - - m_hashMap.Add(ILStubCacheEntry{ pMD, pBlob }); - pBlobHolder.SuppressRelease(); - - return pMD; - } - else - { - return phe->m_pMethodDesc; - } -} #endif // DACCESS_COMPILE // diff --git a/src/coreclr/vm/ilstubcache.h b/src/coreclr/vm/ilstubcache.h index b101e14f2c4fb..d70d1baac6c60 100644 --- a/src/coreclr/vm/ilstubcache.h +++ b/src/coreclr/vm/ilstubcache.h @@ -79,12 +79,6 @@ class ILStubCache final MethodTable* GetOrCreateStubMethodTable(Module* pLoaderModule); - MethodDesc* LookupStubMethodDesc(ILStubHashBlob* pHashBlob); - - // Insert a stub MethodDesc into the cache - // If one is already present at a matching hash blob, return the already present one, otherwise, return pMD - MethodDesc* InsertStubMethodDesc(MethodDesc* pMD, ILStubHashBlob* pHashBlob); - private: // static static MethodDesc* CreateNewMethodDesc( LoaderHeap* pCreationHeap, diff --git a/src/coreclr/vm/inlinetracking.cpp b/src/coreclr/vm/inlinetracking.cpp index 850d7d7ee23ea..c22f012bc58cb 100644 --- a/src/coreclr/vm/inlinetracking.cpp +++ b/src/coreclr/vm/inlinetracking.cpp @@ -189,82 +189,6 @@ void InlineTrackingMap::AddInlining(MethodDesc *inliner, MethodDesc *inlinee) } } -NativeImageInliningIterator::NativeImageInliningIterator() : - m_pModule(NULL), - m_dynamicBuffer(NULL), - m_dynamicBufferSize(0), - m_dynamicAvailable(0), - m_currentPos(-1) -{ - -} - -HRESULT NativeImageInliningIterator::Reset(Module *pInlinerModule, MethodInModule inlinee) -{ - _ASSERTE(pInlinerModule != NULL); - _ASSERTE(inlinee.m_module != NULL); - - m_pModule = pInlinerModule; - m_inlinee = inlinee; - - HRESULT hr = S_OK; - EX_TRY - { - // Trying to use the existing buffer - BOOL incompleteData; - Module *inlineeModule = m_inlinee.m_module; - mdMethodDef mdInlinee = m_inlinee.m_methodDef; - COUNT_T methodsAvailable = m_pModule->GetReadyToRunInliners(inlineeModule, mdInlinee, m_dynamicBufferSize, m_dynamicBuffer, &incompleteData); - - // If the existing buffer is not large enough, reallocate. - if (methodsAvailable > m_dynamicBufferSize) - { - COUNT_T newSize = max(methodsAvailable, s_bufferSize); - m_dynamicBuffer = new MethodInModule[newSize]; - m_dynamicBufferSize = newSize; - - methodsAvailable = m_pModule->GetReadyToRunInliners(inlineeModule, mdInlinee, m_dynamicBufferSize, m_dynamicBuffer, &incompleteData); - _ASSERTE(methodsAvailable <= m_dynamicBufferSize); - } - - m_dynamicAvailable = methodsAvailable; - } - EX_CATCH_HRESULT(hr); - - if (FAILED(hr)) - { - m_currentPos = s_failurePos; - } - else - { - m_currentPos = -1; - } - - return hr; -} - -BOOL NativeImageInliningIterator::Next() -{ - if (m_currentPos == s_failurePos) - { - return FALSE; - } - - m_currentPos++; - return m_currentPos < m_dynamicAvailable; -} - -MethodInModule NativeImageInliningIterator::GetMethod() -{ - // this evaluates true when m_currentPos == s_failurePos or m_currentPos == (COUNT_T)-1 - // m_currentPos is an unsigned type - if (m_currentPos >= m_dynamicAvailable) - { - return MethodInModule(); - } - - return m_dynamicBuffer[m_currentPos]; -} #endif //!DACCESS_COMPILE #ifdef FEATURE_READYTORUN @@ -579,7 +503,7 @@ COUNT_T CrossModulePersistentInlineTrackingMapR2R::GetInliners(PTR_Module inline CONTRACTL { THROWS; - GC_NOTRIGGER; + GC_TRIGGERS; MODE_ANY; } CONTRACTL_END; diff --git a/src/coreclr/vm/inlinetracking.h b/src/coreclr/vm/inlinetracking.h index 1cb7bd76b2a41..01ae910cc4e8a 100644 --- a/src/coreclr/vm/inlinetracking.h +++ b/src/coreclr/vm/inlinetracking.h @@ -149,29 +149,7 @@ class InlineTrackingMap : public SHash < InlineTrackingMapTraits > typedef DPTR(InlineTrackingMap) PTR_InlineTrackingMap; -#ifndef DACCESS_COMPILE -// Used to walk the NGEN/R2R inlining data -class NativeImageInliningIterator -{ -public: - NativeImageInliningIterator(); - - HRESULT Reset(Module* pInlinerModule, MethodInModule inlinee); - BOOL Next(); - MethodInModule GetMethod(); -private: - Module *m_pModule; - MethodInModule m_inlinee; - NewArrayHolder m_dynamicBuffer; - COUNT_T m_dynamicBufferSize; - COUNT_T m_dynamicAvailable; - COUNT_T m_currentPos; - - const COUNT_T s_bufferSize = 10; - const COUNT_T s_failurePos = -2; -}; -#endif // DACCESS_COMPILE // ------------------------------------ Persistance support ---------------------------------------------------------- @@ -414,7 +392,7 @@ class JITInlineTrackingMap CONTRACTL { NOTHROW; - GC_NOTRIGGER; + GC_TRIGGERS; CAN_TAKE_LOCK; MODE_ANY; } @@ -435,7 +413,7 @@ class JITInlineTrackingMap static void StaticInitialize() { WRAPPER_NO_CONTRACT; - s_mapCrst.Init(CrstJitInlineTrackingMap, CrstFlags(CRST_DEBUGGER_THREAD)); + s_mapCrst.Init(CrstJitInlineTrackingMap); } static CrstBase *GetMapCrst() { return &s_mapCrst; } diff --git a/src/coreclr/vm/jithelpers.cpp b/src/coreclr/vm/jithelpers.cpp index d5945f36582bb..acb8cefb6942b 100644 --- a/src/coreclr/vm/jithelpers.cpp +++ b/src/coreclr/vm/jithelpers.cpp @@ -4428,38 +4428,6 @@ HCIMPL3(void, JIT_ThrowAmbiguousResolutionException, } HCIMPLEND -/*********************************************************************/ -HCIMPL3(void, JIT_ThrowEntryPointNotFoundException, - MethodDesc *method, - MethodTable *interfaceType, - MethodTable *targetType) -{ - FCALL_CONTRACT; - - HELPER_METHOD_FRAME_BEGIN_0(); // Set up a frame - - SString strMethodName; - SString strInterfaceName; - SString strTargetClassName; - SString assemblyName; - - targetType->GetAssembly()->GetDisplayName(assemblyName); - TypeString::AppendMethod(strMethodName, method, method->GetMethodInstantiation()); - TypeString::AppendType(strInterfaceName, TypeHandle(interfaceType)); - TypeString::AppendType(strTargetClassName, targetType); - - COMPlusThrow( - kEntryPointNotFoundException, - IDS_CLASSLOAD_METHOD_NOT_IMPLEMENTED, - strMethodName, - strInterfaceName, - strTargetClassName, - assemblyName); - - HELPER_METHOD_FRAME_END(); // Set up a frame -} -HCIMPLEND - /*********************************************************************/ HCIMPL0(void, JIT_Overflow) { diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index 840b2b9cd390a..f105806bc532b 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -5069,7 +5069,6 @@ void CEEInfo::getCallInfo( BOOL fResolvedConstraint = FALSE; BOOL fForceUseRuntimeLookup = FALSE; - BOOL fAbstractSVM = FALSE; MethodDesc * pMDAfterConstraintResolution = pMD; if (constrainedType.IsNull()) @@ -5150,21 +5149,11 @@ void CEEInfo::getCallInfo( #ifdef FEATURE_DEFAULT_INTERFACES else if (directMethod && pMD->IsStatic()) { - if (directMethod->IsAbstract()) - { - // This is the result when we call a SVM which is abstract, or re-abstracted - directMethod = NULL; - pResult->thisTransform = CORINFO_NO_THIS_TRANSFORM; - fAbstractSVM = true; - } - else - { - // Default interface implementation of static virtual method - pMDAfterConstraintResolution = directMethod; - fResolvedConstraint = TRUE; - pResult->thisTransform = CORINFO_NO_THIS_TRANSFORM; - exactType = directMethod->GetMethodTable(); - } + // Default interface implementation of static virtual method + pMDAfterConstraintResolution = directMethod; + fResolvedConstraint = TRUE; + pResult->thisTransform = CORINFO_NO_THIS_TRANSFORM; + exactType = directMethod->GetMethodTable(); } #endif else if (constrainedType.IsValueType()) @@ -5661,14 +5650,7 @@ void CEEInfo::getCallInfo( // shared generics is covered by the ConstrainedMethodEntrySlot dictionary entry. pResult->kind = CORINFO_CALL; pResult->accessAllowed = CORINFO_ACCESS_ILLEGAL; - if (fAbstractSVM) - { - pResult->callsiteCalloutHelper.helperNum = CORINFO_HELP_THROW_ENTRYPOINT_NOT_FOUND_EXCEPTION; - } - else - { - pResult->callsiteCalloutHelper.helperNum = CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION; - } + pResult->callsiteCalloutHelper.helperNum = CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION; pResult->callsiteCalloutHelper.numArgs = 3; pResult->callsiteCalloutHelper.args[0].methodHandle = (CORINFO_METHOD_HANDLE)pMD; pResult->callsiteCalloutHelper.args[0].argType = CORINFO_HELPER_ARG_TYPE_Method; diff --git a/src/coreclr/vm/method.cpp b/src/coreclr/vm/method.cpp index ea77443f68df9..2e147e90dab80 100644 --- a/src/coreclr/vm/method.cpp +++ b/src/coreclr/vm/method.cpp @@ -935,34 +935,6 @@ PCODE MethodDesc::GetNativeCode() return GetStableEntryPoint(); } -PCODE MethodDesc::GetNativeCodeReJITAware() -{ - WRAPPER_NO_CONTRACT; - SUPPORTS_DAC; - - PCODE pDefaultCode = GetNativeCode(); - if (pDefaultCode != NULL) - { - return pDefaultCode; - } - - { - CodeVersionManager *pCodeVersionManager = GetCodeVersionManager(); - CodeVersionManager::LockHolder codeVersioningLockHolder; - ILCodeVersion ilVersion = pCodeVersionManager->GetActiveILCodeVersion(PTR_MethodDesc(this)); - if (!ilVersion.IsDefaultVersion()) - { - NativeCodeVersion activeNativeCodeVersion = ilVersion.GetActiveNativeCodeVersion(PTR_MethodDesc(this)); - if (!activeNativeCodeVersion.IsNull()) - { - return activeNativeCodeVersion.GetNativeCode(); - } - } - - return NULL; - } -} - //******************************************************************************* PTR_PCODE MethodDesc::GetAddrOfNativeCodeSlot() { diff --git a/src/coreclr/vm/method.hpp b/src/coreclr/vm/method.hpp index a315ca2d6fcf7..02783201fcd3a 100644 --- a/src/coreclr/vm/method.hpp +++ b/src/coreclr/vm/method.hpp @@ -1387,14 +1387,6 @@ class MethodDesc return GetNativeCode() != NULL; } - // Perf warning: takes the CodeVersionManagerLock on every call - BOOL HasNativeCodeReJITAware() - { - LIMITED_METHOD_DAC_CONTRACT; - - return GetNativeCodeReJITAware() != NULL; - } - BOOL SetNativeCodeInterlocked(PCODE addr, PCODE pExpected = NULL); PTR_PCODE GetAddrOfNativeCodeSlot(); @@ -1451,11 +1443,6 @@ class MethodDesc // Returns the address of the native code. PCODE GetNativeCode(); - // Returns GetNativeCode() if it exists, but also checks to see if there - // is a non-default IL code version and returns that. - // Perf warning: takes the CodeVersionManagerLock on every call - PCODE GetNativeCodeReJITAware(); - #if defined(FEATURE_JIT_PITCHING) bool IsPitchable(); void PitchNativeCode(); @@ -2471,8 +2458,6 @@ class DynamicMethodDesc : public StoredSigMethodDesc StubTailCallStoreArgs, StubTailCallCallTarget, - StubVirtualStaticMethodDispatch, - StubLast }; diff --git a/src/coreclr/vm/methoddescbackpatchinfo.h b/src/coreclr/vm/methoddescbackpatchinfo.h index 54a326d136f5d..d9c706cac6530 100644 --- a/src/coreclr/vm/methoddescbackpatchinfo.h +++ b/src/coreclr/vm/methoddescbackpatchinfo.h @@ -80,7 +80,7 @@ class MethodDescBackpatchInfoTracker static void StaticInitialize() { WRAPPER_NO_CONTRACT; - s_lock.Init(CrstMethodDescBackpatchInfoTracker, CrstFlags(CRST_DEBUGGER_THREAD)); + s_lock.Init(CrstMethodDescBackpatchInfoTracker); } #endif diff --git a/src/coreclr/vm/prestub.cpp b/src/coreclr/vm/prestub.cpp index eecc539a9008f..23196b8c7b65b 100644 --- a/src/coreclr/vm/prestub.cpp +++ b/src/coreclr/vm/prestub.cpp @@ -372,15 +372,6 @@ PCODE MethodDesc::PrepareILBasedCode(PrepareCodeConfig* pConfig) shouldTier = false; } #endif // FEATURE_TIERED_COMPILATION - NativeCodeVersion nativeCodeVersion = pConfig->GetCodeVersion(); - if (shouldTier && !nativeCodeVersion.IsDefaultVersion()) - { - CodeVersionManager::LockHolder codeVersioningLockHolder; - if (pConfig->GetCodeVersion().GetILCodeVersion().IsDeoptimized()) - { - shouldTier = false; - } - } if (pConfig->MayUsePrecompiledCode()) { diff --git a/src/coreclr/vm/rejit.cpp b/src/coreclr/vm/rejit.cpp index c4f7394a93870..a603fad19354c 100644 --- a/src/coreclr/vm/rejit.cpp +++ b/src/coreclr/vm/rejit.cpp @@ -147,6 +147,11 @@ #include "../debug/ee/controller.h" #include "codeversion.h" +// This is just used as a unique id. Overflow is OK. If we happen to have more than 4+Billion rejits +// and somehow manage to not run out of memory, we'll just have to redefine ReJITID as size_t. +/* static */ +static ReJITID s_GlobalReJitId = 1; + /* static */ CrstStatic ReJitManager::s_csGlobalRequest; @@ -164,10 +169,6 @@ CORJIT_FLAGS ReJitManager::JitFlagsFromProfCodegenFlags(DWORD dwCodegenFlags) { jitFlags.Set(CORJIT_FLAGS::CORJIT_FLAG_DEBUG_CODE); } - if ((dwCodegenFlags & COR_PRF_CODEGEN_DEBUG_INFO) != 0) - { - jitFlags.Set(CORJIT_FLAGS::CORJIT_FLAG_DEBUG_INFO); - } if ((dwCodegenFlags & COR_PRF_CODEGEN_DISABLE_INLINING) != 0) { jitFlags.Set(CORJIT_FLAGS::CORJIT_FLAG_NO_INLINING); @@ -417,6 +418,82 @@ COR_IL_MAP* ProfilerFunctionControl::GetInstrumentedMapEntries() } #ifndef DACCESS_COMPILE +NativeImageInliningIterator::NativeImageInliningIterator() : + m_pModule(NULL), + m_dynamicBuffer(NULL), + m_dynamicBufferSize(0), + m_dynamicAvailable(0), + m_currentPos(-1) +{ + +} + +HRESULT NativeImageInliningIterator::Reset(Module *pInlinerModule, MethodInModule inlinee) +{ + _ASSERTE(pInlinerModule != NULL); + _ASSERTE(inlinee.m_module != NULL); + + m_pModule = pInlinerModule; + m_inlinee = inlinee; + + HRESULT hr = S_OK; + EX_TRY + { + // Trying to use the existing buffer + BOOL incompleteData; + Module *inlineeModule = m_inlinee.m_module; + mdMethodDef mdInlinee = m_inlinee.m_methodDef; + COUNT_T methodsAvailable = m_pModule->GetReadyToRunInliners(inlineeModule, mdInlinee, m_dynamicBufferSize, m_dynamicBuffer, &incompleteData); + + // If the existing buffer is not large enough, reallocate. + if (methodsAvailable > m_dynamicBufferSize) + { + COUNT_T newSize = max(methodsAvailable, s_bufferSize); + m_dynamicBuffer = new MethodInModule[newSize]; + m_dynamicBufferSize = newSize; + + methodsAvailable = m_pModule->GetReadyToRunInliners(inlineeModule, mdInlinee, m_dynamicBufferSize, m_dynamicBuffer, &incompleteData); + _ASSERTE(methodsAvailable <= m_dynamicBufferSize); + } + + m_dynamicAvailable = methodsAvailable; + } + EX_CATCH_HRESULT(hr); + + if (FAILED(hr)) + { + m_currentPos = s_failurePos; + } + else + { + m_currentPos = -1; + } + + return hr; +} + +BOOL NativeImageInliningIterator::Next() +{ + if (m_currentPos == s_failurePos) + { + return FALSE; + } + + m_currentPos++; + return m_currentPos < m_dynamicAvailable; +} + +MethodInModule NativeImageInliningIterator::GetMethod() +{ + // this evaluates true when m_currentPos == s_failurePos or m_currentPos == (COUNT_T)-1 + // m_currentPos is an unsigned type + if (m_currentPos >= m_dynamicAvailable) + { + return MethodInModule(); + } + + return m_dynamicBuffer[m_currentPos]; +} //--------------------------------------------------------------------------------------- // ReJitManager implementation @@ -725,6 +802,7 @@ HRESULT ReJitManager::UpdateNativeInlinerActiveILVersions( // Iterate through all modules, for any that are NGEN or R2R need to check if there are inliners there and call // RequestReJIT on them + // TODO: is the default domain enough for coreclr? AppDomain::AssemblyIterator domainAssemblyIterator = SystemDomain::System()->DefaultDomain()->IterateAssembliesEx((AssemblyIterationFlags) (kIncludeLoaded | kIncludeExecution)); CollectibleAssemblyHolder pDomainAssembly; NativeImageInliningIterator inlinerIter; @@ -897,7 +975,7 @@ HRESULT ReJitManager::BindILVersion( // Either there was no ILCodeVersion yet for this MethodDesc OR whatever we've found // couldn't be reused (and needed to be reverted). Create a new ILCodeVersion to return // to the caller. - HRESULT hr = pCodeVersionManager->AddILCodeVersion(pModule, methodDef, pILCodeVersion, FALSE); + HRESULT hr = pCodeVersionManager->AddILCodeVersion(pModule, methodDef, InterlockedIncrement(reinterpret_cast(&s_GlobalReJitId)), pILCodeVersion); pILCodeVersion->SetEnableReJITCallback(fDoCallback); return hr; } diff --git a/src/coreclr/vm/rejit.h b/src/coreclr/vm/rejit.h index c54c567e592a7..17d32aa75a107 100644 --- a/src/coreclr/vm/rejit.h +++ b/src/coreclr/vm/rejit.h @@ -68,6 +68,30 @@ class ProfilerFunctionControl : public ICorProfilerFunctionControl #endif // FEATURE_REJIT +#ifndef DACCESS_COMPILE +// Used to walk the NGEN/R2R inlining data +class NativeImageInliningIterator +{ +public: + NativeImageInliningIterator(); + + HRESULT Reset(Module* pInlinerModule, MethodInModule inlinee); + BOOL Next(); + MethodInModule GetMethod(); + +private: + Module *m_pModule; + MethodInModule m_inlinee; + NewArrayHolder m_dynamicBuffer; + COUNT_T m_dynamicBufferSize; + COUNT_T m_dynamicAvailable; + COUNT_T m_currentPos; + + const COUNT_T s_bufferSize = 10; + const COUNT_T s_failurePos = -2; +}; +#endif // DACCESS_COMPILE + //--------------------------------------------------------------------------------------- // The big honcho. One of these per AppDomain, plus one for the // SharedDomain. Contains the hash table of ReJitInfo structures to manage diff --git a/src/coreclr/vm/stubgen.cpp b/src/coreclr/vm/stubgen.cpp index 78e7fb621c90d..d96b3779f4f91 100644 --- a/src/coreclr/vm/stubgen.cpp +++ b/src/coreclr/vm/stubgen.cpp @@ -1237,11 +1237,6 @@ void ILCodeStream::EmitCLT_UN() WRAPPER_NO_CONTRACT; Emit(CEE_CLT_UN, -1, 0); } -void ILCodeStream::EmitCONSTRAINED(int token) -{ - WRAPPER_NO_CONTRACT; - Emit(CEE_CONSTRAINED, 0, token); -} void ILCodeStream::EmitCONV_I() { WRAPPER_NO_CONTRACT; diff --git a/src/coreclr/vm/stubgen.h b/src/coreclr/vm/stubgen.h index 595de649220cc..5c83f23a94aed 100644 --- a/src/coreclr/vm/stubgen.h +++ b/src/coreclr/vm/stubgen.h @@ -720,7 +720,6 @@ class ILCodeStream void EmitCGT_UN (); void EmitCLT (); void EmitCLT_UN (); - void EmitCONSTRAINED(int token); void EmitCONV_I (); void EmitCONV_I1 (); void EmitCONV_I2 (); diff --git a/src/coreclr/vm/stublink.h b/src/coreclr/vm/stublink.h index bd926001ae719..9151e48fe0560 100644 --- a/src/coreclr/vm/stublink.h +++ b/src/coreclr/vm/stublink.h @@ -467,10 +467,10 @@ class Stub UNWIND_INFO_BIT = 0x08000000, THUNK_BIT = 0x04000000, - CODEBYTES_MASK = THUNK_BIT - 1, + CODEBYTES_MASK = UNWIND_INFO_BIT - 1, MAX_CODEBYTES = CODEBYTES_MASK + 1, }; - static_assert_no_msg(CODEBYTES_MASK < THUNK_BIT); + static_assert_no_msg(CODEBYTES_MASK < UNWIND_INFO_BIT); public: //------------------------------------------------------------------- diff --git a/src/coreclr/vm/threadstatics.cpp b/src/coreclr/vm/threadstatics.cpp index e3430acf8e4ff..af1466f2d15bf 100644 --- a/src/coreclr/vm/threadstatics.cpp +++ b/src/coreclr/vm/threadstatics.cpp @@ -160,7 +160,7 @@ void ThreadLocalBlock::EnsureModuleIndex(ModuleIndex index) } if (pOldModuleSlots != NULL) - delete[] pOldModuleSlots; + delete pOldModuleSlots; } #endif diff --git a/src/coreclr/vm/tieredcompilation.cpp b/src/coreclr/vm/tieredcompilation.cpp index 78a1d69c658f2..c08e945ccab00 100644 --- a/src/coreclr/vm/tieredcompilation.cpp +++ b/src/coreclr/vm/tieredcompilation.cpp @@ -268,7 +268,6 @@ void TieredCompilationManager::AsyncPromoteToTier1( _ASSERTE(!currentNativeCodeVersion.IsNull()); _ASSERTE(!currentNativeCodeVersion.IsFinalTier()); _ASSERTE(createTieringBackgroundWorkerRef != nullptr); - _ASSERTE(!currentNativeCodeVersion.GetILCodeVersion().IsDeoptimized()); NativeCodeVersion t1NativeCodeVersion; HRESULT hr; @@ -1004,7 +1003,7 @@ void TieredCompilationManager::ActivateCodeVersion(NativeCodeVersion nativeCodeV bool mayHaveEntryPointSlotsToBackpatch = pMethod->MayHaveEntryPointSlotsToBackpatch(); MethodDescBackpatchInfoTracker::ConditionalLockHolder slotBackpatchLockHolder(mayHaveEntryPointSlotsToBackpatch); CodeVersionManager::LockHolder codeVersioningLockHolder; - + // As long as we are exclusively using any non-JumpStamp publishing for tiered compilation // methods this first attempt should succeed ilParent = nativeCodeVersion.GetILCodeVersion(); diff --git a/src/coreclr/vm/tieredcompilation.h b/src/coreclr/vm/tieredcompilation.h index 40caf063ad461..bf078dbc2979e 100644 --- a/src/coreclr/vm/tieredcompilation.h +++ b/src/coreclr/vm/tieredcompilation.h @@ -75,14 +75,9 @@ class TieredCompilationManager private: void OptimizeMethod(NativeCodeVersion nativeCodeVersion); - HRESULT DeoptimizeMethodHelper(Module* pModule, mdMethodDef methodDef); - NativeCodeVersion GetNextMethodToOptimize(); BOOL CompileCodeVersion(NativeCodeVersion nativeCodeVersion); void ActivateCodeVersion(NativeCodeVersion nativeCodeVersion); -public: - HRESULT DeoptimizeMethod(Module* pModule, mdMethodDef methodDef); - HRESULT IsMethodDeoptimized(Module *pModule, mdMethodDef methodDef, BOOL *pResult); #ifndef DACCESS_COMPILE public: diff --git a/src/libraries/Common/src/System/Security/Cryptography/SP800108HmacCounterKdf.cs b/src/libraries/Common/src/System/Security/Cryptography/SP800108HmacCounterKdf.cs index 81059c89fd4aa..a9f37b0fb11a4 100644 --- a/src/libraries/Common/src/System/Security/Cryptography/SP800108HmacCounterKdf.cs +++ b/src/libraries/Common/src/System/Security/Cryptography/SP800108HmacCounterKdf.cs @@ -194,10 +194,10 @@ public static byte[] DeriveBytes(byte[] key, HashAlgorithmName hashAlgorithm, by /// is not a known or supported hash algorithm. /// /// - /// or contains text that cannot be converted to UTF-8. + /// or contains text that cannot be converted to UTF8. /// /// - /// and will be converted to bytes using the UTF-8 encoding. + /// and will be converted to bytes using the UTF8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -310,13 +310,13 @@ public static void DeriveBytes(ReadOnlySpan key, HashAlgorithmName hashAlg /// is not a known or supported hash algorithm. /// /// - /// or contains text that cannot be converted to UTF-8. + /// or contains text that cannot be converted to UTF8. /// /// /// The current platform does not have a supported implementation of HMAC. /// /// - /// and will be converted to bytes using the UTF-8 encoding. + /// and will be converted to bytes using the UTF8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -350,13 +350,13 @@ public static byte[] DeriveBytes(ReadOnlySpan key, HashAlgorithmName hashA /// is not a known or supported hash algorithm. /// /// - /// or contains text that cannot be converted to UTF-8. + /// or contains text that cannot be converted to UTF8. /// /// /// The current platform does not have a supported implementation of HMAC. /// /// - /// and will be converted to bytes using the UTF-8 encoding. + /// and will be converted to bytes using the UTF8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -458,10 +458,10 @@ public void DeriveKey(ReadOnlySpan label, ReadOnlySpan context, Span /// that can be derived. /// /// - /// or contains text that cannot be converted to UTF-8. + /// or contains text that cannot be converted to UTF8. /// /// - /// and will be converted to bytes using the UTF-8 encoding. + /// and will be converted to bytes using the UTF8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -484,10 +484,10 @@ public byte[] DeriveKey(ReadOnlySpan label, ReadOnlySpan context, in /// is larger than the maximum number of bytes that can be derived. /// /// - /// or contains text that cannot be converted to UTF-8. + /// or contains text that cannot be converted to UTF8. /// /// - /// and will be converted to bytes using the UTF-8 encoding. + /// and will be converted to bytes using the UTF8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -518,10 +518,10 @@ public void DeriveKey(ReadOnlySpan label, ReadOnlySpan context, Span /// that can be derived. /// /// - /// or contains text that cannot be converted to UTF-8. + /// or contains text that cannot be converted to UTF8. /// /// - /// and will be converted to bytes using the UTF-8 encoding. + /// and will be converted to bytes using the UTF8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// diff --git a/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj b/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj index cbb1f4ed69be9..6826c18679d28 100644 --- a/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj +++ b/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj @@ -11,9 +11,7 @@ true - + @@ -37,8 +35,7 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + - - - - - + + + + + - - + + @@ -116,4 +91,10 @@ + + + + + + diff --git a/src/libraries/Microsoft.Extensions.Http/ref/Microsoft.Extensions.Http.cs b/src/libraries/Microsoft.Extensions.Http/ref/Microsoft.Extensions.Http.cs index be0426574f5de..ac217fa34612e 100644 --- a/src/libraries/Microsoft.Extensions.Http/ref/Microsoft.Extensions.Http.cs +++ b/src/libraries/Microsoft.Extensions.Http/ref/Microsoft.Extensions.Http.cs @@ -5,28 +5,21 @@ namespace Microsoft.Extensions.DependencyInjection { public static partial class HttpClientBuilderExtensions { - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddDefaultLogger(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where THandler : System.Net.Http.DelegatingHandler { throw null; } - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddLogger(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func httpClientLoggerFactory, bool wrapHandlersPipeline = false) { throw null; } - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddLogger(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, bool wrapHandlersPipeline = false) where TLogger : Microsoft.Extensions.Http.Logging.IHttpClientLogger { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient<[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] TClient>(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where TClient : class { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func factory) where TClient : class { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func factory) where TClient : class { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where TClient : class where TImplementation : class, TClient { throw null; } - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureAdditionalHttpMessageHandlers(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action, System.IServiceProvider> configureAdditionalHandlers) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureClient) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureClient) { throw null; } - [System.Obsolete("This method has been deprecated. Use ConfigurePrimaryHttpMessageHandler or ConfigureAdditionalHttpMessageHandlers instead.")] public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpMessageHandlerBuilder(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureBuilder) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where THandler : System.Net.Http.HttpMessageHandler { throw null; } - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder RedactLoggedHeaders(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Collections.Generic.IEnumerable redactedLoggedHeaderNames) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder RedactLoggedHeaders(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func shouldRedactHeaderValue) { throw null; } - public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder RemoveAllLoggers(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder SetHandlerLifetime(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.TimeSpan handlerLifetime) { throw null; } } public static partial class HttpClientFactoryServiceCollectionExtensions @@ -51,7 +44,6 @@ public static partial class HttpClientFactoryServiceCollectionExtensions public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) where TClient : class where TImplementation : class, TClient { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Func factory) where TClient : class where TImplementation : class, TClient { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Func factory) where TClient : class where TImplementation : class, TClient { throw null; } - public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureHttpClientDefaults(Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) { throw null; } } public partial interface IHttpClientBuilder { @@ -106,18 +98,6 @@ public LoggingScopeHttpMessageHandler(Microsoft.Extensions.Logging.ILogger logge [System.Diagnostics.DebuggerStepThroughAttribute] protected override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { throw null; } } - public partial interface IHttpClientAsyncLogger : Microsoft.Extensions.Http.Logging.IHttpClientLogger - { - System.Threading.Tasks.ValueTask LogRequestStartAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken = default); - System.Threading.Tasks.ValueTask LogRequestStopAsync(object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage response, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken = default); - System.Threading.Tasks.ValueTask LogRequestFailedAsync(object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage? response, System.Exception exception, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken = default); - } - public partial interface IHttpClientLogger - { - object? LogRequestStart(System.Net.Http.HttpRequestMessage request); - void LogRequestStop(object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage response, System.TimeSpan elapsed); - void LogRequestFailed(object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage? response, System.Exception exception, System.TimeSpan elapsed); - } } namespace System.Net.Http { diff --git a/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs b/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs index ec14a145c0394..7e2967ab36f30 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs @@ -168,12 +168,6 @@ void Configure(HttpMessageHandlerBuilder b) { options.HttpMessageHandlerBuilderActions[i](b); } - - // Logging is added separately in the end. But for now it should be still possible to override it via filters... - foreach (Action action in options.LoggingBuilderActions) - { - action(b); - } } } catch diff --git a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/DefaultHttpClientBuilder.cs b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/DefaultHttpClientBuilder.cs index c4913edbd09be..8e1e3daf9096b 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/DefaultHttpClientBuilder.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/DefaultHttpClientBuilder.cs @@ -1,21 +1,14 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Diagnostics; -using System.Linq; - namespace Microsoft.Extensions.DependencyInjection { internal sealed class DefaultHttpClientBuilder : IHttpClientBuilder { public DefaultHttpClientBuilder(IServiceCollection services, string name) { - // The tracker references a descriptor. It marks the position of where default services are added to the collection. - var tracker = (DefaultHttpClientConfigurationTracker?)services.Single(sd => sd.ServiceType == typeof(DefaultHttpClientConfigurationTracker)).ImplementationInstance; - Debug.Assert(tracker != null); - - Services = new DefaultHttpClientBuilderServiceCollection(services, name == null, tracker); - Name = name!; + Services = services; + Name = name; } public string Name { get; } diff --git a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientBuilderExtensions.cs b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientBuilderExtensions.cs index b04b17de2a9c2..e97b7f4aa2b10 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientBuilderExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientBuilderExtensions.cs @@ -16,7 +16,7 @@ namespace Microsoft.Extensions.DependencyInjection /// /// Extension methods for configuring an /// - public static partial class HttpClientBuilderExtensions + public static class HttpClientBuilderExtensions { /// /// Adds a delegate that will be used to configure a named . @@ -220,32 +220,6 @@ public static IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(th return builder; } - /// - /// Adds a delegate that will be used to configure the primary for a - /// named . - /// - /// The . - /// A delegate that is used to configure a previously set or default primary . - /// An that can be used to configure the client. - /// - /// - /// The argument provided to will be - /// a reference to a scoped service provider that shares the lifetime of the handler being constructed. - /// - /// - public static IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this IHttpClientBuilder builder, Action configureHandler) - { - ThrowHelper.ThrowIfNull(builder); - ThrowHelper.ThrowIfNull(configureHandler); - - builder.Services.Configure(builder.Name, options => - { - options.HttpMessageHandlerBuilderActions.Add(b => configureHandler(b.PrimaryHandler, b.Services)); - }); - - return builder; - } - /// /// Adds a delegate that will be used to configure message handlers using /// for a named . @@ -253,7 +227,6 @@ public static IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this IHttpCl /// The . /// A delegate that is used to configure an . /// An that can be used to configure the client. - [Obsolete("This method has been deprecated. Use ConfigurePrimaryHttpMessageHandler or ConfigureAdditionalHttpMessageHandlers instead.")] public static IHttpClientBuilder ConfigureHttpMessageHandlerBuilder(this IHttpClientBuilder builder, Action configureBuilder) { ThrowHelper.ThrowIfNull(builder); @@ -302,11 +275,6 @@ public static IHttpClientBuilder ConfigureHttpMessageHandlerBuilder(this IHttpCl this IHttpClientBuilder builder, bool validateSingleType) where TClient : class { - if (builder.Name is null) - { - throw new InvalidOperationException($"{nameof(HttpClientBuilderExtensions.AddTypedClient)} isn't supported with {nameof(HttpClientFactoryServiceCollectionExtensions.ConfigureHttpClientDefaults)}."); - } - ReserveClient(builder, typeof(TClient), builder.Name, validateSingleType); builder.Services.AddTransient(s => AddTransientHelper(s, builder)); @@ -563,26 +531,6 @@ public static IHttpClientBuilder SetHandlerLifetime(this IHttpClientBuilder buil return builder; } - /// - /// Adds a delegate that will be used to configure additional message handlers using - /// for a named . - /// - /// The . - /// A delegate that is used to configure a collection of s. - /// An that can be used to configure the client. - public static IHttpClientBuilder ConfigureAdditionalHttpMessageHandlers(this IHttpClientBuilder builder, Action, IServiceProvider> configureAdditionalHandlers) - { - ThrowHelper.ThrowIfNull(builder); - ThrowHelper.ThrowIfNull(configureAdditionalHandlers); - - builder.Services.Configure(builder.Name, options => - { - options.HttpMessageHandlerBuilderActions.Add(b => configureAdditionalHandlers(b.AdditionalHandlers, b.Services)); - }); - - return builder; - } - // See comments on HttpClientMappingRegistry. private static void ReserveClient(IHttpClientBuilder builder, Type type, string name, bool validateSingleType) { diff --git a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientFactoryServiceCollectionExtensions.cs b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientFactoryServiceCollectionExtensions.cs index e5dffcfe25340..08072f0b43987 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientFactoryServiceCollectionExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientFactoryServiceCollectionExtensions.cs @@ -2,10 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Collections.Generic; -using System.Diagnostics; using System.Diagnostics.CodeAnalysis; -using System.Linq; using System.Net.Http; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Http; @@ -53,9 +50,6 @@ public static IServiceCollection AddHttpClient(this IServiceCollection services) // because we access it by reaching into the service collection. services.TryAddSingleton(new HttpClientMappingRegistry()); - // This is used to store configuration for the default builder. - services.TryAddSingleton(new DefaultHttpClientConfigurationTracker()); - // Register default client as HttpClient services.TryAddTransient(s => { @@ -65,24 +59,6 @@ public static IServiceCollection AddHttpClient(this IServiceCollection services) return services; } - /// - /// Adds a delegate that will be used to configure all instances. - /// - /// The . - /// A delegate that is used to configure an . - /// The . - public static IServiceCollection ConfigureHttpClientDefaults(this IServiceCollection services, Action configure) - { - ThrowHelper.ThrowIfNull(services); - ThrowHelper.ThrowIfNull(configure); - - AddHttpClient(services); - - configure(new DefaultHttpClientBuilder(services, name: null!)); - - return services; - } - /// /// Adds the and related services to the and configures /// a named . diff --git a/src/libraries/Microsoft.Extensions.Http/src/HttpClientFactoryOptions.cs b/src/libraries/Microsoft.Extensions.Http/src/HttpClientFactoryOptions.cs index ec82a6ca5e44b..12ee8585ac0eb 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/HttpClientFactoryOptions.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/HttpClientFactoryOptions.cs @@ -100,8 +100,5 @@ public TimeSpan HandlerLifetime /// /// public bool SuppressHandlerScope { get; set; } - - internal bool SuppressDefaultLogging { get; set; } - internal List> LoggingBuilderActions { get; } = new List>(); } } diff --git a/src/libraries/Microsoft.Extensions.Http/src/Logging/LoggingHttpMessageHandlerBuilderFilter.cs b/src/libraries/Microsoft.Extensions.Http/src/Logging/LoggingHttpMessageHandlerBuilderFilter.cs index 9b982bbf3cc5b..4907c14816609 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/Logging/LoggingHttpMessageHandlerBuilderFilter.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/Logging/LoggingHttpMessageHandlerBuilderFilter.cs @@ -32,12 +32,6 @@ public Action Configure(Action Configure(Action c.BaseAddress = new Uri("http://example.com/")); - serviceCollection.ConfigureHttpClientDefaults(builder => - { - builder.ConfigureHttpClient(c => c.BaseAddress = new Uri("http://default.com/")); - }); - - var services = serviceCollection.BuildServiceProvider(); - var factory = services.GetRequiredService(); - - // Act2 - var client = factory.CreateClient("example.com"); - - // Assert - Assert.NotNull(client); - Assert.Equal("http://example.com/", client.BaseAddress.AbsoluteUri); - } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] public void AddHttpClient_WithTypedClient_ConfiguresNamedClient() { @@ -766,14 +742,14 @@ public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHt // Arrange var serviceCollection = new ServiceCollection(); - IList additionalHandlers = null; + HttpMessageHandlerBuilder builder = null; // Act1 - serviceCollection.AddHttpClient("example.com").ConfigureAdditionalHttpMessageHandlers((handlers, _) => + serviceCollection.AddHttpClient("example.com").ConfigureHttpMessageHandlerBuilder(b => { - additionalHandlers = handlers; + builder = b; - handlers.Add(Mock.Of()); + b.AdditionalHandlers.Add(Mock.Of()); }); var services = serviceCollection.BuildServiceProvider(); @@ -788,7 +764,7 @@ public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHt Assert.NotNull(client); Assert.Collection( - additionalHandlers, + builder.AdditionalHandlers, h => Assert.IsType(h), h => Assert.NotNull(h), h => Assert.IsType(h)); @@ -907,14 +883,14 @@ public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHt { var serviceCollection = new ServiceCollection(); - IList additionalHandlers = null; + HttpMessageHandlerBuilder builder = null; // Act1 - serviceCollection.AddHttpClient("example.com").ConfigureAdditionalHttpMessageHandlers((handlers, _) => + serviceCollection.AddHttpClient("example.com").ConfigureHttpMessageHandlerBuilder(b => { - additionalHandlers = handlers; + builder = b; - handlers.Add(Mock.Of()); + b.AdditionalHandlers.Add(Mock.Of()); }); var services = serviceCollection.BuildServiceProvider(); @@ -929,7 +905,7 @@ public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHt Assert.IsNotType(handler); Assert.Collection( - additionalHandlers, + builder.AdditionalHandlers, h => Assert.IsType(h), h => Assert.NotNull(h), h => Assert.IsType(h)); @@ -1366,94 +1342,6 @@ public void SuppressScope_True_InScope_DoesNotCreateScope() } } - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] - public void AddHttpClient_ConfigurePrimaryHttpMessageHandler_ApplyChangesPrimaryHandler() - { - // Arrange - var testCredentials = new TestCredentials(); - var testBuilder = new TestHttpMessageHandlerBuilder(); - - var serviceCollection = new ServiceCollection(); - serviceCollection.AddSingleton(testBuilder); - serviceCollection - .AddHttpClient("test") - .ConfigurePrimaryHttpMessageHandler((primaryHandler, _) => - { - ((HttpClientHandler)primaryHandler).Credentials = testCredentials; - }); - - var services = serviceCollection.BuildServiceProvider(); - - // Act & Assert - _ = services.GetRequiredService(); - - Assert.Same(testCredentials, ((HttpClientHandler)testBuilder.PrimaryHandler).Credentials); - } - - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] - public void AddHttpClient_ConfigureAdditionalHttpMessageHandlers_ModifyAdditionalHandlers() - { - // Arrange - var testCredentials = new TestCredentials(); - var testBuilder = new TestHttpMessageHandlerBuilder(); - - var serviceCollection = new ServiceCollection(); - serviceCollection.AddSingleton(testBuilder); - serviceCollection - .AddHttpClient("test") - .AddHttpMessageHandler(() => Mock.Of()) - .ConfigureAdditionalHttpMessageHandlers((additionalHandlers, _) => - { - additionalHandlers.Clear(); - }); - - var services = serviceCollection.BuildServiceProvider(); - - // Act & Assert - _ = services.GetRequiredService(); - - // Contains two logging handlers added by the filter. - Assert.Equal(2, testBuilder.AdditionalHandlers.Count); - } - - private sealed class TestHttpMessageHandlerBuilder : HttpMessageHandlerBuilder - { - public override string? Name { get; set; } - public override HttpMessageHandler PrimaryHandler { get; set; } = new HttpClientHandler(); - public override IList AdditionalHandlers { get; } = new List(); - - public override HttpMessageHandler Build() => PrimaryHandler; - } - - private sealed class TestCredentials : ICredentials - { - public NetworkCredential GetCredential(Uri uri, string authType) => throw new NotImplementedException(); - } - - [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] - public void AddHttpClientDefaults_MultipleConfigInOneDefault_LastWins() - { - // Arrange - var serviceCollection = new ServiceCollection(); - - // Act1 - serviceCollection.ConfigureHttpClientDefaults(builder => - { - builder.ConfigureHttpClient(c => c.BaseAddress = new Uri("http://default1.com/")); - builder.ConfigureHttpClient(c => c.BaseAddress = new Uri("http://default2.com/")); - }); - - var services = serviceCollection.BuildServiceProvider(); - var factory = services.GetRequiredService(); - - // Act2 - var client = factory.CreateClient(); - - // Assert - Assert.NotNull(client); - Assert.Equal("http://default2.com/", client.BaseAddress.AbsoluteUri); - } - private class TestGenericTypedClient : TestTypedClient { public TestGenericTypedClient(HttpClient httpClient) @@ -1507,7 +1395,7 @@ protected override Task SendAsync(HttpRequestMessage reques { #if NETFRAMEWORK request.Properties[nameof(ScopedService)] = Service; -#else +#else request.Options.Set(new HttpRequestOptionsKey(nameof(ScopedService)), Service); #endif return Task.FromResult(new HttpResponseMessage()); diff --git a/src/libraries/Microsoft.Extensions.Http/tests/Microsoft.Extensions.Http.Tests/Logging/LoggingUriOutputTests.cs b/src/libraries/Microsoft.Extensions.Http/tests/Microsoft.Extensions.Http.Tests/Logging/LoggingUriOutputTests.cs index 8f6ca7a8c4e28..c7a30a591351e 100644 --- a/src/libraries/Microsoft.Extensions.Http/tests/Microsoft.Extensions.Http.Tests/Logging/LoggingUriOutputTests.cs +++ b/src/libraries/Microsoft.Extensions.Http/tests/Microsoft.Extensions.Http.Tests/Logging/LoggingUriOutputTests.cs @@ -167,5 +167,19 @@ public void LoggingScopeHttpMessageHandler_LogsAbsoluteUri_Sync() Assert.Equal("HTTP GET http://api.example.com/search?term=Western%20Australia", message.Scope.ToString()); } #endif + + private class TestMessageHandler : HttpClientHandler + { + protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + var response = new HttpResponseMessage(); + + return Task.FromResult(response); + } + +#if NET5_0_OR_GREATER + protected override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) => new(); +#endif + } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Configuration/src/LoggerFilterConfigureOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Configuration/src/LoggerFilterConfigureOptions.cs index 6afe56fe68294..8a4507cfe4e19 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Configuration/src/LoggerFilterConfigureOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Configuration/src/LoggerFilterConfigureOptions.cs @@ -30,7 +30,7 @@ private void LoadDefaultConfigValues(LoggerFilterOptions options) return; } - options.CaptureScopes = _configuration.GetValue(nameof(options.CaptureScopes), options.CaptureScopes); + options.CaptureScopes = GetCaptureScopesValue(options); foreach (IConfigurationSection configurationSection in _configuration.GetChildren()) { @@ -50,6 +50,8 @@ private void LoadDefaultConfigValues(LoggerFilterOptions options) } } } + + bool GetCaptureScopesValue(LoggerFilterOptions options) => _configuration.GetValue(nameof(options.CaptureScopes), options.CaptureScopes); } private static void LoadRules(LoggerFilterOptions options, IConfigurationSection configurationSection, string? logger) diff --git a/src/libraries/Microsoft.Extensions.Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj b/src/libraries/Microsoft.Extensions.Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj index 545e2867e4de6..fa787baa1962a 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj @@ -37,7 +37,7 @@ - + diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleFormatterOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleFormatterOptions.cs index 2b3d0128b72cd..408afda399db9 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleFormatterOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleFormatterOptions.cs @@ -32,6 +32,22 @@ public ConsoleFormatterOptions() { } /// public bool UseUtcTimestamp { get; set; } - internal virtual void Configure(IConfiguration configuration) => configuration.Bind(this); + internal virtual void Configure(IConfiguration configuration) + { + if (ConsoleLoggerOptions.ParseBool(configuration, nameof(IncludeScopes), out bool includeScopes)) + { + IncludeScopes = includeScopes; + } + + if (configuration[nameof(TimestampFormat)] is string timestampFormat) + { + TimestampFormat = timestampFormat; + } + + if (ConsoleLoggerOptions.ParseBool(configuration, nameof(UseUtcTimestamp), out bool useUtcTimestamp)) + { + UseUtcTimestamp = useUtcTimestamp; + } + } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerConfigureOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerConfigureOptions.cs index b8cd54a488d86..dc4b98b0a02ff 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerConfigureOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerConfigureOptions.cs @@ -26,6 +26,6 @@ public ConsoleLoggerConfigureOptions(ILoggerProviderConfiguration _configuration.Bind(options); + public void Configure(ConsoleLoggerOptions options) => options.Configure(_configuration); } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs index 4e8d31a3a7395..3ddc4586e9833 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs @@ -87,14 +87,14 @@ private ConsoleLoggerSettingsAdapter(IConsoleLoggerSettings settings) IChangeToken IOptionsChangeTokenSource.GetChangeToken() => _settings.ChangeToken ?? NullChangeToken.Instance; - string IOptionsChangeTokenSource.Name => Options.Options.DefaultName; + string IOptionsChangeTokenSource.Name => Microsoft.Extensions.Options.Options.DefaultName; void IConfigureOptions.Configure(ConsoleLoggerOptions options) { options.IncludeScopes = _settings.IncludeScopes; if (_settings is ConfigurationConsoleLoggerSettings configSettings) { - configSettings._configuration.Bind(options); + options.Configure(configSettings._configuration); } else if (_settings is ConsoleLoggerSettings consoleSettings) { @@ -105,7 +105,7 @@ void IConfigureOptions.Configure(ConsoleLoggerOptions opti internal static OptionsMonitor GetOptionsMonitor(IConsoleLoggerSettings settings) { ConsoleLoggerSettingsAdapter adapter = new(settings); - OptionsFactory factory = new(new IConfigureOptions[] { adapter }, Array.Empty>()); + OptionsFactory factory = new( new IConfigureOptions[] { adapter }, Array.Empty>()); IOptionsChangeTokenSource[] sources = new IOptionsChangeTokenSource[] { adapter }; OptionsCache cache = new(); diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerOptions.cs index 69704e4095a8e..8b833ad6eff0e 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerOptions.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.Globalization; +using Microsoft.Extensions.Configuration; namespace Microsoft.Extensions.Logging.Console { @@ -100,5 +102,146 @@ public int MaxQueueLength _maxQueuedMessages = value; } } + + internal void Configure(IConfiguration configuration) + { +#pragma warning disable CS0618 // Type or member is obsolete + if (ParseBool(configuration, nameof(DisableColors), out bool disableColors)) + { + DisableColors = disableColors; + } +#pragma warning restore CS0618 // Type or member is obsolete + +#pragma warning disable CS0618 // Type or member is obsolete + if (ParseEnum(configuration, nameof(Format), out ConsoleLoggerFormat format)) + { + Format = format; + } +#pragma warning restore CS0618 // Type or member is obsolete + + if (configuration[nameof(FormatterName)] is string formatterName) + { + FormatterName = formatterName; + } + +#pragma warning disable CS0618 // Type or member is obsolete + if (ParseBool(configuration, nameof(IncludeScopes), out bool includeScopes)) + { + IncludeScopes = includeScopes; + } +#pragma warning restore CS0618 // Type or member is obsolete + + if (ParseEnum(configuration, nameof(LogToStandardErrorThreshold), out LogLevel logToStandardErrorThreshold)) + { + LogToStandardErrorThreshold = logToStandardErrorThreshold; + } + + if (ParseInt(configuration, nameof(MaxQueueLength), out int maxQueueLength)) + { + MaxQueueLength = maxQueueLength; + } + + if (ParseEnum(configuration, nameof(QueueFullMode), out ConsoleLoggerQueueFullMode queueFullMode)) + { + QueueFullMode = queueFullMode; + } + +#pragma warning disable CS0618 // Type or member is obsolete + if (configuration[nameof(TimestampFormat)] is string timestampFormat) + { + TimestampFormat = timestampFormat; + } +#pragma warning restore CS0618 // Type or member is obsolete + +#pragma warning disable CS0618 // Type or member is obsolete + if (ParseBool(configuration, nameof(UseUtcTimestamp), out bool useUtcTimestamp)) + { + UseUtcTimestamp = useUtcTimestamp; + } +#pragma warning restore CS0618 // Type or member is obsolete + } + + /// + /// Parses the configuration value at the specified key into a bool. + /// + /// true if the value was successfully found and parsed. false if the key wasn't found. + /// Thrown when invalid data was found at the specified configuration key. + internal static bool ParseBool(IConfiguration configuration, string key, out bool value) + { + if (configuration[key] is string valueString) + { + try + { + value = bool.Parse(valueString); + return true; + } + catch (Exception e) + { + ThrowInvalidConfigurationException(configuration, key, typeof(bool), e); + } + } + + value = default; + return false; + } + + /// + /// Parses the configuration value at the specified key into an enum. + /// + /// true if the value was successfully found and parsed. false if the key wasn't found. + /// Thrown when invalid data was found at the specified configuration key. + internal static bool ParseEnum(IConfiguration configuration, string key, out T value) where T : struct + { + if (configuration[key] is string valueString) + { + try + { + value = +#if NETFRAMEWORK || NETSTANDARD2_0 + (T)Enum.Parse(typeof(T), valueString, ignoreCase: true); +#else + Enum.Parse(valueString, ignoreCase: true); +#endif + return true; + } + catch (Exception e) + { + ThrowInvalidConfigurationException(configuration, key, typeof(T), e); + } + } + + value = default; + return false; + } + + /// + /// Parses the configuration value at the specified key into an int. + /// + /// true if the value was successfully found and parsed. false if the key wasn't found. + /// Thrown when invalid data was found at the specified configuration key. + internal static bool ParseInt(IConfiguration configuration, string key, out int value) + { + if (configuration[key] is string valueString) + { + try + { + value = int.Parse(valueString, NumberStyles.Integer, NumberFormatInfo.InvariantInfo); + return true; + } + catch (Exception e) + { + ThrowInvalidConfigurationException(configuration, key, typeof(int), e); + } + } + + value = default; + return false; + } + + private static void ThrowInvalidConfigurationException(IConfiguration configuration, string key, Type valueType, Exception innerException) + { + IConfigurationSection section = configuration.GetSection(key); + throw new InvalidOperationException(SR.Format(SR.InvalidConfigurationData, section.Path, valueType), innerException); + } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatterOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatterOptions.cs index 2a9d4e5901a49..2bdf51c67a847 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatterOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatterOptions.cs @@ -21,6 +21,31 @@ public JsonConsoleFormatterOptions() { } /// public JsonWriterOptions JsonWriterOptions { get; set; } - internal override void Configure(IConfiguration configuration) => configuration.Bind(this); + internal override void Configure(IConfiguration configuration) + { + base.Configure(configuration); + + if (configuration.GetSection(nameof(JsonWriterOptions)) is IConfigurationSection jsonWriterOptionsConfig) + { + JsonWriterOptions jsonWriterOptions = JsonWriterOptions; + + if (ConsoleLoggerOptions.ParseBool(jsonWriterOptionsConfig, nameof(JsonWriterOptions.Indented), out bool indented)) + { + jsonWriterOptions.Indented = indented; + } + + if (ConsoleLoggerOptions.ParseInt(jsonWriterOptionsConfig, nameof(JsonWriterOptions.MaxDepth), out int maxDepth)) + { + jsonWriterOptions.MaxDepth = maxDepth; + } + + if (ConsoleLoggerOptions.ParseBool(jsonWriterOptionsConfig, nameof(JsonWriterOptions.SkipValidation), out bool skipValidation)) + { + jsonWriterOptions.SkipValidation = skipValidation; + } + + JsonWriterOptions = jsonWriterOptions; + } + } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj b/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj index 8cec9d1b8ca78..ed78c7dce5f78 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj @@ -7,24 +7,29 @@ $(DefineConstants);NO_SUPPRESS_GC_TRANSITION true true - true - - $(NoWarn);SYSLIB1100 Console logger provider implementation for Microsoft.Extensions.Logging. - - - - + + + + - - - - + + + + @@ -62,8 +67,4 @@ - - - - diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatterOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatterOptions.cs index 326fb16d752bb..d31efbeda54e0 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatterOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatterOptions.cs @@ -25,6 +25,19 @@ public SimpleConsoleFormatterOptions() { } /// public bool SingleLine { get; set; } - internal override void Configure(IConfiguration configuration) => configuration.Bind(this); + internal override void Configure(IConfiguration configuration) + { + base.Configure(configuration); + + if (ConsoleLoggerOptions.ParseEnum(configuration, nameof(ColorBehavior), out LoggerColorBehavior colorBehavior)) + { + ColorBehavior = colorBehavior; + } + + if (ConsoleLoggerOptions.ParseBool(configuration, nameof(SingleLine), out bool singleLine)) + { + SingleLine = singleLine; + } + } } } diff --git a/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/ImplicitMachineConfigHost.cs b/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/ImplicitMachineConfigHost.cs index 1d8f37ddb3ff3..665ef24e47c26 100644 --- a/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/ImplicitMachineConfigHost.cs +++ b/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/ImplicitMachineConfigHost.cs @@ -82,8 +82,6 @@ public override Stream OpenStreamForRead(string streamName)
-
-
diff --git a/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/ImplicitMachineConfigTests.cs b/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/ImplicitMachineConfigTests.cs index ad7c96600b81c..5727efe404bec 100644 --- a/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/ImplicitMachineConfigTests.cs +++ b/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/ImplicitMachineConfigTests.cs @@ -5,8 +5,6 @@ using System.Configuration; using System.Configuration.Internal; using System.IO; -using Microsoft.DotNet.RemoteExecutor; - using Xunit; namespace System.ConfigurationTests @@ -20,30 +18,6 @@ public void RuntimeAppSettingsAccessible() Assert.NotNull(appSettings); } - [ConditionalFact(typeof(RemoteExecutor), nameof(RemoteExecutor.IsSupported))] - public void RuntimeAppSettingsSystemRuntimeRemotingSectionIsSupported() - { - using (var temp = new TempConfig(TestData.SystemRuntimeRemotingSectionConfig)) - { - RemoteExecutor.Invoke((string configFilePath) => { - AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configFilePath); - Assert.NotNull(ConfigurationManager.GetSection("system.runtime.remoting")); - }, temp.ConfigPath).Dispose(); - } - } - - [ConditionalFact(typeof(RemoteExecutor), nameof(RemoteExecutor.IsSupported))] - public void RuntimeAppSettingsWindowsSectionIsSupported() - { - using (var temp = new TempConfig(TestData.WindowsSectionConfig)) - { - RemoteExecutor.Invoke((string configFilePath) => { - AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configFilePath); - Assert.NotNull(ConfigurationManager.GetSection("windows")); - }, temp.ConfigPath).Dispose(); - } - } - [Fact] public void DesignTimeAppSettingsAccessible() { diff --git a/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/TestData.cs b/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/TestData.cs index 74b685f92f4f8..6ee1f6683752a 100644 --- a/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/TestData.cs +++ b/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/TestData.cs @@ -25,23 +25,5 @@ public static class TestData "; - - public static string SystemRuntimeRemotingSectionConfig = -@" - - - - - - - - -"; - - public static string WindowsSectionConfig = -@" - - -"; } } diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/AggregationManager.cs b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/AggregationManager.cs index e4adce2f275c1..b1035b2b2b544 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/AggregationManager.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/AggregationManager.cs @@ -129,9 +129,8 @@ private void PublishedInstrument(Instrument instrument, MeterListener _) if (state != null) { _beginInstrumentMeasurements(instrument); -#pragma warning disable CA1864 // Prefer the 'IDictionary.TryAdd(TKey, TValue)' method. IDictionary.TryAdd() is not available in one of the builds + if (!_instruments.ContainsKey(instrument)) -#pragma warning restore CA1864 { // This has side effects that prompt MeasurementsCompleted // to be called if this is called multiple times on an diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs index 5762874bbef77..4594267defc33 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs @@ -522,7 +522,7 @@ private static ProcessInfo[] GetProcessInfos(PerformanceCounterLib library, int } else { - if (!processInfos.TryAdd(processInfo.ProcessId, processInfo)) + if (processInfos.ContainsKey(processInfo.ProcessId)) { // We've found two entries in the perfcounters that claim to be the // same process. We throw an exception. Is this really going to be @@ -549,6 +549,7 @@ private static ProcessInfo[] GetProcessInfos(PerformanceCounterLib library, int } } processInfo.ProcessName = instanceName.ToString(); + processInfos.Add(processInfo.ProcessId, processInfo); } } } diff --git a/src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/AD/ADDNLinkedAttrSet.cs b/src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/AD/ADDNLinkedAttrSet.cs index a89db78183856..84e0191a869d9 100644 --- a/src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/AD/ADDNLinkedAttrSet.cs +++ b/src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/AD/ADDNLinkedAttrSet.cs @@ -667,10 +667,11 @@ private bool MoveNextForeign(ref bool outerNeedToRetry) if (null == foreignSid.sidIssuerName) { // create and return the unknown principal if it is not yet present in usersVisited - if (_usersVisited.TryAdd(foreignSid.name, true)) + if (!_usersVisited.ContainsKey(foreignSid.name)) { byte[] sid = Utils.ConvertNativeSidToByteArray(foreignSid.pSid); UnknownPrincipal unknownPrincipal = UnknownPrincipal.CreateUnknownPrincipal(_storeCtx.OwningContext, sid, foreignSid.name); + _usersVisited.Add(foreignSid.name, true); this.current = null; _currentForeignDE = null; _currentForeignPrincipal = unknownPrincipal; diff --git a/src/libraries/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.Linux.cs b/src/libraries/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.Linux.cs index 1dc9573d943f8..2cc4226613ff2 100644 --- a/src/libraries/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.Linux.cs +++ b/src/libraries/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.Linux.cs @@ -829,7 +829,7 @@ private bool TryReadEvent(out NotifyEvent notifyEvent) } /// - /// Reads a UTF-8 string from _buffer starting at the specified position and up to + /// Reads a UTF8 string from _buffer starting at the specified position and up to /// the specified length. Null termination is trimmed off (the length may include /// many null bytes, not just one, or it may include none). /// diff --git a/src/libraries/System.Net.Http/ref/System.Net.Http.cs b/src/libraries/System.Net.Http/ref/System.Net.Http.cs index ed341d31d8c0d..46d2b57abfc78 100644 --- a/src/libraries/System.Net.Http/ref/System.Net.Http.cs +++ b/src/libraries/System.Net.Http/ref/System.Net.Http.cs @@ -135,8 +135,6 @@ public HttpClientHandler() { } public long MaxRequestContentBufferSize { get { throw null; } set { } } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public int MaxResponseHeadersLength { get { throw null; } set { } } - [System.CLSCompliantAttribute(false)] - public System.Diagnostics.Metrics.IMeterFactory? MeterFactory { get { throw null; } set { } } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public bool PreAuthenticate { get { throw null; } set { } } public System.Collections.Generic.IDictionary Properties { get { throw null; } } @@ -399,8 +397,6 @@ public SocketsHttpHandler() { } public int MaxConnectionsPerServer { get { throw null; } set { } } public int MaxResponseDrainSize { get { throw null; } set { } } public int MaxResponseHeadersLength { get { throw null; } set { } } - [System.CLSCompliantAttribute(false)] - public System.Diagnostics.Metrics.IMeterFactory? MeterFactory { get { throw null; } set { } } public System.TimeSpan PooledConnectionIdleTimeout { get { throw null; } set { } } public System.TimeSpan PooledConnectionLifetime { get { throw null; } set { } } public bool PreAuthenticate { get { throw null; } set { } } @@ -905,15 +901,3 @@ public WarningHeaderValue(int code, string agent, string text, System.DateTimeOf public static bool TryParse([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] string? input, [System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] out System.Net.Http.Headers.WarningHeaderValue? parsedValue) { throw null; } } } -namespace System.Net.Http.Metrics -{ - public sealed class HttpMetricsEnrichmentContext - { - internal HttpMetricsEnrichmentContext() { } - public System.Net.Http.HttpRequestMessage Request { get { throw null; } } - public System.Net.Http.HttpResponseMessage? Response { get { throw null; } } - public System.Exception? Exception { get { throw null; } } - public void AddCustomTag(string name, object? value) { throw null; } - public static void AddCallback(System.Net.Http.HttpRequestMessage request, System.Action callback) { throw null; } - } -} diff --git a/src/libraries/System.Net.Http/src/System.Net.Http.csproj b/src/libraries/System.Net.Http/src/System.Net.Http.csproj index cb3622d067a77..3858acc73b5ec 100644 --- a/src/libraries/System.Net.Http/src/System.Net.Http.csproj +++ b/src/libraries/System.Net.Http/src/System.Net.Http.csproj @@ -122,8 +122,6 @@ - - @@ -229,7 +227,7 @@ Link="Common\System\Net\DebugSafeHandleZeroOrMinusOneIsInvalid.cs" /> - + Common\System\Net\Http\aspnetcore\IHttpStreamHeadersHandler.cs @@ -473,4 +471,4 @@ - \ No newline at end of file + diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs b/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs index ed8abc2a1905a..8b9919906076e 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs @@ -289,6 +289,7 @@ private static HttpResponseMessage ConvertResponse(HttpRequestMessage request, W protected internal override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { + ArgumentNullException.ThrowIfNull(request); bool? allowAutoRedirect = _isAllowAutoRedirectTouched ? AllowAutoRedirect : null; #if FEATURE_WASM_THREADS return JSHost.CurrentOrMainJSSynchronizationContext.Send(() => diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/SocketsHttpHandler.cs b/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/SocketsHttpHandler.cs index 9afd16e0d051b..1cd0dbdb7a645 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/SocketsHttpHandler.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/SocketsHttpHandler.cs @@ -9,7 +9,6 @@ using System.Threading.Tasks; using System.Diagnostics.CodeAnalysis; using System.Diagnostics; -using System.Diagnostics.Metrics; namespace System.Net.Http { @@ -92,13 +91,6 @@ public int MaxResponseDrainSize set => throw new PlatformNotSupportedException(); } - [CLSCompliant(false)] - public IMeterFactory? MeterFactory - { - get => throw new PlatformNotSupportedException(); - set => throw new PlatformNotSupportedException(); - } - public TimeSpan ResponseDrainTimeout { get => throw new PlatformNotSupportedException(); diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs b/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs index 6436c1595b46e..fd9d9420f7a22 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs @@ -78,6 +78,7 @@ internal override ValueTask SendAsync(HttpRequestMessage re { if (IsEnabled()) { + ArgumentNullException.ThrowIfNull(request); return SendAsyncCore(request, async, cancellationToken); } else diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.AnyMobile.cs b/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.AnyMobile.cs index c948e70218c95..be3f5170968dc 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.AnyMobile.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.AnyMobile.cs @@ -1,12 +1,12 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; -using System.Diagnostics.Metrics; +using System.Diagnostics.CodeAnalysis; using System.Globalization; -using System.Net.Http.Metrics; using System.Net.Security; using System.Reflection; using System.Runtime.ExceptionServices; @@ -21,28 +21,37 @@ namespace System.Net.Http public partial class HttpClientHandler : HttpMessageHandler { private readonly SocketsHttpHandler? _socketHandler; + private readonly DiagnosticsHandler? _diagnosticsHandler; + private readonly HttpMessageHandler? _nativeHandler; - private MetricsHandler? _metricsHandler; private static readonly ConcurrentDictionary s_cachedMethods = new ConcurrentDictionary(); - private IMeterFactory? _meterFactory; private ClientCertificateOption _clientCertificateOptions; private volatile bool _disposed; public HttpClientHandler() { + HttpMessageHandler handler; + if (IsNativeHandlerEnabled) { _nativeHandler = CreateNativeHandler(); + handler = _nativeHandler; } else { _socketHandler = new SocketsHttpHandler(); + handler = _socketHandler; ClientCertificateOptions = ClientCertificateOption.Manual; } + + if (DiagnosticsHandler.IsGloballyEnabled()) + { + _diagnosticsHandler = new DiagnosticsHandler(handler, DistributedContextPropagator.Current); + } } protected override void Dispose(bool disposing) @@ -64,21 +73,6 @@ protected override void Dispose(bool disposing) base.Dispose(disposing); } - [CLSCompliant(false)] - public IMeterFactory? MeterFactory - { - get => _meterFactory; - set - { - ObjectDisposedException.ThrowIf(_disposed, this); - if (_metricsHandler != null) - { - throw new InvalidOperationException(SR.net_http_operation_started); - } - _meterFactory = value; - } - } - [UnsupportedOSPlatform("browser")] public bool UseCookies { @@ -719,9 +713,19 @@ protected internal override HttpResponseMessage Send(HttpRequestMessage request, protected internal override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { - ArgumentNullException.ThrowIfNull(request); - MetricsHandler handler = _metricsHandler ?? SetupHandlerChain(); - return handler.SendAsync(request, cancellationToken); + if (DiagnosticsHandler.IsGloballyEnabled() && _diagnosticsHandler != null) + { + return _diagnosticsHandler!.SendAsync(request, cancellationToken); + } + + if (IsNativeHandlerEnabled) + { + return _nativeHandler!.SendAsync(request, cancellationToken); + } + else + { + return _socketHandler!.SendAsync(request, cancellationToken); + } } // lazy-load the validator func so it can be trimmed by the ILLinker if it isn't used. @@ -737,23 +741,6 @@ protected internal override Task SendAsync(HttpRequestMessa } } - private MetricsHandler SetupHandlerChain() - { - HttpMessageHandler handler = IsNativeHandlerEnabled ? _nativeHandler! : _socketHandler!; - if (DiagnosticsHandler.IsGloballyEnabled()) - { - handler = new DiagnosticsHandler(handler, DistributedContextPropagator.Current); - } - MetricsHandler metricsHandler = new MetricsHandler(handler, _meterFactory); - - // Ensure a single handler is used for all requests. - if (Interlocked.CompareExchange(ref _metricsHandler, metricsHandler, null) != null) - { - handler.Dispose(); - } - return _metricsHandler; - } - private void ThrowForModifiedManagedSslOptionsIfStarted() { // Hack to trigger an InvalidOperationException if a property that's stored on diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.cs b/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.cs index 97e1923e52751..cd88e7930918d 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/HttpClientHandler.cs @@ -9,10 +9,8 @@ using System.Security.Cryptography.X509Certificates; using System.Threading; using System.Threading.Tasks; -using System.Diagnostics.Metrics; -#if TARGET_BROWSER using System.Diagnostics; -using System.Net.Http.Metrics; +#if TARGET_BROWSER using HttpHandlerType = System.Net.Http.BrowserHttpHandler; #else using HttpHandlerType = System.Net.Http.SocketsHttpHandler; @@ -25,33 +23,7 @@ public partial class HttpClientHandler : HttpMessageHandler private readonly HttpHandlerType _underlyingHandler; #if TARGET_BROWSER - private IMeterFactory? _meterFactory; - private MetricsHandler? _metricsHandler; - - private MetricsHandler Handler - { - get - { - if (_metricsHandler != null) - { - return _metricsHandler; - } - - HttpMessageHandler handler = _underlyingHandler; - if (DiagnosticsHandler.IsGloballyEnabled()) - { - handler = new DiagnosticsHandler(handler, DistributedContextPropagator.Current); - } - MetricsHandler metricsHandler = new MetricsHandler(handler, _meterFactory); - - // Ensure a single handler is used for all requests. - if (Interlocked.CompareExchange(ref _metricsHandler, metricsHandler, null) != null) - { - metricsHandler.Dispose(); - } - return _metricsHandler; - } - } + private HttpMessageHandler Handler { get; } #else private HttpHandlerType Handler => _underlyingHandler; #endif @@ -62,6 +34,14 @@ public HttpClientHandler() { _underlyingHandler = new HttpHandlerType(); +#if TARGET_BROWSER + Handler = _underlyingHandler; + if (DiagnosticsHandler.IsGloballyEnabled()) + { + Handler = new DiagnosticsHandler(Handler, DistributedContextPropagator.Current); + } +#endif + ClientCertificateOptions = ClientCertificateOption.Manual; } @@ -80,33 +60,6 @@ protected override void Dispose(bool disposing) public virtual bool SupportsProxy => HttpHandlerType.SupportsProxy; public virtual bool SupportsRedirectConfiguration => HttpHandlerType.SupportsRedirectConfiguration; - /// - /// Gets or sets the to create a custom for the instance. - /// - /// - /// When is set to a non- value, all metrics emitted by the instance - /// will be recorded using the provided by the . - /// - [CLSCompliant(false)] - public IMeterFactory? MeterFactory - { -#if TARGET_BROWSER - get => _meterFactory; - set - { - ObjectDisposedException.ThrowIf(_disposed, this); - if (_metricsHandler != null) - { - throw new InvalidOperationException(SR.net_http_operation_started); - } - _meterFactory = value; - } -#else - get => _underlyingHandler.MeterFactory; - set => _underlyingHandler.MeterFactory = value; -#endif - } - [UnsupportedOSPlatform("browser")] public bool UseCookies { @@ -343,21 +296,11 @@ public SslProtocols SslProtocols [UnsupportedOSPlatform("browser")] //[UnsupportedOSPlatform("ios")] //[UnsupportedOSPlatform("tvos")] - protected internal override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) - { -#if TARGET_BROWSER - throw new PlatformNotSupportedException(); -#else - ArgumentNullException.ThrowIfNull(request); - return Handler.Send(request, cancellationToken); -#endif - } + protected internal override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) => + Handler.Send(request, cancellationToken); - protected internal override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) - { - ArgumentNullException.ThrowIfNull(request); - return Handler.SendAsync(request, cancellationToken); - } + protected internal override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) => + Handler.SendAsync(request, cancellationToken); // lazy-load the validator func so it can be trimmed by the ILLinker if it isn't used. private static Func? s_dangerousAcceptAnyServerCertificateValidator; diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs b/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs index c9e55048c802a..ceb93c06a2aae 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.IO; +using System.Net.Http.Headers; using System.Runtime.Versioning; using System.Threading; using System.Threading.Tasks; @@ -122,6 +124,7 @@ protected virtual void Dispose(bool disposing) if (disposing && !_disposed) { _disposed = true; + if (_disposeHandler) { _handler.Dispose(); diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs b/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs index 691db4059a248..566d5ac46f562 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs @@ -30,7 +30,7 @@ public class HttpRequestMessage : IDisposable private Version _version; private HttpVersionPolicy _versionPolicy; private HttpContent? _content; - internal HttpRequestOptions? _options; + private HttpRequestOptions? _options; public Version Version { diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionSettings.cs b/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionSettings.cs index 07ea1bd2b61ad..eaedf244ce4d4 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionSettings.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/HttpConnectionSettings.cs @@ -8,7 +8,6 @@ using System.Threading; using System.Threading.Tasks; using System.Diagnostics; -using System.Diagnostics.Metrics; namespace System.Net.Http { @@ -36,7 +35,6 @@ internal sealed class HttpConnectionSettings internal int _maxResponseDrainSize = HttpHandlerDefaults.DefaultMaxResponseDrainSize; internal TimeSpan _maxResponseDrainTime = HttpHandlerDefaults.DefaultResponseDrainTimeout; internal int _maxResponseHeadersLength = HttpHandlerDefaults.DefaultMaxResponseHeadersLength; - internal IMeterFactory? _meterFactory; internal TimeSpan _pooledConnectionLifetime = HttpHandlerDefaults.DefaultPooledConnectionLifetime; internal TimeSpan _pooledConnectionIdleTimeout = HttpHandlerDefaults.DefaultPooledConnectionIdleTimeout; @@ -103,7 +101,6 @@ public HttpConnectionSettings CloneAndNormalize() _maxResponseDrainSize = _maxResponseDrainSize, _maxResponseDrainTime = _maxResponseDrainTime, _maxResponseHeadersLength = _maxResponseHeadersLength, - _meterFactory = _meterFactory, _pooledConnectionLifetime = _pooledConnectionLifetime, _pooledConnectionIdleTimeout = _pooledConnectionIdleTimeout, _preAuthenticate = _preAuthenticate, diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs b/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs index 4e71e396a5511..eae4cb5245717 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/SocketsHttpHandler.cs @@ -10,8 +10,6 @@ using System.Diagnostics.CodeAnalysis; using System.Text; using System.Diagnostics; -using System.Diagnostics.Metrics; -using System.Net.Http.Metrics; namespace System.Net.Http { @@ -452,24 +450,6 @@ public DistributedContextPropagator? ActivityHeadersPropagator } } - /// - /// Gets or sets the to create a custom for the instance. - /// - /// - /// When is set to a non- value, all metrics emitted by the instance - /// will be recorded using the provided by the . - /// - [CLSCompliant(false)] - public IMeterFactory? MeterFactory - { - get => _settings._meterFactory; - set - { - CheckDisposedOrStarted(); - _settings._meterFactory = value; - } - } - internal ClientCertificateOption ClientCertificateOptions { get => _settings._clientCertificateOptions; @@ -479,7 +459,6 @@ internal ClientCertificateOption ClientCertificateOptions _settings._clientCertificateOptions = value; } } - protected override void Dispose(bool disposing) { if (disposing && !_disposed) @@ -516,8 +495,6 @@ private HttpMessageHandlerStage SetupHandlerChain() handler = new DiagnosticsHandler(handler, propagator, settings._allowAutoRedirect); } - handler = new MetricsHandler(handler, _settings._meterFactory); - if (settings._allowAutoRedirect) { // Just as with WinHttpHandler, for security reasons, we do not support authentication on redirects diff --git a/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj b/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj index bbeb3395d36e0..260c34fc8fb17 100644 --- a/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj +++ b/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj @@ -152,7 +152,6 @@ Link="Common\System\Net\Http\HttpClientHandlerTest.DefaultProxyCredentials.cs" /> - @@ -195,7 +194,6 @@ - The close status code '{0}' is reserved for system use only and cannot be specified when calling this method. - The close status description '{0}' is too long. The UTF-8 representation of the status description must not be longer than {1} bytes. + The close status description '{0}' is too long. The UTF8-representation of the status description must not be longer than {1} bytes. The WebSocket protocol is not supported on this platform. diff --git a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs index 66d233cd98194..899f1885d3c0e 100644 --- a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs +++ b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs @@ -428,7 +428,7 @@ public bool TryFormat(Span destination, out int charsWritten) => TryFormatCore(destination, out charsWritten); /// Tries to format the current IP address into the provided span. - /// When this method returns, the IP address as a span of UTF-8 bytes. + /// When this method returns, the IP address as a span of UTF8 bytes. /// When this method returns, the number of bytes written into the . /// if the formatting was successful; otherwise, . public bool TryFormat(Span utf8Destination, out int bytesWritten) => diff --git a/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs b/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs index 1c3a3acd42932..b3c94569148aa 100644 --- a/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs +++ b/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs @@ -252,9 +252,9 @@ public bool TryFormat(Span destination, out int charsWritten) => destination.TryWrite(CultureInfo.InvariantCulture, $"{BaseAddress}/{(uint)PrefixLength}", out charsWritten); /// - /// Attempts to write the 's CIDR notation to the given UTF-8 span and returns a value indicating whether the operation succeeded. + /// Attempts to write the 's CIDR notation to the given UTF8 span and returns a value indicating whether the operation succeeded. /// - /// The destination span of UTF-8 bytes. + /// The destination span of UTF8 bytes. /// When this method returns, contains the number of bytes that were written to . /// if the formatting was succesful; otherwise . public bool TryFormat(Span utf8Destination, out int bytesWritten) => diff --git a/src/libraries/System.Net.WebSockets.Client/src/Resources/Strings.resx b/src/libraries/System.Net.WebSockets.Client/src/Resources/Strings.resx index 449db4cbd6a36..81ae9dc7e21e4 100644 --- a/src/libraries/System.Net.WebSockets.Client/src/Resources/Strings.resx +++ b/src/libraries/System.Net.WebSockets.Client/src/Resources/Strings.resx @@ -100,7 +100,7 @@ The close status code '{0}' is reserved for system use only and cannot be specified when calling this method. - The close status description '{0}' is too long. The UTF-8 representation of the status description must not be longer than {1} bytes. + The close status description '{0}' is too long. The UTF8-representation of the status description must not be longer than {1} bytes. Only Uris starting with 'ws://' or 'wss://' are supported. diff --git a/src/libraries/System.Net.WebSockets/src/Resources/Strings.resx b/src/libraries/System.Net.WebSockets/src/Resources/Strings.resx index 8e01fce49ad88..1b7857f002160 100644 --- a/src/libraries/System.Net.WebSockets/src/Resources/Strings.resx +++ b/src/libraries/System.Net.WebSockets/src/Resources/Strings.resx @@ -100,7 +100,7 @@ The close status code '{0}' is reserved for system use only and cannot be specified when calling this method. - The close status description '{0}' is too long. The UTF-8 representation of the status description must not be longer than {1} bytes. + The close status description '{0}' is too long. The UTF8-representation of the status description must not be longer than {1} bytes. The WebSocket protocol is not supported on this platform. diff --git a/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs b/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs index c2a3ff083bdc6..5311fc7517ee5 100644 --- a/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs +++ b/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs @@ -26,7 +26,7 @@ namespace System.Net.WebSockets /// internal sealed partial class ManagedWebSocket : WebSocket { - /// Encoding for the payload of text messages: UTF-8 encoding that throws if invalid bytes are discovered, per the RFC. + /// Encoding for the payload of text messages: UTF8 encoding that throws if invalid bytes are discovered, per the RFC. private static readonly UTF8Encoding s_textEncoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true); /// Valid states to be in when calling SendAsync. @@ -61,7 +61,7 @@ internal sealed partial class ManagedWebSocket : WebSocket /// Buffer used for reading data from the network. private readonly Memory _receiveBuffer; /// - /// Tracks the state of the validity of the UTF-8 encoding of text payloads. Text may be split across fragments. + /// Tracks the state of the validity of the UTF8 encoding of text payloads. Text may be split across fragments. /// private readonly Utf8MessageState _utf8TextState = new Utf8MessageState(); /// diff --git a/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx b/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx index cdc31dde517da..60ef1fbf28cad 100644 --- a/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx +++ b/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx @@ -452,7 +452,7 @@ The signature Type array contains some invalid type (i.e. null, void) - The UTF-8 string passed in could not be converted to Unicode. + The UTF8 string passed in could not be converted to Unicode. I/O error occurred. @@ -1292,7 +1292,7 @@ The NativeDigits array must contain exactly ten members. - Each member of the NativeDigits array must be a single text element (one or more UTF-16 code points) with a Unicode Nd (Number, Decimal Digit) property indicating it is a digit. + Each member of the NativeDigits array must be a single text element (one or more UTF16 code points) with a Unicode Nd (Number, Decimal Digit) property indicating it is a digit. The region name {0} should not correspond to neutral culture; a specific culture name is required. @@ -2608,9 +2608,6 @@ Handle is not pinned. - - Formatted string contains characters not representable as valid UTF-8. - Hashtable insert failed. Load factor too high. The most common cause is multiple threads writing to the Hashtable simultaneously. diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Base64Validator.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Base64Validator.cs index 22071725a2352..403377fab99c5 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Base64Validator.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Base64Validator.cs @@ -30,8 +30,8 @@ public static bool IsValid(ReadOnlySpan base64Text) => public static bool IsValid(ReadOnlySpan base64Text, out int decodedLength) => IsValid(base64Text, out decodedLength); - /// Validates that the specified span of UTF-8 text is comprised of valid base-64 encoded data. - /// A span of UTF-8 text to validate. + /// Validates that the specified span of UTF8 text is comprised of valid base-64 encoded data. + /// A span of UTF8 text to validate. /// if contains a valid, decodable sequence of base-64 encoded data; otherwise, . /// /// If the method returns , the same text passed to and @@ -41,9 +41,9 @@ public static bool IsValid(ReadOnlySpan base64Text, out int decodedLength) public static bool IsValid(ReadOnlySpan base64TextUtf8) => IsValid(base64TextUtf8, out _); - /// Validates that the specified span of UTF-8 text is comprised of valid base-64 encoded data. - /// A span of UTF-8 text to validate. - /// If the method returns true, the number of decoded bytes that will result from decoding the input UTF-8 text. + /// Validates that the specified span of UTF8 text is comprised of valid base-64 encoded data. + /// A span of UTF8 text to validate. + /// If the method returns true, the number of decoded bytes that will result from decoding the input UTF8 text. /// if contains a valid, decodable sequence of base-64 encoded data; otherwise, . /// /// If the method returns , the same text passed to and diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Boolean.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Boolean.cs index 51cbbe58d199d..70c0ba85887c2 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Boolean.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Boolean.cs @@ -6,10 +6,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Boolean as a UTF-8 string. + /// Formats a Boolean as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Date.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Date.cs index fb2757a9df16a..fc4bb0c6cc29e 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Date.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Date.cs @@ -9,10 +9,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a DateTimeOffset as a UTF-8 string. + /// Formats a DateTimeOffset as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -58,10 +58,10 @@ public static bool TryFormat(DateTimeOffset value, Span destination, out i } /// - /// Formats a DateTime as a UTF-8 string. + /// Formats a DateTime as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Decimal.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Decimal.cs index b150aa78fcbed..1f619009c0594 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Decimal.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Decimal.cs @@ -6,10 +6,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Decimal as a UTF-8 string. + /// Formats a Decimal as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Float.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Float.cs index 62c7f7b281f65..3827e79a948a6 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Float.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Float.cs @@ -6,10 +6,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Double as a UTF-8 string. + /// Formats a Double as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -29,10 +29,10 @@ public static bool TryFormat(double value, Span destination, out int bytes FormattingHelpers.TryFormat(value, destination, out bytesWritten, format); /// - /// Formats a Single as a UTF-8 string. + /// Formats a Single as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Guid.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Guid.cs index 31b60eba9ea61..3e64fbd3ec754 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Guid.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Guid.cs @@ -6,10 +6,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Guid as a UTF-8 string. + /// Formats a Guid as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Integer.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Integer.cs index 80da602405082..0a55ad664ab27 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Integer.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Integer.cs @@ -11,10 +11,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Byte as a UTF-8 string. + /// Formats a Byte as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -35,10 +35,10 @@ public static bool TryFormat(byte value, Span destination, out int bytesWr TryFormat((uint)value, destination, out bytesWritten, format); /// - /// Formats an SByte as a UTF-8 string. + /// Formats an SByte as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -60,10 +60,10 @@ public static bool TryFormat(sbyte value, Span destination, out int bytesW TryFormat(value, 0xFF, destination, out bytesWritten, format); /// - /// Formats a Unt16 as a UTF-8 string. + /// Formats a Unt16 as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -85,10 +85,10 @@ public static bool TryFormat(ushort value, Span destination, out int bytes TryFormat((uint)value, destination, out bytesWritten, format); /// - /// Formats an Int16 as a UTF-8 string. + /// Formats an Int16 as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -109,10 +109,10 @@ public static bool TryFormat(short value, Span destination, out int bytesW TryFormat(value, 0xFFFF, destination, out bytesWritten, format); /// - /// Formats a UInt32 as a UTF-8 string. + /// Formats a UInt32 as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -163,10 +163,10 @@ public static bool TryFormat(uint value, Span destination, out int bytesWr } /// - /// Formats an Int32 as a UTF-8 string. + /// Formats an Int32 as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -223,10 +223,10 @@ private static bool TryFormat(int value, int hexMask, Span destination, ou } /// - /// Formats a UInt64 as a UTF-8 string. + /// Formats a UInt64 as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -277,10 +277,10 @@ public static bool TryFormat(ulong value, Span destination, out int bytesW } /// - /// Formats an Int64 as a UTF-8 string. + /// Formats an Int64 as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs index dd386dfb516f5..c1d8476209ae0 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs @@ -8,10 +8,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a TimeSpan as a UTF-8 string. + /// Formats a TimeSpan as a UTF8 string. /// /// Value to format - /// Buffer to write the UTF-8 formatted value to + /// Buffer to write the UTF8-formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Convert.Base64.cs b/src/libraries/System.Private.CoreLib/src/System/Convert.Base64.cs index f691316a04e34..b77506218f5e4 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Convert.Base64.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Convert.Base64.cs @@ -25,7 +25,7 @@ public static partial class Convert /// or a destination span that's too small. and are set so that /// parsing can continue with a slower whitespace-tolerant algorithm. /// - /// Note: This is a cut down version of the implementation of Base64.DecodeFromUtf8(), modified the accept UTF-16 chars and act as a fast-path + /// Note: This is a cut down version of the implementation of Base64.DecodeFromUtf8(), modified the accept UTF16 chars and act as a fast-path /// helper for the Convert routines when the input string contains no whitespace. /// private static bool TryDecodeFromUtf16(ReadOnlySpan utf16, Span bytes, out int consumed, out int written) diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/TraceLogging/FieldMetadata.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/TraceLogging/FieldMetadata.cs index bc6bf4fd066ff..eae652c0cdd4c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/TraceLogging/FieldMetadata.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/TraceLogging/FieldMetadata.cs @@ -19,7 +19,7 @@ internal sealed class FieldMetadata private readonly string name; /// - /// The number of bytes in the UTF-8 Encoding of 'name' INCLUDING a null terminator. + /// The number of bytes in the UTF8 Encoding of 'name' INCLUDING a null terminator. /// private readonly int nameSize; private readonly EventFieldTags tags; diff --git a/src/libraries/System.Private.CoreLib/src/System/Double.cs b/src/libraries/System.Private.CoreLib/src/System/Double.cs index 5a96ade08d880..ba621512477f4 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Double.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Double.cs @@ -533,28 +533,12 @@ public static bool IsPow2(double value) { ulong bits = BitConverter.DoubleToUInt64Bits(value); - if ((long)bits <= 0) - { - // Zero and negative values cannot be powers of 2 - return false; - } - - ushort biasedExponent = ExtractBiasedExponentFromBits(bits); + ushort biasedExponent = ExtractBiasedExponentFromBits(bits);; ulong trailingSignificand = ExtractTrailingSignificandFromBits(bits); - if (biasedExponent == MinBiasedExponent) - { - // Subnormal values have 1 bit set when they're powers of 2 - return ulong.PopCount(trailingSignificand) == 1; - } - else if (biasedExponent == MaxBiasedExponent) - { - // NaN and Infinite values cannot be powers of 2 - return false; - } - - // Normal values have 0 bits set when they're powers of 2 - return trailingSignificand == MinTrailingSignificand; + return (value > 0) + && (biasedExponent != MinBiasedExponent) && (biasedExponent != MaxBiasedExponent) + && (trailingSignificand == MinTrailingSignificand); } /// @@ -1887,24 +1871,6 @@ public static double CosPi(double x) return result; } - /// - public static double DegreesToRadians(double degrees) - { - // NOTE: Don't change the algorithm without consulting the DIM - // which elaborates on why this implementation was chosen - - return (degrees * Pi) / 180.0; - } - - /// - public static double RadiansToDegrees(double radians) - { - // NOTE: Don't change the algorithm without consulting the DIM - // which elaborates on why this implementation was chosen - - return (radians * 180.0) / Pi; - } - /// [Intrinsic] public static double Sin(double x) => Math.Sin(x); diff --git a/src/libraries/System.Private.CoreLib/src/System/Half.cs b/src/libraries/System.Private.CoreLib/src/System/Half.cs index 8daa37bbab576..58a7b7865ef82 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Half.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Half.cs @@ -1194,28 +1194,12 @@ public static bool IsPow2(Half value) { ushort bits = BitConverter.HalfToUInt16Bits(value); - if ((short)bits <= 0) - { - // Zero and negative values cannot be powers of 2 - return false; - } - byte biasedExponent = ExtractBiasedExponentFromBits(bits); ushort trailingSignificand = ExtractTrailingSignificandFromBits(bits); - if (biasedExponent == MinBiasedExponent) - { - // Subnormal values have 1 bit set when they're powers of 2 - return ushort.PopCount(trailingSignificand) == 1; - } - else if (biasedExponent == MaxBiasedExponent) - { - // NaN and Infinite values cannot be powers of 2 - return false; - } - - // Normal values have 0 bits set when they're powers of 2 - return trailingSignificand == MinTrailingSignificand; + return (value > Zero) + && (biasedExponent != MinBiasedExponent) && (biasedExponent != MaxBiasedExponent) + && (trailingSignificand == MinTrailingSignificand); } /// @@ -2162,24 +2146,6 @@ private static bool TryConvertTo(Half value, [MaybeNullWhen(false)] out /// public static Half CosPi(Half x) => (Half)float.CosPi((float)x); - /// - public static Half DegreesToRadians(Half degrees) - { - // NOTE: Don't change the algorithm without consulting the DIM - // which elaborates on why this implementation was chosen - - return (Half)float.DegreesToRadians((float)degrees); - } - - /// - public static Half RadiansToDegrees(Half radians) - { - // NOTE: Don't change the algorithm without consulting the DIM - // which elaborates on why this implementation was chosen - - return (Half)float.RadiansToDegrees((float)radians); - } - /// public static Half Sin(Half x) => (Half)MathF.Sin((float)x); diff --git a/src/libraries/System.Private.CoreLib/src/System/IUtf8SpanFormattable.cs b/src/libraries/System.Private.CoreLib/src/System/IUtf8SpanFormattable.cs index c7dbe2a1e64b7..7fa4dd9c30151 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IUtf8SpanFormattable.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IUtf8SpanFormattable.cs @@ -3,10 +3,10 @@ namespace System { - /// Provides functionality to format the string representation of an object into a span as UTF-8. + /// Provides functionality to format the string representation of an object into a span as UTF8. public interface IUtf8SpanFormattable { - /// Tries to format the value of the current instance as UTF-8 into the provided span of bytes. + /// Tries to format the value of the current instance as UTF8 into the provided span of bytes. /// When this method returns, this instance's value formatted as a span of bytes. /// When this method returns, the number of bytes that were written in . /// A span containing the characters that represent a standard or custom format string that defines the acceptable format for . diff --git a/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs b/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs index 3bb61ebcf736f..a67c7f78aa479 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs @@ -3605,7 +3605,7 @@ private static unsafe void FormatFixed( } /// Appends a char to the builder when the char is not known to be ASCII. - /// This requires a helper as if the character isn't ASCII, for UTF-8 encoding it will result in multiple bytes added. + /// This requires a helper as if the character isn't ASCII, for UTF8 encoding it will result in multiple bytes added. [MethodImpl(MethodImplOptions.AggressiveInlining)] private static void AppendUnknownChar(ref ValueListBuilder vlb, char ch) where TChar : unmanaged, IUtfChar { diff --git a/src/libraries/System.Private.CoreLib/src/System/Numerics/INumberBase.cs b/src/libraries/System.Private.CoreLib/src/System/Numerics/INumberBase.cs index 4368605183d2e..4d943b1933888 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Numerics/INumberBase.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Numerics/INumberBase.cs @@ -27,7 +27,6 @@ public interface INumberBase ISubtractionOperators, IUnaryPlusOperators, IUnaryNegationOperators, - IUtf8SpanFormattable, IUtf8SpanParsable where TSelf : INumberBase? { @@ -298,7 +297,7 @@ static virtual TSelf Parse(ReadOnlySpan utf8Text, NumberStyles style, IFor if (textMaxCharCount < 256) { utf16TextArray = null; - utf16Text = stackalloc char[256]; + utf16Text = stackalloc char[512]; } else { @@ -426,7 +425,7 @@ static virtual bool TryParse(ReadOnlySpan utf8Text, NumberStyles style, IF if (textMaxCharCount < 256) { utf16TextArray = null; - utf16Text = stackalloc char[256]; + utf16Text = stackalloc char[512]; } else { @@ -457,60 +456,6 @@ static virtual bool TryParse(ReadOnlySpan utf8Text, NumberStyles style, IF return succeeded; } - bool IUtf8SpanFormattable.TryFormat(Span utf8Destination, out int bytesWritten, ReadOnlySpan format, IFormatProvider? provider) - { - char[]? utf16DestinationArray; - scoped Span utf16Destination; - int destinationMaxCharCount = Encoding.UTF8.GetMaxCharCount(utf8Destination.Length); - - if (destinationMaxCharCount < 256) - { - utf16DestinationArray = null; - utf16Destination = stackalloc char[256]; - } - else - { - utf16DestinationArray = ArrayPool.Shared.Rent(destinationMaxCharCount); - utf16Destination = utf16DestinationArray.AsSpan(0, destinationMaxCharCount); - } - - if (!TryFormat(utf16Destination, out int charsWritten, format, provider)) - { - if (utf16DestinationArray != null) - { - // Return rented buffers if necessary - ArrayPool.Shared.Return(utf16DestinationArray); - } - - bytesWritten = 0; - return false; - } - - // Make sure we slice the buffer to just the characters written - utf16Destination = utf16Destination.Slice(0, charsWritten); - - OperationStatus utf8DestinationStatus = Utf8.FromUtf16(utf16Destination, utf8Destination, out _, out bytesWritten, replaceInvalidSequences: false); - - if (utf16DestinationArray != null) - { - // Return rented buffers if necessary - ArrayPool.Shared.Return(utf16DestinationArray); - } - - if (utf8DestinationStatus == OperationStatus.Done) - { - return true; - } - - if (utf8DestinationStatus != OperationStatus.DestinationTooSmall) - { - ThrowHelper.ThrowInvalidOperationException_InvalidUtf8(); - } - - bytesWritten = 0; - return false; - } - static TSelf IUtf8SpanParsable.Parse(ReadOnlySpan utf8Text, IFormatProvider? provider) { // Convert text using stackalloc for <= 256 characters and ArrayPool otherwise diff --git a/src/libraries/System.Private.CoreLib/src/System/Numerics/ITrigonometricFunctions.cs b/src/libraries/System.Private.CoreLib/src/System/Numerics/ITrigonometricFunctions.cs index eedb795255154..3231901ab6812 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Numerics/ITrigonometricFunctions.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Numerics/ITrigonometricFunctions.cs @@ -57,73 +57,6 @@ public interface ITrigonometricFunctions /// This computes cos(x * PI). static abstract TSelf CosPi(TSelf x); - /// Converts a given value from degrees to radians. - /// The value to convert to radians. - /// The value of converted to radians. - static virtual TSelf DegreesToRadians(TSelf degrees) - { - // We don't want to simplify this to: degrees * (Pi / 180) - // - // Doing so will change the result and in many cases will - // cause a loss of precision. The main exception to this - // is when the initial multiplication causes overflow, but - // if we decide that should be handled in the future it needs - // to be more explicit around how its done. - // - // Floating-point operations are naturally imprecise due to - // rounding required to fit the "infinitely-precise result" - // into the limits of the underlying representation. Because - // of this, every operation can introduce some amount of rounding - // error. - // - // For integers, the IEEE 754 binary floating-point types can - // exactly represent them up to the 2^n, where n is the number - // of bits in the significand. This is 10 for Half, 23 for Single, - // and 52 for Double. As you approach this limit, the number of - // digits available to represent the fractional portion decreases. - // - // For Half, you get around 3.311 total decimal digits of precision. - // For Single, this is around 7.225 and around 15.955 for Double. - // - // The actual number of digits can be slightly more or less, depending. - // - // This means that values such as `Pi` are not exactly `Pi`, instead: - // * Half: 3.14 0625 - // * Single: 3.14 1592 741012573 2421875 - // * Double: 3.14 1592 653589793 115997963468544185161590576171875 - // * Actual: 3.14 1592 653589793 2384626433832795028841971693993751058209749445923... - // - // If we were to simplify this to simply multiply by (Pi / 180), we get: - // * Half: 0.01745 6054 6875 - // * Single: 0.01745 3292 384743690 49072265625 - // * Double: 0.01745 3292 519943295 4743716805978692718781530857086181640625 - // * Actual: 0.01745 3292 519943295 7692369076848861271344287188854172545609719144... - // - // Neither of these end up "perfect". There will be some cases where they will trade - // in terms of closeness to the "infinitely precise result". Over the entire domain - // however, doing the separate multiplications tends to produce overall more accurate - // results. It helps ensure the implementation can be trivial for the DIM case, and - // covers the vast majority of typical inputs more efficiently largely only pessimizing - // the case where the first multiplication results in overflow. - // - // This is particularly true for `RadiansToDegrees` where 180 is exactly representable - // and so allows an exactly representable intermediate value to be computed when overflow - // doesn't occur. - - return (degrees * TSelf.Pi) / TSelf.CreateChecked(180); - } - - /// Converts a given value from radians to degrees. - /// The value to convert to degrees. - /// The value of converted to degrees. - static virtual TSelf RadiansToDegrees(TSelf radians) - { - // We don't want to simplify this to: radians * (180 / Pi) - // See DegreesToRadians for a longer explanation as to why - - return (radians * TSelf.CreateChecked(180)) / TSelf.Pi; - } - /// Computes the sine of a value. /// The value, in radians, whose sine is to be computed. /// The sine of . diff --git a/src/libraries/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs b/src/libraries/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs index e013510453c28..8017aabdcdb52 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs @@ -39,28 +39,5 @@ public void SetCustomAttribute(ConstructorInfo con, byte[] binaryAttribute) public void SetCustomAttribute(CustomAttributeBuilder customBuilder) => SetCustomAttributeCore(customBuilder.Ctor, customBuilder.Data); - - public override Type MakePointerType() - { - return SymbolType.FormCompoundType("*", this, 0)!; - } - - public override Type MakeByRefType() - { - return SymbolType.FormCompoundType("&", this, 0)!; - } - - [RequiresDynamicCode("The code for an array of the specified type might not be available.")] - public override Type MakeArrayType() - { - return SymbolType.FormCompoundType("[]", this, 0)!; - } - - [RequiresDynamicCode("The code for an array of the specified type might not be available.")] - public override Type MakeArrayType(int rank) - { - string s = GetRankString(rank); - return SymbolType.FormCompoundType(s, this, 0)!; - } } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs index 7625ebb886622..90ea2c9963767 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs @@ -257,10 +257,10 @@ public static unsafe ReadOnlySpan CreateReadOnlySpanFromNullTerminated(cha value != null ? new ReadOnlySpan(value, string.wcslen(value)) : default; - /// Creates a new read-only span for a null-terminated UTF-8 string. + /// Creates a new read-only span for a null-terminated UTF8 string. /// The pointer to the null-terminated string of bytes. /// A read-only span representing the specified null-terminated string, or an empty span if the pointer is null. - /// The returned span does not include the null terminator, nor does it validate the well-formedness of the UTF-8 data. + /// The returned span does not include the null terminator, nor does it validate the well-formedness of the UTF8 data. /// The string is longer than . [CLSCompliant(false)] public static unsafe ReadOnlySpan CreateReadOnlySpanFromNullTerminated(byte* value) => diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/NFloat.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/NFloat.cs index 3f3312b2c46b6..f61091f19e932 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/NFloat.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/NFloat.cs @@ -1851,24 +1851,6 @@ private static bool TryConvertTo(NFloat value, [MaybeNullWhen(false)] ou /// public static NFloat CosPi(NFloat x) => new NFloat(NativeType.CosPi(x._value)); - /// - public static NFloat DegreesToRadians(NFloat degrees) - { - // NOTE: Don't change the algorithm without consulting the DIM - // which elaborates on why this implementation was chosen - - return new NFloat(NativeType.DegreesToRadians(degrees._value)); - } - - /// - public static NFloat RadiansToDegrees(NFloat radians) - { - // NOTE: Don't change the algorithm without consulting the DIM - // which elaborates on why this implementation was chosen - - return new NFloat(NativeType.RadiansToDegrees(radians._value)); - } - /// public static NFloat Sin(NFloat x) => new NFloat(NativeType.Sin(x._value)); diff --git a/src/libraries/System.Private.CoreLib/src/System/Single.cs b/src/libraries/System.Private.CoreLib/src/System/Single.cs index fe6400f40c449..a4fa4fa4101c9 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Single.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Single.cs @@ -529,28 +529,12 @@ public static bool IsPow2(float value) { uint bits = BitConverter.SingleToUInt32Bits(value); - if ((int)bits <= 0) - { - // Zero and negative values cannot be powers of 2 - return false; - } - byte biasedExponent = ExtractBiasedExponentFromBits(bits); uint trailingSignificand = ExtractTrailingSignificandFromBits(bits); - if (biasedExponent == MinBiasedExponent) - { - // Subnormal values have 1 bit set when they're powers of 2 - return uint.PopCount(trailingSignificand) == 1; - } - else if (biasedExponent == MaxBiasedExponent) - { - // NaN and Infinite values cannot be powers of 2 - return false; - } - - // Normal values have 0 bits set when they're powers of 2 - return trailingSignificand == MinTrailingSignificand; + return (value > 0) + && (biasedExponent != MinBiasedExponent) && (biasedExponent != MaxBiasedExponent) + && (trailingSignificand == MinTrailingSignificand); } /// @@ -1768,24 +1752,6 @@ public static float CosPi(float x) return result; } - /// - public static float DegreesToRadians(float degrees) - { - // NOTE: Don't change the algorithm without consulting the DIM - // which elaborates on why this implementation was chosen - - return (degrees * Pi) / 180.0f; - } - - /// - public static float RadiansToDegrees(float radians) - { - // NOTE: Don't change the algorithm without consulting the DIM - // which elaborates on why this implementation was chosen - - return (radians * 180.0f) / Pi; - } - /// [Intrinsic] public static float Sin(float x) => MathF.Sin(x); diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8.cs index 53a3916e466ee..b7e4fe5ce6386 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8.cs @@ -330,7 +330,7 @@ internal static unsafe OperationStatus ToUtf16PreservingReplacement(ReadOnlySpan } } - /// Writes the specified interpolated string to the UTF-8 byte span. + /// Writes the specified interpolated string to the UTF8 byte span. /// The span to which the interpolated string should be formatted. /// The interpolated string. /// The number of characters written to the span. @@ -349,7 +349,7 @@ public static bool TryWrite(Span destination, [InterpolatedStringHandlerAr return false; } - /// Writes the specified interpolated string to the UTF-8 byte span. + /// Writes the specified interpolated string to the UTF8 byte span. /// The span to which the interpolated string should be formatted. /// An object that supplies culture-specific formatting information. /// The interpolated string. @@ -360,12 +360,12 @@ public static bool TryWrite(Span destination, IFormatProvider? provider, [ // is the same as the non-provider overload. TryWrite(destination, ref handler, out bytesWritten); - /// Provides a handler used by the language compiler to format interpolated strings into UTF-8 byte spans. + /// Provides a handler used by the language compiler to format interpolated strings into UTF8 byte spans. [EditorBrowsable(EditorBrowsableState.Never)] [InterpolatedStringHandler] public ref struct TryWriteInterpolatedStringHandler { - /// The destination UTF-8 buffer. + /// The destination UTF8 buffer. private readonly Span _destination; /// Optional provider to pass to IFormattable.ToString, ISpanFormattable.TryFormat, and IUtf8SpanFormattable.TryFormat calls. private readonly IFormatProvider? _provider; @@ -376,7 +376,7 @@ public ref struct TryWriteInterpolatedStringHandler /// Whether provides an ICustomFormatter. private readonly bool _hasCustomFormatter; - /// Creates a handler used to write an interpolated string into a UTF-8 . + /// Creates a handler used to write an interpolated string into a UTF8 . /// The number of constant characters outside of interpolation expressions in the interpolated string. /// The number of interpolation expressions in the interpolated string. /// The destination buffer. @@ -391,7 +391,7 @@ public TryWriteInterpolatedStringHandler(int literalLength, int formattedCount, _hasCustomFormatter = false; } - /// Creates a handler used to write an interpolated string into a UTF-8 . + /// Creates a handler used to write an interpolated string into a UTF8 . /// The number of constant characters outside of interpolation expressions in the interpolated string. /// The number of interpolation expressions in the interpolated string. /// The destination buffer. @@ -588,7 +588,7 @@ public bool AppendFormatted(scoped ReadOnlySpan value, int alignment = 0, return Fail(); } - /// Writes the specified span of UTF-8 bytes to the handler. + /// Writes the specified span of UTF8 bytes to the handler. /// The span to write. public bool AppendFormatted(scoped ReadOnlySpan utf8Value) { @@ -601,7 +601,7 @@ public bool AppendFormatted(scoped ReadOnlySpan utf8Value) return Fail(); } - /// Writes the specified span of UTF-8 bytes to the handler. + /// Writes the specified span of UTF8 bytes to the handler. /// The span to write. /// Minimum number of characters that should be written for this value. If the value is negative, it indicates left-aligned and the required minimum is the absolute value. /// The format string. diff --git a/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs b/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs index 2d4700576196c..71e2904b8dfbb 100644 --- a/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs +++ b/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs @@ -529,12 +529,6 @@ internal static void ThrowArraySegmentCtorValidationFailedExceptions(Array? arra throw GetArraySegmentCtorValidationFailedException(array, offset, count); } - [DoesNotReturn] - internal static void ThrowInvalidOperationException_InvalidUtf8() - { - throw new InvalidOperationException(SR.InvalidOperation_InvalidUtf8); - } - [DoesNotReturn] internal static void ThrowFormatException_BadFormatSpecifier() { diff --git a/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.cs index 2524b4fd53606..992035b92df60 100644 --- a/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.cs +++ b/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.cs @@ -33,8 +33,8 @@ private static bool IsUtcAlias (string id) case 69: // e case 101: // E return string.Equals(id, "Etc/UTC", StringComparison.OrdinalIgnoreCase) || - string.Equals(id, "Etc/UCT", StringComparison.OrdinalIgnoreCase) || string.Equals(id, "Etc/Universal", StringComparison.OrdinalIgnoreCase) || + string.Equals(id, "Etc/UTC", StringComparison.OrdinalIgnoreCase) || string.Equals(id, "Etc/Zulu", StringComparison.OrdinalIgnoreCase); case 85: // u case 117: // U diff --git a/src/libraries/System.Private.CoreLib/src/System/Version.cs b/src/libraries/System.Private.CoreLib/src/System/Version.cs index 99c26d59a9143..ab0c99cadef5c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Version.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Version.cs @@ -186,14 +186,14 @@ public bool TryFormat(Span destination, int fieldCount, out int charsWritt TryFormatCore(destination, fieldCount, out charsWritten); /// Tries to format this version instance into a span of bytes. - /// The span in which to write this instance's value formatted as a span of UTF-8 bytes. + /// The span in which to write this instance's value formatted as a span of UTF8 bytes. /// When this method returns, contains the number of bytes that were written in . /// if the formatting was successful; otherwise, . public bool TryFormat(Span utf8Destination, out int bytesWritten) => TryFormatCore(utf8Destination, DefaultFormatFieldCount, out bytesWritten); /// Tries to format this version instance into a span of bytes. - /// The span in which to write this instance's value formatted as a span of UTF-8 bytes. + /// The span in which to write this instance's value formatted as a span of UTF8 bytes. /// The number of components to return. This value ranges from 0 to 4. /// When this method returns, contains the number of bytes that were written in . /// if the formatting was successful; otherwise, . diff --git a/src/libraries/System.Private.DataContractSerialization/src/Resources/Strings.resx b/src/libraries/System.Private.DataContractSerialization/src/Resources/Strings.resx index 37da646fbe96b..fc55a5bcb1b49 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/Resources/Strings.resx +++ b/src/libraries/System.Private.DataContractSerialization/src/Resources/Strings.resx @@ -640,13 +640,13 @@ The value '{0}' cannot be represented with the type '{1}'. - An XML declaration with an encoding is required for all non UTF-8 documents. + An XML declaration with an encoding is required for all non-UTF8 documents. Version not found in XML declaration. - An XML declaration is required for all non UTF-8 documents. + An XML declaration is required for all non-UTF8 documents. No characters can appear before the XML declaration. @@ -766,7 +766,7 @@ UniqueId cannot be zero length. - '{0}' contains invalid UTF-8 bytes. + '{0}' contains invalid UTF8 bytes. XML version must be '1.0'. diff --git a/src/libraries/System.Private.Xml.Linq/src/System/Xml/Schema/XNodeValidator.cs b/src/libraries/System.Private.Xml.Linq/src/System/Xml/Schema/XNodeValidator.cs index 374743df63d08..3a18ff7e49845 100644 --- a/src/libraries/System.Private.Xml.Linq/src/System/Xml/Schema/XNodeValidator.cs +++ b/src/libraries/System.Private.Xml.Linq/src/System/Xml/Schema/XNodeValidator.cs @@ -157,7 +157,10 @@ private void ReplaceSchemaInfo(XObject o, XmlSchemaInfo schemaInfo) XmlSchemaInfo? si = o.Annotation(); if (si != null) { - schemaInfos.TryAdd(si, si); + if (!schemaInfos.ContainsKey(si)) + { + schemaInfos.Add(si, si); + } o.RemoveAnnotations(); } if (!schemaInfos.TryGetValue(schemaInfo, out si)) diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParser.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParser.cs index 96cd5df6ac1c9..4b9d94743da4d 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParser.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParser.cs @@ -1229,11 +1229,17 @@ private void ParseEntityDecl() if (isParamEntity) { - _schemaInfo.ParameterEntities.TryAdd(entityName, entity); + if (!_schemaInfo.ParameterEntities.ContainsKey(entityName)) + { + _schemaInfo.ParameterEntities.Add(entityName, entity); + } } else { - _schemaInfo.GeneralEntities.TryAdd(entityName, entity); + if (!_schemaInfo.GeneralEntities.ContainsKey(entityName)) + { + _schemaInfo.GeneralEntities.Add(entityName, entity); + } } entity.DeclaredInExternal = !ParsingInternalSubset; entity.ParsingInProgress = true; diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs index fb13f2f8fce68..8bc28f86cb469 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs @@ -861,11 +861,17 @@ private async Task ParseEntityDeclAsync() if (isParamEntity) { - _schemaInfo.ParameterEntities.TryAdd(entityName, entity); + if (!_schemaInfo.ParameterEntities.ContainsKey(entityName)) + { + _schemaInfo.ParameterEntities.Add(entityName, entity); + } } else { - _schemaInfo.GeneralEntities.TryAdd(entityName, entity); + if (!_schemaInfo.GeneralEntities.ContainsKey(entityName)) + { + _schemaInfo.GeneralEntities.Add(entityName, entity); + } } entity.DeclaredInExternal = !ParsingInternalSubset; entity.ParsingInProgress = true; diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaCollectionCompiler.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaCollectionCompiler.cs index c4cdfe3e3acac..48ff221c96fdd 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaCollectionCompiler.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaCollectionCompiler.cs @@ -305,7 +305,10 @@ private void Output(SchemaInfo schemaInfo) SchemaNotation no = new SchemaNotation(notation.QualifiedName); no.SystemLiteral = notation.System; no.Pubid = notation.Public; - schemaInfo.Notations.TryAdd(no.Name.Name, no); + if (!schemaInfo.Notations.ContainsKey(no.Name.Name)) + { + schemaInfo.Notations.Add(no.Name.Name, no); + } } } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaInfo.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaInfo.cs index df934c1157617..7fc94acbb4355 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaInfo.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaInfo.cs @@ -299,7 +299,10 @@ internal void Add(SchemaInfo sinfo, ValidationEventHandler? eventhandler) foreach (string tns in sinfo.TargetNamespaces.Keys) { - _targetNamespaces.TryAdd(tns, true); + if (!_targetNamespaces.ContainsKey(tns)) + { + _targetNamespaces.Add(tns, true); + } } foreach (KeyValuePair entry in sinfo._elementDecls) @@ -318,11 +321,17 @@ internal void Add(SchemaInfo sinfo, ValidationEventHandler? eventhandler) } foreach (SchemaAttDef attdef in sinfo.AttributeDecls.Values) { - _attributeDecls.TryAdd(attdef.Name, attdef); + if (!_attributeDecls.ContainsKey(attdef.Name)) + { + _attributeDecls.Add(attdef.Name, attdef); + } } foreach (SchemaNotation notation in sinfo.Notations.Values) { - Notations.TryAdd(notation.Name.Name, notation); + if (!Notations.ContainsKey(notation.Name.Name)) + { + Notations.Add(notation.Name.Name, notation); + } } } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaSetCompiler.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaSetCompiler.cs index 6fe5a25c62c9e..9ede49c1e7303 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaSetCompiler.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaSetCompiler.cs @@ -167,7 +167,10 @@ private void Output(SchemaInfo schemaInfo) SchemaNotation no = new SchemaNotation(notation!.QualifiedName); no.SystemLiteral = notation.System; no.Pubid = notation.Public; - schemaInfo.Notations.TryAdd(no.Name.Name, no); + if (!schemaInfo.Notations.ContainsKey(no.Name.Name)) + { + schemaInfo.Notations.Add(no.Name.Name, no); + } } } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/XdrBuilder.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/XdrBuilder.cs index 2c26833736760..e37bbe1715e3f 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/XdrBuilder.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/XdrBuilder.cs @@ -1051,7 +1051,11 @@ private static void XDR_BuildAttributeType_Name(XdrBuilder builder, object obj, // Global AttributeTypes are URN qualified so that we can look them up across schemas. qname = new XmlQualifiedName(qname.Name, builder._TargetNamespace); builder._AttributeDef._AttDef.Name = qname; - if (!builder._SchemaInfo.AttributeDecls.TryAdd(qname, builder._AttributeDef._AttDef)) + if (!builder._SchemaInfo.AttributeDecls.ContainsKey(qname)) + { + builder._SchemaInfo.AttributeDecls.Add(qname, builder._AttributeDef._AttDef); + } + else { builder.SendValidationEvent(SR.Sch_DupAttribute, XmlQualifiedName.ToString(qname.Name, prefix)); } diff --git a/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln b/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln index b774027405c40..7a5969e89e2c8 100644 --- a/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln +++ b/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{772C93D4-FC45-46AA-B09F-26F01B672EDC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E5543842-139D-43BD-B604-E65EBB91649E}" @@ -596,4 +596,4 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {739AA767-154B-4C69-8C9B-C3D332833D92} EndGlobalSection -EndGlobal \ No newline at end of file +EndGlobal diff --git a/src/libraries/System.Reflection.Emit/src/Resources/Strings.resx b/src/libraries/System.Reflection.Emit/src/Resources/Strings.resx index 54123a4d079f2..5ff83e0f7b86d 100644 --- a/src/libraries/System.Reflection.Emit/src/Resources/Strings.resx +++ b/src/libraries/System.Reflection.Emit/src/Resources/Strings.resx @@ -171,16 +171,4 @@ The generic parameters are already defined on this MethodBuilder. - - Should only set visibility flags when creating EnumBuilder. - - - Constant does not match the defined type. - - - Null is not a valid constant value for this type. - - - Underlying type information on enumeration is not specified. - \ No newline at end of file diff --git a/src/libraries/System.Reflection.Emit/src/System.Reflection.Emit.csproj b/src/libraries/System.Reflection.Emit/src/System.Reflection.Emit.csproj index dac4ca741abbc..16e302c4efce1 100644 --- a/src/libraries/System.Reflection.Emit/src/System.Reflection.Emit.csproj +++ b/src/libraries/System.Reflection.Emit/src/System.Reflection.Emit.csproj @@ -7,16 +7,14 @@ - - - + diff --git a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/FieldBuilderImpl.cs b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/FieldBuilderImpl.cs index 39e8881c2ab8c..0e4fe230fb8cd 100644 --- a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/FieldBuilderImpl.cs +++ b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/FieldBuilderImpl.cs @@ -22,7 +22,6 @@ internal sealed class FieldBuilderImpl : FieldBuilder internal MarshallingData? _marshallingData; internal int _offset; internal List? _customAttributes; - internal object? _defaultValue = DBNull.Value; internal FieldBuilderImpl(TypeBuilderImpl typeBuilder, string fieldName, Type type, FieldAttributes attributes) { @@ -33,61 +32,7 @@ internal FieldBuilderImpl(TypeBuilderImpl typeBuilder, string fieldName, Type ty _offset = -1; } - protected override void SetConstantCore(object? defaultValue) - { - if (defaultValue == null) - { - // nullable value types can hold null value. - if (_fieldType.IsValueType && !(_fieldType.IsGenericType && _fieldType.GetGenericTypeDefinition() == typeof(Nullable<>))) - throw new ArgumentException(SR.Argument_ConstantNull); - } - else - { - Type type = defaultValue.GetType(); - Type destType = _fieldType; - - // We should allow setting a constant value on a ByRef parameter - if (destType.IsByRef) - destType = destType.GetElementType()!; - - // Convert nullable types to their underlying type. - destType = Nullable.GetUnderlyingType(destType) ?? destType; - - if (destType.IsEnum) - { - Type underlyingType; - if (destType is EnumBuilderImpl enumBldr) - { - underlyingType = enumBldr.GetEnumUnderlyingType(); - - if (type != enumBldr._typeBuilder.UnderlyingSystemType && type != underlyingType) - throw new ArgumentException(SR.Argument_ConstantDoesntMatch); - } - else if (destType is TypeBuilderImpl typeBldr) - { - underlyingType = typeBldr.UnderlyingSystemType; - - if (underlyingType == null || (type != typeBldr.UnderlyingSystemType && type != underlyingType)) - throw new ArgumentException(SR.Argument_ConstantDoesntMatch); - } - else - { - underlyingType = Enum.GetUnderlyingType(destType); - - if (type != destType && type != underlyingType) - throw new ArgumentException(SR.Argument_ConstantDoesntMatch); - } - } - else - { - if (!destType.IsAssignableFrom(type)) - throw new ArgumentException(SR.Argument_ConstantDoesntMatch); - } - - _defaultValue = defaultValue; - } - } - + protected override void SetConstantCore(object? defaultValue) => throw new NotImplementedException(); protected override void SetCustomAttributeCore(ConstructorInfo con, ReadOnlySpan binaryAttribute) { // Handle pseudo custom attributes diff --git a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/ModuleBuilderImpl.cs b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/ModuleBuilderImpl.cs index c3ca6012544f3..a135ed225785e 100644 --- a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/ModuleBuilderImpl.cs +++ b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/ModuleBuilderImpl.cs @@ -247,11 +247,6 @@ private void WriteFields(TypeBuilderImpl typeBuilder) { AddMarshalling(fieldHandle, field._marshallingData.SerializeMarshallingData()); } - - if (field._defaultValue != DBNull.Value) - { - AddDefaultValue(fieldHandle, field._defaultValue); - } } } @@ -330,8 +325,8 @@ private void AddGenericTypeParametersAndConstraintsCustomAttributes(EntityHandle } } - private void AddDefaultValue(EntityHandle parentHandle, object? defaultValue) => - _metadataBuilder.AddConstant(parent: parentHandle, value: defaultValue); + private void AddDefaultValue(ParameterHandle parameterHandle, object? defaultValue) => + _metadataBuilder.AddConstant(parent: parameterHandle, value: defaultValue); private FieldDefinitionHandle AddFieldDefinition(FieldBuilderImpl field, BlobBuilder fieldSignature) => _metadataBuilder.AddFieldDefinition( @@ -412,11 +407,6 @@ internal EntityHandle GetTypeHandle(Type type) return tb._handle; } - if (type is EnumBuilderImpl eb && Equals(eb.Module)) - { - return eb._typeBuilder._handle; - } - return GetTypeReference(type); } @@ -439,19 +429,11 @@ internal TypeBuilder DefineNestedType(string name, TypeAttributes attr, [Dynamic public override int GetStringMetadataToken(string stringConstant) => throw new NotImplementedException(); public override int GetTypeMetadataToken(Type type) => throw new NotImplementedException(); protected override void CreateGlobalFunctionsCore() => throw new NotImplementedException(); - - protected override EnumBuilder DefineEnumCore(string name, TypeAttributes visibility, Type underlyingType) - { - TypeDefinitionHandle typeHandle = MetadataTokens.TypeDefinitionHandle(++_nextTypeDefRowId); - EnumBuilderImpl enumBuilder = new EnumBuilderImpl(name, underlyingType, visibility, this, typeHandle); - _typeDefinitions.Add(enumBuilder._typeBuilder); - return enumBuilder; - } + protected override EnumBuilder DefineEnumCore(string name, TypeAttributes visibility, Type underlyingType) => throw new NotImplementedException(); protected override MethodBuilder DefineGlobalMethodCore(string name, MethodAttributes attributes, CallingConventions callingConvention, Type? returnType, Type[]? requiredReturnTypeCustomModifiers, Type[]? optionalReturnTypeCustomModifiers, Type[]? parameterTypes, Type[][]? requiredParameterTypeCustomModifiers, Type[][]? optionalParameterTypeCustomModifiers) => throw new NotImplementedException(); protected override FieldBuilder DefineInitializedDataCore(string name, byte[] data, FieldAttributes attributes) => throw new NotImplementedException(); [RequiresUnreferencedCode("P/Invoke marshalling may dynamically access members that could be trimmed.")] protected override MethodBuilder DefinePInvokeMethodCore(string name, string dllName, string entryName, MethodAttributes attributes, CallingConventions callingConvention, Type? returnType, Type[]? parameterTypes, CallingConvention nativeCallConv, CharSet nativeCharSet) => throw new NotImplementedException(); - protected override TypeBuilder DefineTypeCore(string name, TypeAttributes attr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type? parent, Type[]? interfaces, PackingSize packingSize, int typesize) { @@ -460,7 +442,6 @@ protected override TypeBuilder DefineTypeCore(string name, TypeAttributes attr, _typeDefinitions.Add(_type); return _type; } - protected override FieldBuilder DefineUninitializedDataCore(string name, int size, FieldAttributes attributes) => throw new NotImplementedException(); protected override MethodInfo GetArrayMethodCore(Type arrayClass, string methodName, CallingConventions callingConvention, Type? returnType, Type[]? parameterTypes) => throw new NotImplementedException(); protected override void SetCustomAttributeCore(ConstructorInfo con, ReadOnlySpan binaryAttribute) diff --git a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/TypeBuilderImpl.cs b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/TypeBuilderImpl.cs index ba77906508ebb..828f3a0820fb0 100644 --- a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/TypeBuilderImpl.cs +++ b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/TypeBuilderImpl.cs @@ -15,7 +15,6 @@ internal sealed class TypeBuilderImpl : TypeBuilder private readonly ModuleBuilderImpl _module; private readonly string _name; private readonly string? _namespace; - private string? _strFullName; [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] private Type? _typeParent; private readonly TypeBuilderImpl? _declaringType; @@ -23,7 +22,6 @@ internal sealed class TypeBuilderImpl : TypeBuilder private TypeAttributes _attributes; private PackingSize _packingSize; private int _typeSize; - private Type? _enumUnderlyingType; internal readonly TypeDefinitionHandle _handle; internal readonly List _methodDefinitions = new(); @@ -75,24 +73,14 @@ protected override void AddInterfaceImplementationCore([DynamicallyAccessedMembe _interfaces.Add(interfaceType); } - [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2083:DynamicallyAccessedMembers", Justification = "Not sure how to handle")] [return: DynamicallyAccessedMembers((DynamicallyAccessedMemberTypes)(-1))] - protected override TypeInfo CreateTypeInfoCore() => this; + protected override TypeInfo CreateTypeInfoCore() => throw new NotImplementedException(); protected override ConstructorBuilder DefineConstructorCore(MethodAttributes attributes, CallingConventions callingConvention, Type[]? parameterTypes, Type[][]? requiredCustomModifiers, Type[][]? optionalCustomModifiers) => throw new NotImplementedException(); protected override ConstructorBuilder DefineDefaultConstructorCore(MethodAttributes attributes) => throw new NotImplementedException(); protected override EventBuilder DefineEventCore(string name, EventAttributes attributes, Type eventtype) => throw new NotImplementedException(); protected override FieldBuilder DefineFieldCore(string fieldName, Type type, Type[]? requiredCustomModifiers, Type[]? optionalCustomModifiers, FieldAttributes attributes) { - if (_enumUnderlyingType == null && IsEnum) - { - if ((attributes & FieldAttributes.Static) == 0) - { - // remember the underlying type for enum type - _enumUnderlyingType = type; - } - } - var field = new FieldBuilderImpl(this, fieldName, type, attributes); _fieldDefinitions.Add(field); return field; @@ -168,11 +156,6 @@ protected override void SetCustomAttributeCore(ConstructorInfo con, ReadOnlySpan _customAttributes.Add(new CustomAttributeWrapper(con, binaryAttribute)); } - internal void SetCustomAttribute(ConstructorInfo con, ReadOnlySpan binaryAttribute) - { - SetCustomAttributeCore(con, binaryAttribute); - } - private void ParseStructLayoutAttribute(ConstructorInfo con, ReadOnlySpan binaryAttribute) { CustomAttributeInfo attributeInfo = CustomAttributeInfo.DecodeCustomAttribute(con, binaryAttribute); @@ -266,27 +249,11 @@ protected override void SetParentCore([DynamicallyAccessedMembers(DynamicallyAcc public override object[] GetCustomAttributes(Type attributeType, bool inherit) => throw new NotImplementedException(); public override Type GetElementType() => throw new NotSupportedException(); public override string? AssemblyQualifiedName => throw new NotSupportedException(); - public override string? FullName => _strFullName ??= TypeNameBuilder.ToString(this, TypeNameBuilder.Format.FullName); + public override string? FullName => throw new NotSupportedException(); public override string? Namespace => _namespace; public override Assembly Assembly => _module.Assembly; public override Module Module => _module; - public override Type UnderlyingSystemType - { - get - { - if (IsEnum) - { - if (_enumUnderlyingType == null) - throw new InvalidOperationException(SR.InvalidOperation_NoUnderlyingTypeOnEnum); - - return _enumUnderlyingType; - } - else - { - return this; - } - } - } + public override Type UnderlyingSystemType => this; public override Guid GUID => throw new NotSupportedException(); public override Type? BaseType => _typeParent; public override int MetadataToken => MetadataTokens.GetToken(_handle); diff --git a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveCustomAttributeTests.cs b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveCustomAttributeTests.cs index a43222afe34f0..79b9e77bfdf14 100644 --- a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveCustomAttributeTests.cs +++ b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveCustomAttributeTests.cs @@ -21,9 +21,9 @@ public class AssemblySaveCustomAttributeTests }; private static readonly Type s_comVisibleType = typeof(ComVisibleAttribute); - private static readonly Type s_guidType = typeof(GuidAttribute); + private static readonly Type s_guideType = typeof(GuidAttribute); private static readonly (ConstructorInfo con, object[] args) s_comVisiblePair = (s_comVisibleType.GetConstructor(new Type[] { typeof(bool) }), new object[] { true }); - private static readonly (ConstructorInfo con, object[] args) s_guidPair = (s_guidType.GetConstructor(new Type[] { typeof(string) }), new object[] { "9ED54F84-A89D-4fcd-A854-44251E925F09" }); + private static readonly (ConstructorInfo con, object[] args) s_guidPair = (s_guideType.GetConstructor(new Type[] { typeof(string) }), new object[] { "9ED54F84-A89D-4fcd-A854-44251E925F09" }); private static AssemblyName PopulateAssemblyName() { @@ -42,10 +42,10 @@ public void AssemblyModuleWithCustomAttributes() { WriteAssemblyToDisk(assemblyName, Type.EmptyTypes, file.Path, _attributes, _attributes); - Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); Module moduleFromDisk = assemblyFromDisk.Modules.First(); - AssemblySaveTools.AssertAssemblyNameAndModule(assemblyName, assemblyFromDisk.GetName(), moduleFromDisk); + AssemblyTools.AssertAssemblyNameAndModule(assemblyName, assemblyFromDisk.GetName(), moduleFromDisk); ValidateAttributes(assemblyFromDisk.GetCustomAttributesData()); ValidateAttributes(moduleFromDisk.GetCustomAttributesData()); } @@ -61,7 +61,7 @@ public void MethodFieldWithCustomAttributes() WriteAssemblyToDisk(PopulateAssemblyName(), types, file.Path, typeAttributes: _attributes, methodAttributes: _attributes, fieldAttributes: _attributes); - Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); Module moduleFromDisk = assemblyFromDisk.Modules.First(); Type[] typesFromDisk = moduleFromDisk.GetTypes(); @@ -75,9 +75,9 @@ public void MethodFieldWithCustomAttributes() MethodInfo[] methodsFromDisk = typeFromDisk.IsValueType ? typeFromDisk.GetMethods(BindingFlags.DeclaredOnly) : typeFromDisk.GetMethods(); FieldInfo[] fieldsFromDisk = typeFromDisk.GetFields(); - AssemblySaveTools.AssertTypeProperties(sourceType, typeFromDisk); - AssemblySaveTools.AssertMethods(sourceType.IsValueType ? sourceType.GetMethods(BindingFlags.DeclaredOnly) : sourceType.GetMethods(), methodsFromDisk); - AssemblySaveTools.AssertFields(sourceType.GetFields(), fieldsFromDisk); + AssemblyTools.AssertTypeProperties(sourceType, typeFromDisk); + AssemblyTools.AssertMethods(sourceType.IsValueType ? sourceType.GetMethods(BindingFlags.DeclaredOnly) : sourceType.GetMethods(), methodsFromDisk); + AssemblyTools.AssertFields(sourceType.GetFields(), fieldsFromDisk); ValidateAttributes(typeFromDisk.GetCustomAttributesData()); for (int j = 0; j < methodsFromDisk.Length; j++) @@ -109,7 +109,7 @@ private void ValidateAttributes(IList attributesFromDisk) { Assert.Equal(s_guidPair.con.MetadataToken, attribute.Constructor.MetadataToken); Assert.Equal(s_guidPair.args[0].GetType().FullName, attribute.ConstructorArguments[0].ArgumentType.FullName); - Assert.Equal(attribute.AttributeType.Name, s_guidType.Name); + Assert.Equal(attribute.AttributeType.Name, s_guideType.Name); Assert.Equal(s_guidPair.args[0], attribute.ConstructorArguments[0].Value); } } @@ -119,7 +119,7 @@ private static void WriteAssemblyToDisk(AssemblyName assemblyName, Type[] types, List? moduleAttributes = null, List? typeAttributes = null, List? methodAttributes = null, List? fieldAttributes = null) { - AssemblyBuilder assemblyBuilder = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod(assemblyName, assemblyAttributes, typeof(string), out MethodInfo saveMethod); + AssemblyBuilder assemblyBuilder = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod(assemblyName, assemblyAttributes, typeof(string), out MethodInfo saveMethod); ModuleBuilder mb = assemblyBuilder.DefineDynamicModule(assemblyName.Name); PopulateMembersForModule(mb, types, moduleAttributes, typeAttributes, methodAttributes, fieldAttributes); saveMethod.Invoke(assemblyBuilder, new object[] { fileLocation }); @@ -191,14 +191,14 @@ public void CreateStructWithPseudoCustomAttributesTest() new CustomAttributeBuilder(typeof(SpecialNameAttribute).GetConstructor(Type.EmptyTypes), new object[] { }) }; - AssemblyBuilder ab = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod( + AssemblyBuilder ab = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod( PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); TypeBuilder tb = ab.DefineDynamicModule("Module").DefineType(type.FullName, type.Attributes, type.BaseType); DefineFieldsAndSetAttributes(fieldAttributes.ToList(), type.GetFields(), tb); typeAttributes.ForEach(tb.SetCustomAttribute); saveMethod.Invoke(ab, new object[] { file.Path }); - Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); Module moduleFromDisk = assemblyFromDisk.Modules.First(); Type testType = moduleFromDisk.GetTypes()[0]; IList attributesFromDisk = testType.GetCustomAttributesData(); @@ -280,13 +280,13 @@ public void InterfacesWithPseudoCustomAttributes() new CustomAttributeBuilder(marshalAsEnumCtor, new object[] { UnmanagedType.CustomMarshaler }, new FieldInfo[] { typeof(MarshalAsAttribute).GetField("MarshalType")}, new object[] { typeof(EmptyTestClass).AssemblyQualifiedName })}; - AssemblyBuilder ab = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod(PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); + AssemblyBuilder ab = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod(PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); TypeBuilder tb = ab.DefineDynamicModule("Module").DefineType(type.FullName, type.Attributes); typeAttributes.ForEach(tb.SetCustomAttribute); DefineMethodsAndSetAttributes(methodAttributes, tb, type.GetMethods(), parameterAttributes); saveMethod.Invoke(ab, new object[] { file.Path }); - Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); Type testType = assemblyFromDisk.Modules.First().GetTypes()[0]; IList attributesFromDisk = testType.GetCustomAttributesData(); @@ -429,7 +429,7 @@ public void MarshalAsPseudoCustomAttributesTest(CustomAttributeBuilder attribute using (TempFile file = TempFile.Create()) { Type type = typeof(StructWithFields); - AssemblyBuilder ab = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod( + AssemblyBuilder ab = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod( PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); TypeBuilder tb = ab.DefineDynamicModule("Module").DefineType(type.FullName, type.Attributes, type.BaseType); FieldInfo stringField = type.GetFields()[1]; @@ -437,7 +437,7 @@ public void MarshalAsPseudoCustomAttributesTest(CustomAttributeBuilder attribute fb.SetCustomAttribute(attribute); saveMethod.Invoke(ab, new object[] { file.Path }); - Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); FieldInfo field = assemblyFromDisk.Modules.First().GetTypes()[0].GetFields()[0]; CustomAttributeData attributeFromDisk = field.GetCustomAttributesData()[0]; @@ -458,51 +458,5 @@ public void MarshalAsPseudoCustomAttributesTest(CustomAttributeBuilder attribute } } } - - [Fact] - public void EnumBuilderSetCustomAttributesTest() - { - using (TempFile file = TempFile.Create()) - { - AssemblyBuilder ab = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod( - PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); - EnumBuilder enumBuilder = ab.DefineDynamicModule("Module").DefineEnum("TestEnum", TypeAttributes.Public, typeof(int)); - - ConstructorInfo attributeConstructor = typeof(BoolAttribute).GetConstructor(new Type[] { typeof(bool) }); - CustomAttributeBuilder attributeBuilder = new CustomAttributeBuilder(attributeConstructor, new object[] { true }); - enumBuilder.SetCustomAttribute(attributeBuilder); - enumBuilder.SetCustomAttribute(new CustomAttributeBuilder(s_guidPair.con, s_guidPair.args)); - saveMethod.Invoke(ab, new object[] { file.Path }); - - Type testEnum = AssemblySaveTools.LoadAssemblyFromPath(file.Path).Modules.First().GetType("TestEnum"); - - Assert.True(testEnum.IsEnum); - AssemblySaveTools.AssertTypeProperties(enumBuilder, testEnum); - - CustomAttributeData[] attributes = testEnum.GetCustomAttributesData().ToArray(); - if (attributes[0].AttributeType.Name == s_guidType.Name) - { - AssertEnumAttributes(s_guidType.FullName, "9ED54F84-A89D-4fcd-A854-44251E925F09", attributes[0]); - AssertEnumAttributes(typeof(BoolAttribute).FullName, true, attributes[1]); - } - else - { - AssertEnumAttributes(s_guidType.FullName, "9ED54F84-A89D-4fcd-A854-44251E925F09", attributes[1]); - AssertEnumAttributes(typeof(BoolAttribute).FullName, true, attributes[0]); - } - - } - } - private void AssertEnumAttributes(string fullName, object value, CustomAttributeData testAttrbiute) - { - Assert.Equal(fullName, testAttrbiute.AttributeType.FullName); - Assert.Equal(value, testAttrbiute.ConstructorArguments[0].Value); - } - } - - public class BoolAttribute : Attribute - { - private bool _b; - public BoolAttribute(bool myBool) { _b = myBool; } } } diff --git a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveWithVariousMembersTests.cs b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveWithVariousMembersTests.cs new file mode 100644 index 0000000000000..ec9fa93dc1342 --- /dev/null +++ b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveWithVariousMembersTests.cs @@ -0,0 +1,525 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Linq; +using Xunit; + +namespace System.Reflection.Emit.Tests +{ + [ConditionalClass(typeof(PlatformDetection), nameof(PlatformDetection.IsNotBrowser))] + public class AssemblySaveWithVariousMembersTests + { + private static readonly AssemblyName s_assemblyName = new AssemblyName("MyDynamicAssembly") + { + Version = new Version("1.2.3.4"), + CultureInfo = Globalization.CultureInfo.CurrentCulture, + ContentType = AssemblyContentType.WindowsRuntime, + Flags = AssemblyNameFlags.EnableJITcompileTracking | AssemblyNameFlags.Retargetable, + }; + + [Fact] + public void EmptyAssemblyAndModuleTest() + { + using (TempFile file = TempFile.Create()) + { + Assembly assemblyFromDisk = WriteAndLoadAssembly(Type.EmptyTypes, file.Path); + + Assert.Empty(assemblyFromDisk.GetTypes()); + AssemblyTools.AssertAssemblyNameAndModule(s_assemblyName, assemblyFromDisk.GetName(), assemblyFromDisk.Modules.FirstOrDefault()); + } + } + + private static Assembly WriteAndLoadAssembly(Type[] types, string filePath) + { + AssemblyTools.WriteAssemblyToDisk(s_assemblyName, types, filePath); + + return AssemblyTools.LoadAssemblyFromPath(filePath); + } + + public static IEnumerable VariousInterfacesStructsTestData() + { + yield return new object[] { new Type[] { typeof(INoMethod) } }; + yield return new object[] { new Type[] { typeof(IMultipleMethod) } }; + yield return new object[] { new Type[] { typeof(INoMethod), typeof(IOneMethod) } }; + yield return new object[] { new Type[] { typeof(IMultipleMethod), typeof(EmptyTestClass) } }; + yield return new object[] { new Type[] { typeof(IMultipleMethod), typeof(EmptyTestClass), typeof(IAccess), typeof(IOneMethod), typeof(INoMethod) } }; + yield return new object[] { new Type[] { typeof(EmptyStruct) } }; + yield return new object[] { new Type[] { typeof(StructWithFields) } }; + yield return new object[] { new Type[] { typeof(StructWithFields), typeof(EmptyStruct) } }; + yield return new object[] { new Type[] { typeof(IMultipleMethod), typeof(StructWithFields), typeof(ClassWithFields), typeof(EmptyTestClass) } }; + } + + [Theory] + [MemberData(nameof(VariousInterfacesStructsTestData))] + public void WriteAssemblyWithVariousTypesToAFileAndReadBackTest(Type[] types) + { + using (TempFile file = TempFile.Create()) + { + Assembly assemblyFromDisk = WriteAndLoadAssembly(types, file.Path); + + AssertTypesAndTypeMembers(types, assemblyFromDisk.Modules.First().GetTypes()); + } + } + + private static void AssertTypesAndTypeMembers(Type[] types, Type[] typesFromDisk) + { + Assert.Equal(types.Length, typesFromDisk.Length); + + for (int i = 0; i < types.Length; i++) + { + Type sourceType = types[i]; + Type typeFromDisk = typesFromDisk[i]; + + AssemblyTools.AssertTypeProperties(sourceType, typeFromDisk); + AssemblyTools.AssertMethods(sourceType.GetMethods(), typeFromDisk.GetMethods()); + AssemblyTools.AssertFields(sourceType.GetFields(), typeFromDisk.GetFields()); + } + } + + [Theory] + [MemberData(nameof(VariousInterfacesStructsTestData))] + public void WriteAssemblyWithVariousTypesToStreamAndReadBackTest(Type[] types) + { + using (var stream = new MemoryStream()) + { + AssemblyTools.WriteAssemblyToStream(s_assemblyName, types, stream); + Assembly assemblyFromStream = AssemblyTools.LoadAssemblyFromStream(stream); + + AssertTypesAndTypeMembers(types, assemblyFromStream.Modules.First().GetTypes()); + } + } + + [Fact] + public void CreateMembersThatUsesTypeLoadedFromCoreAssemblyTest() + { + using (TempFile file = TempFile.Create()) + { + TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); + tb.DefineMethod("TestMethod", MethodAttributes.Public); + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); + Module moduleFromDisk = assemblyFromDisk.Modules.First(); + + Assert.Equal("MyModule", moduleFromDisk.ScopeName); + Assert.Equal(1, moduleFromDisk.GetTypes().Length); + + Type testType = moduleFromDisk.GetTypes()[0]; + Assert.Equal("TestInterface", testType.Name); + + MethodInfo method = testType.GetMethods()[0]; + Assert.Equal("TestMethod", method.Name); + Assert.Empty(method.GetParameters()); + Assert.Equal("System.Void", method.ReturnType.FullName); + } + } + + private static TypeBuilder CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod) + { + assemblyBuilder = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod(s_assemblyName, null, typeof(string), out saveMethod); + return assemblyBuilder.DefineDynamicModule("MyModule") + .DefineType("TestInterface", TypeAttributes.Interface | TypeAttributes.Abstract); + } + + [Fact] + public void AddInterfaceImplementationTest() + { + using (TempFile file = TempFile.Create()) + { + AssemblyBuilder assemblyBuilder = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod( + s_assemblyName, null, typeof(string), out MethodInfo saveMethod); + ModuleBuilder mb = assemblyBuilder.DefineDynamicModule("My Module"); + TypeBuilder tb = mb.DefineType("TestInterface", TypeAttributes.Interface | TypeAttributes.Abstract, null, new Type[] { typeof(IOneMethod)}); + tb.AddInterfaceImplementation(typeof(INoMethod)); + tb.DefineNestedType("NestedType", TypeAttributes.Interface | TypeAttributes.Abstract); + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); + Type testType = assemblyFromDisk.Modules.First().GetTypes()[0]; + Type[] interfaces = testType.GetInterfaces(); + + Assert.Equal("TestInterface", testType.Name); + Assert.Equal(2, interfaces.Length); + + Type iOneMethod = testType.GetInterface("IOneMethod"); + Type iNoMethod = testType.GetInterface("INoMethod"); + Type[] nt = testType.GetNestedTypes(); + Assert.Equal(1, iOneMethod.GetMethods().Length); + Assert.Empty(iNoMethod.GetMethods()); + Assert.NotNull(testType.GetNestedType("NestedType", BindingFlags.NonPublic)); + } + } + + public static IEnumerable TypeParameters() + { + yield return new object[] { new string[] { "TFirst", "TSecond", "TThird" } }; + yield return new object[] { new string[] { "TFirst" } }; + } + + [Theory] + [MemberData(nameof(TypeParameters))] + public void SaveGenericTypeParametersForAType(string[] typeParamNames) + { + using (TempFile file = TempFile.Create()) + { + TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); + MethodBuilder method = tb.DefineMethod("TestMethod", MethodAttributes.Public); + GenericTypeParameterBuilder[] typeParams = tb.DefineGenericParameters(typeParamNames); + if (typeParams.Length > 2) + { + SetVariousGenericParameterValues(typeParams); + } + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; + MethodInfo testMethod = testType.GetMethod("TestMethod"); + Type[] genericTypeParams = testType.GetGenericArguments(); + + Assert.True(testType.IsGenericType); + Assert.True(testType.IsGenericTypeDefinition); + Assert.True(testType.ContainsGenericParameters); + Assert.False(testMethod.IsGenericMethod); + Assert.False(testMethod.IsGenericMethodDefinition); + Assert.True(testMethod.ContainsGenericParameters); + AssertGenericParameters(typeParams, genericTypeParams); + } + } + + private static void SetVariousGenericParameterValues(GenericTypeParameterBuilder[] typeParams) + { + typeParams[0].SetInterfaceConstraints(new Type[] { typeof(IAccess), typeof(INoMethod) }); + typeParams[1].SetCustomAttribute(new CustomAttributeBuilder(typeof(DynamicallyAccessedMembersAttribute).GetConstructor( + new Type[] { typeof(DynamicallyAccessedMemberTypes) }), new object[] { DynamicallyAccessedMemberTypes.PublicProperties })); + typeParams[2].SetBaseTypeConstraint(typeof(EmptyTestClass)); + typeParams[2].SetGenericParameterAttributes(GenericParameterAttributes.VarianceMask); + } + + private static void AssertGenericParameters(GenericTypeParameterBuilder[] typeParams, Type[] genericTypeParams) + { + Assert.Equal("TFirst", genericTypeParams[0].Name); + if (typeParams.Length > 2) + { + Assert.Equal("TSecond", genericTypeParams[1].Name); + Assert.Equal("TThird", genericTypeParams[2].Name); + Type[] constraints = genericTypeParams[0].GetTypeInfo().GetGenericParameterConstraints(); + Assert.Equal(2, constraints.Length); + Assert.Equal(typeof(IAccess).FullName, constraints[0].FullName); + Assert.Equal(typeof(INoMethod).FullName, constraints[1].FullName); + Assert.Empty(genericTypeParams[1].GetTypeInfo().GetGenericParameterConstraints()); + Type[] constraints2 = genericTypeParams[2].GetTypeInfo().GetGenericParameterConstraints(); + Assert.Equal(1, constraints2.Length); + Assert.Equal(typeof(EmptyTestClass).FullName, constraints2[0].FullName); + Assert.Equal(GenericParameterAttributes.None, genericTypeParams[0].GenericParameterAttributes); + Assert.Equal(GenericParameterAttributes.VarianceMask, genericTypeParams[2].GenericParameterAttributes); + IList attributes = genericTypeParams[1].GetCustomAttributesData(); + Assert.Equal(1, attributes.Count); + Assert.Equal("DynamicallyAccessedMembersAttribute", attributes[0].AttributeType.Name); + Assert.Equal(DynamicallyAccessedMemberTypes.PublicProperties, (DynamicallyAccessedMemberTypes)attributes[0].ConstructorArguments[0].Value); + Assert.Empty(genericTypeParams[0].GetCustomAttributesData()); + } + } + + [Theory] + [MemberData(nameof(TypeParameters))] + public void SaveGenericTypeParametersForAMethod(string[] typeParamNames) + { + using (TempFile file = TempFile.Create()) + { + TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); + MethodBuilder method = tb.DefineMethod("TestMethod", MethodAttributes.Public); + GenericTypeParameterBuilder[] typeParams = method.DefineGenericParameters(typeParamNames); + if (typeParams.Length > 2) + { + SetVariousGenericParameterValues(typeParams); + } + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; + MethodInfo testMethod = testType.GetMethod("TestMethod"); + Type[] genericTypeParams = testMethod.GetGenericArguments(); + + Assert.False(testType.IsGenericType); + Assert.False(testType.IsGenericTypeDefinition); + Assert.False(testType.ContainsGenericParameters); + Assert.True(testMethod.IsGenericMethod); + Assert.True(testMethod.IsGenericMethodDefinition); + Assert.True(testMethod.ContainsGenericParameters); + AssertGenericParameters(typeParams, genericTypeParams); + } + } + + [Theory] + [InlineData(0, "TestInterface[]")] + [InlineData(1, "TestInterface[]")] // not [*] + [InlineData(2, "TestInterface[,]")] + [InlineData(3, "TestInterface[,,]")] + public void SaveArrayTypeSignature(int rank, string name) + { + using (TempFile file = TempFile.Create()) + { + TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); + Type arrayType = rank == 0 ? tb.MakeArrayType() : tb.MakeArrayType(rank); + MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); + mb.SetReturnType(arrayType); + mb.SetParameters(new Type[] { typeof(INoMethod), arrayType, typeof(int[,,,]) }); + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; + MethodInfo testMethod = testType.GetMethod("TestMethod"); + Type intArray = testMethod.GetParameters()[2].ParameterType; + + Assert.False(testMethod.GetParameters()[0].ParameterType.IsSZArray); + Assert.True(intArray.IsArray); + Assert.Equal(4, intArray.GetArrayRank()); + Assert.Equal("Int32[,,,]", intArray.Name); + AssertArrayTypeSignature(rank, name, testMethod.ReturnType); + AssertArrayTypeSignature(rank, name, testMethod.GetParameters()[1].ParameterType); + } + } + + private static void AssertArrayTypeSignature(int rank, string name, Type arrayType) + { + Assert.True(rank < 2 ? arrayType.IsSZArray : arrayType.IsArray); + rank = rank == 0 ? rank + 1 : rank; + Assert.Equal(rank, arrayType.GetArrayRank()); + Assert.Equal(name, arrayType.Name); + } + + [Fact] + public void SaveByRefTypeSignature() + { + using (TempFile file = TempFile.Create()) + { + TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); + Type byrefType = tb.MakeByRefType(); + MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); + mb.SetReturnType(byrefType); + mb.SetParameters(new Type[] { typeof(INoMethod), byrefType }); + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; + MethodInfo testMethod = testType.GetMethod("TestMethod"); + + Assert.False(testMethod.GetParameters()[0].ParameterType.IsByRef); + AssertByRefType(testMethod.GetParameters()[1].ParameterType); + AssertByRefType(testMethod.ReturnType); + } + } + + private static void AssertByRefType(Type byrefParam) + { + Assert.True(byrefParam.IsByRef); + Assert.Equal("TestInterface&", byrefParam.Name); + } + + [Fact] + public void SavePointerTypeSignature() + { + using (TempFile file = TempFile.Create()) + { + TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); + Type pointerType = tb.MakePointerType(); + MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); + mb.SetReturnType(pointerType); + mb.SetParameters(new Type[] { typeof(INoMethod), pointerType }); + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; + MethodInfo testMethod = testType.GetMethod("TestMethod"); + + Assert.False(testMethod.GetParameters()[0].ParameterType.IsPointer); + AssertPointerType(testMethod.GetParameters()[1].ParameterType); + AssertPointerType(testMethod.ReturnType); + } + } + + private void AssertPointerType(Type testType) + { + Assert.True(testType.IsPointer); + Assert.Equal("TestInterface*", testType.Name); + } + + public static IEnumerable SaveGenericType_TestData() + { + yield return new object[] { new string[] { "U", "T" }, new Type[] { typeof(string), typeof(int) }, "TestInterface[System.String,System.Int32]" }; + yield return new object[] { new string[] { "U", "T" }, new Type[] { typeof(MakeGenericTypeClass), typeof(MakeGenericTypeInterface) }, + "TestInterface[System.Reflection.Emit.Tests.MakeGenericTypeClass,System.Reflection.Emit.Tests.MakeGenericTypeInterface]" }; + yield return new object[] { new string[] { "U" }, new Type[] { typeof(List) }, "TestInterface[System.Collections.Generic.List`1[System.String]]" }; + } + + [Theory] + [MemberData(nameof(SaveGenericType_TestData))] + public void SaveGenericTypeSignature(string[] genericParams, Type[] typeArguments, string stringRepresentation) + { + using (TempFile file = TempFile.Create()) + { + TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); + GenericTypeParameterBuilder[] typeGenParam = tb.DefineGenericParameters(genericParams); + Type genericType = tb.MakeGenericType(typeArguments); + MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); + mb.SetReturnType(genericType); + mb.SetParameters(new Type[] { typeof(INoMethod), genericType }); + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; + MethodInfo testMethod = testType.GetMethod("TestMethod"); + Type paramType = testMethod.GetParameters()[1].ParameterType; + + Assert.False(testMethod.GetParameters()[0].ParameterType.IsGenericType); + AssertGenericType(stringRepresentation, paramType); + AssertGenericType(stringRepresentation, testMethod.ReturnType); + } + } + + private static void AssertGenericType(string stringRepresentation, Type paramType) + { + Assert.True(paramType.IsGenericType); + Assert.Equal(stringRepresentation, paramType.ToString()); + Assert.False(paramType.IsGenericParameter); + Assert.False(paramType.IsGenericTypeDefinition); + Assert.False(paramType.IsGenericTypeParameter); + Assert.False(paramType.IsGenericMethodParameter); + } + + [Fact] + public void SaveGenericTypeSignatureWithGenericParameter() + { + using (TempFile file = TempFile.Create()) + { + TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); + GenericTypeParameterBuilder[] typeParams = tb.DefineGenericParameters(new string[] { "U", "T", "P" }); + MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); + GenericTypeParameterBuilder[] methodParams = mb.DefineGenericParameters(new string[] { "M", "N" }); + Type genericType = tb.MakeGenericType(typeParams); + mb.SetReturnType(methodParams[0]); + mb.SetParameters(new Type[] { typeof(INoMethod), genericType, typeParams[1] }); + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; + MethodInfo testMethod = testType.GetMethod("TestMethod"); + Type paramType = testMethod.GetParameters()[1].ParameterType; + Type genericParameter = testMethod.GetParameters()[2].ParameterType; + + Assert.False(testMethod.GetParameters()[0].ParameterType.IsGenericType); + AssertGenericType("TestInterface[U,T,P]", paramType); + Assert.False(genericParameter.IsGenericType); + Assert.True(genericParameter.IsGenericParameter); + Assert.False(genericParameter.IsGenericTypeDefinition); + Assert.True(genericParameter.IsGenericTypeParameter); + Assert.False(genericParameter.IsGenericMethodParameter); + Assert.Equal("T", genericParameter.Name); + Assert.False(testMethod.ReturnType.IsGenericType); + Assert.True(testMethod.ReturnType.IsGenericParameter); + Assert.False(testMethod.ReturnType.IsGenericTypeDefinition); + Assert.False(testMethod.ReturnType.IsGenericTypeParameter); + Assert.True(testMethod.ReturnType.IsGenericMethodParameter); + Assert.Equal("M", testMethod.ReturnType.Name); + } + } + + [Fact] + public void SaveMultipleGenericTypeParametersToEnsureSortingWorks() + { + using (TempFile file = TempFile.Create()) + { + AssemblyBuilder assemblyBuilder = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod( + s_assemblyName, null, typeof(string), out MethodInfo saveMethod); + ModuleBuilder mb = assemblyBuilder.DefineDynamicModule("My Module"); + TypeBuilder tb = mb.DefineType("TestInterface1", TypeAttributes.Interface | TypeAttributes.Abstract); + GenericTypeParameterBuilder[] typeParams = tb.DefineGenericParameters(new string[] { "U", "T" }); + typeParams[1].SetInterfaceConstraints(new Type[] { typeof(INoMethod), typeof(IOneMethod) }); + MethodBuilder m11 = tb.DefineMethod("TwoParameters", MethodAttributes.Public); + MethodBuilder m12 = tb.DefineMethod("FiveTypeParameters", MethodAttributes.Public); + MethodBuilder m13 = tb.DefineMethod("OneParameter", MethodAttributes.Public); + m11.DefineGenericParameters(new string[] { "M", "N" }); + GenericTypeParameterBuilder[] methodParams = m12.DefineGenericParameters(new string[] { "A", "B", "C", "D", "F" }); + methodParams[2].SetInterfaceConstraints(new Type[] { typeof(IMultipleMethod) }); + m13.DefineGenericParameters(new string[] { "T" }); + TypeBuilder tb2 = mb.DefineType("TestInterface2", TypeAttributes.Interface | TypeAttributes.Abstract); + tb2.DefineGenericParameters(new string[] { "TFirst", "TSecond", "TThird" }); + MethodBuilder m21 = tb2.DefineMethod("TestMethod", MethodAttributes.Public); + m21.DefineGenericParameters(new string[] { "X", "Y", "Z" }); + TypeBuilder tb3 = mb.DefineType("TestType"); + GenericTypeParameterBuilder[] typePar = tb3.DefineGenericParameters(new string[] { "TOne" }); + typePar[0].SetBaseTypeConstraint(typeof(EmptyTestClass)); + saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); + + Module m = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First(); + Type[] type1Params = m.GetTypes()[0].GetGenericArguments(); + Type[] type2Params = m.GetTypes()[1].GetGenericArguments(); + Type[] type3Params = m.GetTypes()[2].GetGenericArguments(); + + Assert.Equal("U", type1Params[0].Name); + Assert.Empty(type1Params[0].GetTypeInfo().GetGenericParameterConstraints()); + Assert.Equal("T", type1Params[1].Name); + Assert.Equal(nameof(IOneMethod), type1Params[1].GetTypeInfo().GetGenericParameterConstraints()[1].Name); + Assert.Equal("TFirst", type2Params[0].Name); + Assert.Equal("TSecond", type2Params[1].Name); + Assert.Equal("TThird", type2Params[2].Name); + Assert.Equal("TOne", type3Params[0].Name); + Assert.Equal(nameof(EmptyTestClass), type3Params[0].GetTypeInfo().GetGenericParameterConstraints()[0].Name); + + Type[] method11Params = m.GetTypes()[0].GetMethod("TwoParameters").GetGenericArguments(); + Type[] method12Params = m.GetTypes()[0].GetMethod("FiveTypeParameters").GetGenericArguments(); + Assert.Equal(nameof(IMultipleMethod), method12Params[2].GetTypeInfo().GetGenericParameterConstraints()[0].Name); + Type[] method13Params = m.GetTypes()[0].GetMethod("OneParameter").GetGenericArguments(); + Type[] method21Params = m.GetTypes()[1].GetMethod("TestMethod").GetGenericArguments(); + + Assert.Equal("M", method11Params[0].Name); + Assert.Equal("N", method11Params[1].Name); + Assert.Equal("A", method12Params[0].Name); + Assert.Equal("F", method12Params[4].Name); + Assert.Equal("T", method13Params[0].Name); + Assert.Equal("X", method21Params[0].Name); + Assert.Equal("Z", method21Params[2].Name); + } + } + } + + // Test Types + public interface INoMethod + { + } + + public interface IMultipleMethod + { + string Func(int a, string b); + IOneMethod MoreFunc(); + StructWithFields DoIExist(int a, string b, bool c); + void BuildAPerpetualMotionMachine(); + } + + internal interface IAccess + { + public Version BuildAI(double field); + public int DisableRogueAI(); + } + + public interface IOneMethod + { + object Func(string a, short b); + } + + public struct EmptyStruct + { + } + + public struct StructWithFields + { + public int field1; + public string field2; + } + + public class EmptyTestClass + { + } + + public class ClassWithFields : EmptyTestClass + { + public EmptyTestClass field1; + public byte field2; + } +} diff --git a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblyTools.cs b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblyTools.cs new file mode 100644 index 0000000000000..4ec230e52bc8b --- /dev/null +++ b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblyTools.cs @@ -0,0 +1,212 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using Xunit; + +namespace System.Reflection.Emit.Tests +{ + internal static class AssemblyTools + { + internal static void WriteAssemblyToDisk(AssemblyName assemblyName, Type[] types, string fileLocation) + { + AssemblyBuilder assemblyBuilder = PopulateAssemblyBuilderAndSaveMethod( + assemblyName, null, typeof(string), out MethodInfo saveMethod); + + ModuleBuilder mb = assemblyBuilder.DefineDynamicModule(assemblyName.Name); + PopulateMembersForModule(mb, types); + + saveMethod.Invoke(assemblyBuilder, new object[] { fileLocation }); + } + + private static void PopulateMembersForModule(ModuleBuilder mb, Type[] types) + { + foreach (Type type in types) + { + TypeBuilder tb = mb.DefineType(type.FullName, type.Attributes, type.BaseType); + + MethodInfo[] methods = type.IsInterface ? type.GetMethods() : type.GetMethods(BindingFlags.DeclaredOnly); + foreach (var method in methods) + { + ParameterInfo[] parameters = method.GetParameters(); + MethodBuilder meb = tb.DefineMethod(method.Name, method.Attributes, method.CallingConvention, method.ReturnType, parameters.Select(p => p.ParameterType).ToArray()); + foreach(ParameterInfo param in parameters) + { + meb.DefineParameter(param.Position + 1, param.Attributes, param.Name); + } + } + + foreach (FieldInfo field in type.GetFields()) + { + tb.DefineField(field.Name, field.FieldType, field.Attributes); + } + } + } + + internal static void WriteAssemblyToStream(AssemblyName assemblyName, Type[] types, Stream stream) + { + AssemblyBuilder assemblyBuilder = PopulateAssemblyBuilderAndSaveMethod( + assemblyName, null, typeof(Stream), out MethodInfo saveMethod); + + ModuleBuilder mb = assemblyBuilder.DefineDynamicModule(assemblyName.Name); + PopulateMembersForModule(mb, types); + + saveMethod.Invoke(assemblyBuilder, new object[] { stream }); + } + + internal static AssemblyBuilder PopulateAssemblyBuilderAndSaveMethod(AssemblyName assemblyName, + List? assemblyAttributes, Type parameterType, out MethodInfo saveMethod) + { + Type assemblyType = Type.GetType("System.Reflection.Emit.AssemblyBuilderImpl, System.Reflection.Emit", throwOnError: true)!; + + saveMethod = assemblyType.GetMethod("Save", BindingFlags.NonPublic | BindingFlags.Instance, new Type[] { parameterType }); + + MethodInfo defineDynamicAssemblyMethod = assemblyType.GetMethod("DefinePersistedAssembly", BindingFlags.NonPublic | BindingFlags.Static, + new Type[] { typeof(AssemblyName), typeof(Assembly), typeof(List) }); + + return (AssemblyBuilder)defineDynamicAssemblyMethod.Invoke(null, + new object[] { assemblyName, CoreMetadataAssemblyResolver.s_coreAssembly, assemblyAttributes }); + } + + internal static Assembly LoadAssemblyFromPath(string filePath) => + new MetadataLoadContext(new CoreMetadataAssemblyResolver()).LoadFromAssemblyPath(filePath); + + internal static Assembly LoadAssemblyFromStream(Stream stream) => + new MetadataLoadContext(new CoreMetadataAssemblyResolver()).LoadFromStream(stream); + + internal static void AssertAssemblyNameAndModule(AssemblyName sourceAName, AssemblyName aNameFromDisk, Module moduleFromDisk) + { + // Runtime assemblies adding AssemblyNameFlags.PublicKey in Assembly.GetName() overloads + Assert.Equal(sourceAName.Flags | AssemblyNameFlags.PublicKey, aNameFromDisk.Flags); + Assert.Equal(sourceAName.Name, aNameFromDisk.Name); + Assert.Equal(sourceAName.Version, aNameFromDisk.Version); + Assert.Equal(sourceAName.CultureInfo, aNameFromDisk.CultureInfo); + Assert.Equal(sourceAName.CultureName, aNameFromDisk.CultureName); + Assert.Equal(sourceAName.ContentType, aNameFromDisk.ContentType); + + Assert.NotNull(moduleFromDisk); + Assert.Equal(sourceAName.Name, moduleFromDisk.ScopeName); + Assert.Empty(moduleFromDisk.GetTypes()); + } + + internal static void AssertTypeProperties(Type sourceType, Type typeFromDisk) + { + Assert.Equal(sourceType.Name, typeFromDisk.Name); + Assert.Equal(sourceType.Namespace, typeFromDisk.Namespace); + Assert.Equal(sourceType.Attributes, typeFromDisk.Attributes); + Assert.Equal(sourceType.IsInterface, typeFromDisk.IsInterface); + Assert.Equal(sourceType.IsValueType, typeFromDisk.IsValueType); + } + + internal static void AssertFields(FieldInfo[] declaredFields, FieldInfo[] fieldsFromDisk) + { + Assert.Equal(declaredFields.Length, fieldsFromDisk.Length); + + for (int j = 0; j < declaredFields.Length; j++) + { + FieldInfo sourceField = declaredFields[j]; + FieldInfo fieldFromDisk = fieldsFromDisk[j]; + + Assert.Equal(sourceField.Name, fieldFromDisk.Name); + Assert.Equal(sourceField.Attributes, fieldFromDisk.Attributes); + Assert.Equal(sourceField.FieldType.FullName, fieldFromDisk.FieldType.FullName); + } + } + + internal static void AssertMethods(MethodInfo[] sourceMethods, MethodInfo[] methodsFromDisk) + { + Assert.Equal(sourceMethods.Length, methodsFromDisk.Length); + + for (int j = 0; j < sourceMethods.Length; j++) + { + MethodInfo sourceMethod = sourceMethods[j]; + MethodInfo methodFromDisk = methodsFromDisk[j]; + + Assert.Equal(sourceMethod.Name, methodFromDisk.Name); + Assert.Equal(sourceMethod.Attributes, methodFromDisk.Attributes); + Assert.Equal(sourceMethod.ReturnType.FullName, methodFromDisk.ReturnType.FullName); + AssertParameters(sourceMethod.GetParameters(), methodFromDisk.GetParameters()); + } + } + + private static void AssertParameters(ParameterInfo[] sourceParameters, ParameterInfo[] parametersLoaded) + { + Assert.Equal(sourceParameters.Length, parametersLoaded.Length); + + for (int i = 0; i < sourceParameters.Length; i++) + { + Assert.Equal(sourceParameters[i].Name, parametersLoaded[i].Name); + Assert.Equal(sourceParameters[i].ParameterType.FullName, parametersLoaded[i].ParameterType.FullName); + Assert.Equal(sourceParameters[i].Attributes, parametersLoaded[i].Attributes); + Assert.Equal(sourceParameters[i].Position, parametersLoaded[i].Position); + } + } + } + + // The resolver copied from MLC tests + internal sealed class CoreMetadataAssemblyResolver : MetadataAssemblyResolver + { + public static Assembly s_coreAssembly = typeof(object).Assembly; + public static Assembly s_emitAssembly = typeof(AssemblyTools).Assembly; + public CoreMetadataAssemblyResolver() { } + + public override Assembly Resolve(MetadataLoadContext context, AssemblyName assemblyName) + { + string name = assemblyName.Name; + + if (name.Equals("mscorlib", StringComparison.OrdinalIgnoreCase) || + name.Equals("System.Private.CoreLib", StringComparison.OrdinalIgnoreCase) || + name.Equals("System.Runtime", StringComparison.OrdinalIgnoreCase) || + name.Equals("netstandard", StringComparison.OrdinalIgnoreCase) || + // For interop attributes such as DllImport and Guid: + name.Equals("System.Runtime.InteropServices", StringComparison.OrdinalIgnoreCase)) + { + if (_coreAssembly == null) + { + _coreAssembly = context.LoadFromStream(CreateStreamForCoreAssembly()); + } + + return _coreAssembly; + } + + if (name.Equals("System.Reflection.Emit.Tests", StringComparison.OrdinalIgnoreCase)) + { + if (_emitAssembly == null) + { + _emitAssembly = context.LoadFromStream(CreateStreamForEmitAssembly()); + } + + return _emitAssembly; + } + + return null; + } + + private Assembly _emitAssembly; + private Assembly _coreAssembly; + + private Stream CreateStreamForEmitAssembly() => + File.OpenRead(AssemblyPathHelper.GetAssemblyLocation(s_emitAssembly)); + + private static Stream CreateStreamForCoreAssembly() + { + // We need a core assembly in IL form. Since this version of this code is for Jitted platforms, the System.Private.Corelib + // of the underlying runtime will do just fine. + if (PlatformDetection.IsNotBrowser) + { + string assumedLocationOfCoreLibrary = typeof(object).Assembly.Location; + if (string.IsNullOrEmpty(assumedLocationOfCoreLibrary)) + { + throw new Exception("Could not find a core assembly to use for tests as 'typeof(object).Assembly.Location` returned " + + "a null or empty value. The most likely cause is that you built the tests for a Jitted runtime but are running them " + + "on an AoT runtime."); + } + } + + return File.OpenRead(AssemblyPathHelper.GetAssemblyLocation(s_coreAssembly)); + } + } +} diff --git a/src/libraries/System.Reflection.Emit/tests/System.Reflection.Emit.Tests.csproj b/src/libraries/System.Reflection.Emit/tests/System.Reflection.Emit.Tests.csproj index 1395d38e10de5..f672dc37d9e82 100644 --- a/src/libraries/System.Reflection.Emit/tests/System.Reflection.Emit.Tests.csproj +++ b/src/libraries/System.Reflection.Emit/tests/System.Reflection.Emit.Tests.csproj @@ -63,9 +63,8 @@ - - - + + diff --git a/src/libraries/System.Reflection.Metadata/src/Resources/Strings.resx b/src/libraries/System.Reflection.Metadata/src/Resources/Strings.resx index c035a3efee098..410b7d28ea88d 100644 --- a/src/libraries/System.Reflection.Metadata/src/Resources/Strings.resx +++ b/src/libraries/System.Reflection.Metadata/src/Resources/Strings.resx @@ -226,7 +226,7 @@ Image is either too small or contains an invalid byte offset or count. - The MetadataStringDecoder instance used to instantiate the Metadata reader must have a UTF-8 encoding. + The MetadataStringDecoder instance used to instantiate the Metadata reader must have a UTF8 encoding. Invalid constant value. diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/Utilities/MemoryBlock.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/Utilities/MemoryBlock.cs index cfd8d863480ed..64326d2bce4fa 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/Utilities/MemoryBlock.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/Utilities/MemoryBlock.cs @@ -283,11 +283,11 @@ internal string PeekUtf8(int offset, int byteCount) } /// - /// Read UTF-8 at the given offset up to the given terminator, null terminator, or end-of-block. + /// Read UTF8 at the given offset up to the given terminator, null terminator, or end-of-block. /// - /// Offset in to the block where the UTF-8 bytes start. - /// UTF-8 encoded prefix to prepend to the bytes at the offset before decoding. - /// The UTF-8 decoder to use that allows user to adjust fallback and/or reuse existing strings without allocating a new one. + /// Offset in to the block where the UTF8 bytes start. + /// UTF8 encoded prefix to prepend to the bytes at the offset before decoding. + /// The UTF8 decoder to use that allows user to adjust fallback and/or reuse existing strings without allocating a new one. /// The number of bytes read, which includes the terminator if we did not hit the end of the block. /// A character in the ASCII range that marks the end of the string. /// If a value other than '\0' is passed we still stop at the null terminator if encountered first. @@ -304,7 +304,7 @@ internal string PeekUtf8NullTerminated(int offset, byte[]? prefix, MetadataStrin /// Get number of bytes from offset to given terminator, null terminator, or end-of-block (whichever comes first). /// Returned length does not include the terminator, but numberOfBytesRead out parameter does. /// - /// Offset in to the block where the UTF-8 bytes start. + /// Offset in to the block where the UTF8 bytes start. /// A character in the ASCII range that marks the end of the string. /// If a value other than '\0' is passed we still stop at the null terminator if encountered first. /// The number of bytes read, which includes the terminator if we did not hit the end of the block. diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobBuilder.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobBuilder.cs index 093f60cf7197c..102258b6c61ee 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobBuilder.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobBuilder.cs @@ -951,7 +951,7 @@ public void WriteReference(int reference, bool isSmall) } /// - /// Writes UTF-16 (little-endian) encoded string at the current position. + /// Writes UTF16 (little-endian) encoded string at the current position. /// /// is null. /// Builder is not writable, it has been linked with another one. @@ -971,7 +971,7 @@ public void WriteUTF16(char[] value) } /// - /// Writes UTF-16 (little-endian) encoded string at the current position. + /// Writes UTF16 (little-endian) encoded string at the current position. /// /// is null. /// Builder is not writable, it has been linked with another one. @@ -1014,7 +1014,7 @@ private void WriteUTF16(ReadOnlySpan value) /// Writes string in SerString format (see ECMA-335-II 23.3 Custom attributes). ///
/// - /// The string is UTF-8 encoded and prefixed by the its size in bytes. + /// The string is UTF8 encoded and prefixed by the its size in bytes. /// Null string is represented as a single byte 0xFF. /// /// Builder is not writable, it has been linked with another one. @@ -1033,9 +1033,9 @@ public void WriteSerializedString(string? value) /// Writes string in User String (#US) heap format (see ECMA-335-II 24.2.4 #US and #Blob heaps): ///
/// - /// The string is UTF-16 encoded and prefixed by the its size in bytes. + /// The string is UTF16 encoded and prefixed by the its size in bytes. /// - /// This final byte holds the value 1 if and only if any UTF-16 character within the string has any bit set in its top byte, + /// This final byte holds the value 1 if and only if any UTF16 character within the string has any bit set in its top byte, /// or its low byte is any of the following: 0x01-0x08, 0x0E-0x1F, 0x27, 0x2D, 0x7F. Otherwise, it holds 0. /// The 1 signifies Unicode characters that require handling beyond that normally provided for 8-bit encoding sets. /// @@ -1053,7 +1053,7 @@ public void WriteUserString(string value) } /// - /// Writes UTF-8 encoded string at the current position. + /// Writes UTF8 encoded string at the current position. /// /// Constant value. /// diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobReader.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobReader.cs index 589f8c501d8ee..2ec50504ad745 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobReader.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobReader.cs @@ -387,7 +387,7 @@ public int IndexOf(byte value) } /// - /// Reads UTF-8 encoded string starting at the current position. + /// Reads UTF8 encoded string starting at the current position. /// /// The number of bytes to read. /// The string. @@ -400,7 +400,7 @@ public string ReadUTF8(int byteCount) } /// - /// Reads UTF-16 (little-endian) encoded string starting at the current position. + /// Reads UTF16 (little-endian) encoded string starting at the current position. /// /// The number of bytes to read. /// The string. @@ -578,7 +578,7 @@ public SignatureTypeCode ReadSignatureTypeCode() /// /// Reads a string encoded as a compressed integer containing its length followed by - /// its contents in UTF-8. Null strings are encoded as a single 0xFF byte. + /// its contents in UTF8. Null strings are encoded as a single 0xFF byte. /// /// Defined as a 'SerString' in the ECMA CLI specification. /// String value or null. diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobWriter.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobWriter.cs index 4be040305ad98..a9bd128811155 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobWriter.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobWriter.cs @@ -366,7 +366,7 @@ public void WriteReference(int reference, bool isSmall) } /// - /// Writes UTF-16 (little-endian) encoded string at the current position. + /// Writes UTF16 (little-endian) encoded string at the current position. /// /// is null. public void WriteUTF16(char[] value) @@ -380,7 +380,7 @@ public void WriteUTF16(char[] value) } /// - /// Writes UTF-16 (little-endian) encoded string at the current position. + /// Writes UTF16 (little-endian) encoded string at the current position. /// /// is null. public void WriteUTF16(string value) @@ -412,7 +412,7 @@ private void WriteUTF16(ReadOnlySpan value) /// Writes string in SerString format (see ECMA-335-II 23.3 Custom attributes). /// /// - /// The string is UTF-8 encoded and prefixed by the its size in bytes. + /// The string is UTF8 encoded and prefixed by the its size in bytes. /// Null string is represented as a single byte 0xFF. /// /// Builder is not writable, it has been linked with another one. @@ -431,9 +431,9 @@ public void WriteSerializedString(string? str) /// Writes string in User String (#US) heap format (see ECMA-335-II 24.2.4 #US and #Blob heaps): /// /// - /// The string is UTF-16 encoded and prefixed by the its size in bytes. + /// The string is UTF16 encoded and prefixed by the its size in bytes. /// - /// This final byte holds the value 1 if and only if any UTF-16 character within the string has any bit set in its top byte, + /// This final byte holds the value 1 if and only if any UTF16 character within the string has any bit set in its top byte, /// or its low byte is any of the following: 0x01-0x08, 0x0E-0x1F, 0x27, 0x2D, 0x7F. Otherwise, it holds 0. /// The 1 signifies Unicode characters that require handling beyond that normally provided for 8-bit encoding sets. /// @@ -451,7 +451,7 @@ public void WriteUserString(string value) } /// - /// Writes UTF-8 encoded string at the current position. + /// Writes UTF8 encoded string at the current position. /// /// is null. public void WriteUTF8(string value, bool allowUnpairedSurrogates) diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataBuilder.Heaps.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataBuilder.Heaps.cs index 21e47c8b22c1c..142ea5f67c6f9 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataBuilder.Heaps.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataBuilder.Heaps.cs @@ -245,7 +245,7 @@ public BlobHandle GetOrAddBlob(ImmutableArray value) /// /// Encodes a constant value to a blob and adds it to the Blob heap, if it's not there already. - /// Uses UTF-16 to encode string constants. + /// Uses UTF16 to encode string constants. /// /// Constant value. /// Handle to the added or existing blob. @@ -264,7 +264,7 @@ public unsafe BlobHandle GetOrAddConstantBlob(object? value) } /// - /// Encodes a string using UTF-16 encoding to a blob and adds it to the Blob heap, if it's not there already. + /// Encodes a string using UTF16 encoding to a blob and adds it to the Blob heap, if it's not there already. /// /// String. /// Handle to the added or existing blob. @@ -289,7 +289,7 @@ public BlobHandle GetOrAddBlobUTF16(string value) } /// - /// Encodes a string using UTF-8 encoding to a blob and adds it to the Blob heap, if it's not there already. + /// Encodes a string using UTF8 encoding to a blob and adds it to the Blob heap, if it's not there already. /// /// Constant value. /// diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataRootBuilder.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataRootBuilder.cs index 2945d14acbfb5..bb6338dd853b2 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataRootBuilder.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataRootBuilder.cs @@ -50,7 +50,7 @@ public sealed class MetadataRootBuilder /// It does not enforce all specification requirements on metadata tables. /// /// is null. - /// is too long (the number of bytes when UTF-8 encoded must be less than 255). + /// is too long (the number of bytes when UTF8-encoded must be less than 255). public MetadataRootBuilder(MetadataBuilder tablesAndHeaps, string? metadataVersion = null, bool suppressValidation = false) { if (tablesAndHeaps is null) diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs index 3739ce09cad76..a275a9b5a4924 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs @@ -1018,7 +1018,7 @@ internal void GetLocalConstantRange(LocalScopeHandle scope, out int firstConstan public MetadataStringComparer StringComparer => new MetadataStringComparer(this); /// - /// The decoder used by the reader to produce instances from UTF-8 encoded byte sequences. + /// The decoder used by the reader to produce instances from UTF8 encoded byte sequences. /// public MetadataStringDecoder UTF8Decoder { get; } diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEBinaryReader.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEBinaryReader.cs index 9cf7b5779540d..579e72292c54c 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEBinaryReader.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEBinaryReader.cs @@ -86,10 +86,10 @@ public ulong ReadUInt64() } /// - /// Reads a fixed-length byte block as a null-padded UTF-8 encoded string. + /// Reads a fixed-length byte block as a null-padded UTF8-encoded string. /// The padding is not included in the returned string. /// - /// Note that it is legal for UTF-8 strings to contain NUL; if NUL occurs + /// Note that it is legal for UTF8 strings to contain NUL; if NUL occurs /// between non-NUL codepoints, it is not considered to be padding and /// is included in the result. /// diff --git a/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSExportGenerator.cs b/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSExportGenerator.cs index b0bfeef0037cb..cf647746fb29c 100644 --- a/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSExportGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSExportGenerator.cs @@ -206,7 +206,7 @@ private static IncrementalStubGenerationContext CalculateStubInformation( var containingTypeContext = new ContainingSyntaxContext(originalSyntax); - var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers, SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers.StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); return new IncrementalStubGenerationContext( signatureContext, diff --git a/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.cs b/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.cs index 87d0484d4414b..99bdb634b7f9b 100644 --- a/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.cs @@ -194,7 +194,7 @@ private static IncrementalStubGenerationContext CalculateStubInformation( var containingTypeContext = new ContainingSyntaxContext(originalSyntax); - var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers, SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers.StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); return new IncrementalStubGenerationContext( signatureContext, containingTypeContext, diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceGenerator.cs index e1cc737fc8fb6..7a3f83fb3591c 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceGenerator.cs @@ -169,7 +169,6 @@ public void Initialize(IncrementalGeneratorInitializationContext context) using StringWriter source = new(); source.WriteLine("// "); - source.WriteLine("#pragma warning disable CS0612, CS0618"); // Suppress warnings about [Obsolete] member usage in generated code. interfaceInfo.WriteTo(source); // Two newlines looks cleaner than one source.WriteLine(); @@ -307,7 +306,7 @@ private static IncrementalMethodStubGenerationContext CalculateStubInformation(M var containingSyntaxContext = new ContainingSyntaxContext(syntax); - var methodSyntaxTemplate = new ContainingSyntax(syntax.Modifiers.StripAccessibilityModifiers(), SyntaxKind.MethodDeclaration, syntax.Identifier, syntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(syntax.Modifiers.StripAccessibilityModifiers().StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, syntax.Identifier, syntax.TypeParameterList); ImmutableArray callConv = VirtualMethodPointerStubGenerator.GenerateCallConvSyntaxFromAttributes( suppressGCTransitionAttribute, diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ComInterfaceDispatchMarshallerFactory.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ComInterfaceDispatchMarshallerFactory.cs index 1c4aba60c061c..15a3ce6533cb4 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ComInterfaceDispatchMarshallerFactory.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ComInterfaceDispatchMarshallerFactory.cs @@ -34,14 +34,6 @@ public ManagedTypeInfo AsNativeType(TypePositionInfo info) => IsFunctionPointer: false); public IEnumerable Generate(TypePositionInfo info, StubCodeContext context) { - if (context.CurrentStage == StubCodeContext.Stage.Setup) - { - var (local, param) = context.GetAssignInOutIdentifiers(info); - yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, - IdentifierName(local), - IdentifierName(param))); - yield break; - } if (context.CurrentStage != StubCodeContext.Stage.Unmarshal) { yield break; diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ObjectUnwrapperMarshallerFactory.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ObjectUnwrapperMarshallerFactory.cs index b848ef0b55725..c04a3a7ccfbb1 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ObjectUnwrapperMarshallerFactory.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/Marshallers/ObjectUnwrapperMarshallerFactory.cs @@ -29,19 +29,11 @@ private sealed class Marshaller : IMarshallingGenerator public IEnumerable Generate(TypePositionInfo info, StubCodeContext context) { Debug.Assert(info.MarshallingAttributeInfo is ObjectUnwrapperInfo); - if (context.CurrentStage == StubCodeContext.Stage.Setup) - { - var (local, param) = context.GetAssignInOutIdentifiers(info); - yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, - IdentifierName(local), - IdentifierName(param))); - yield break; - } + TypeSyntax unwrapperType = ((ObjectUnwrapperInfo)info.MarshallingAttributeInfo).UnwrapperType; if (context.CurrentStage != StubCodeContext.Stage.Unmarshal) { yield break; } - TypeSyntax unwrapperType = ((ObjectUnwrapperInfo)info.MarshallingAttributeInfo).UnwrapperType; (string managedIdentifier, string nativeIdentifier) = context.GetIdentifiers(info); diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs index 6d255912aedaa..ad5ab36536f95 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs @@ -65,8 +65,8 @@ public BlockSyntax GenerateStubBody(ExpressionSyntax methodToInvoke) setupStatements.Add(MarshallerHelpers.Declare(PredefinedType(Token(SyntaxKind.BoolKeyword)), InvokeSucceededIdentifier, initializeToDefault: true)); } - setupStatements.AddRange(declarations.Initializations); setupStatements.AddRange(declarations.Variables); + setupStatements.AddRange(declarations.Initializations); setupStatements.AddRange(statements.Setup); List tryStatements = new(); diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VirtualMethodPointerStubGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VirtualMethodPointerStubGenerator.cs index 9f511fec25b5c..fe931a812bf34 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VirtualMethodPointerStubGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VirtualMethodPointerStubGenerator.cs @@ -4,12 +4,12 @@ using System; using System.Collections.Generic; using System.Collections.Immutable; -using System.Diagnostics; using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; +using Microsoft.CodeAnalysis.CSharp; using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; +using Microsoft.CodeAnalysis; +using System.Diagnostics; namespace Microsoft.Interop { @@ -79,7 +79,7 @@ public static (MethodDeclarationSyntax, ImmutableArray) Generate BlockSyntax code = stubGenerator.GenerateStubBody( MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - IdentifierName("__this_managed"), + IdentifierName(ThisParameterIdentifier), IdentifierName(methodStub.StubMethodSyntaxTemplate.Identifier))); (ParameterListSyntax unmanagedParameterList, TypeSyntax returnType, _) = stubGenerator.GenerateAbiMethodSignatureData(); diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VtableIndexStubGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VtableIndexStubGenerator.cs index e5faa6fbadd6f..dea2acac83434 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VtableIndexStubGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VtableIndexStubGenerator.cs @@ -278,7 +278,7 @@ private static IncrementalMethodStubGenerationContext CalculateStubInformation(M var containingSyntaxContext = new ContainingSyntaxContext(syntax); - var methodSyntaxTemplate = new ContainingSyntax(syntax.Modifiers.StripAccessibilityModifiers(), SyntaxKind.MethodDeclaration, syntax.Identifier, syntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(syntax.Modifiers.StripAccessibilityModifiers().StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, syntax.Identifier, syntax.TypeParameterList); ImmutableArray callConv = VirtualMethodPointerStubGenerator.GenerateCallConvSyntaxFromAttributes(suppressGCTransitionAttribute, unmanagedCallConvAttribute, defaultCallingConventions: ImmutableArray.Empty); diff --git a/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/LibraryImportGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/LibraryImportGenerator.cs index fcd915ea25f60..2d61f237b2730 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/LibraryImportGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/LibraryImportGenerator.cs @@ -288,7 +288,7 @@ private static IncrementalStubGenerationContext CalculateStubInformation( var containingTypeContext = new ContainingSyntaxContext(originalSyntax); - var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers, SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers.StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); List additionalAttributes = GenerateSyntaxForForwardedAttributes(suppressGCTransitionAttribute, unmanagedCallConvAttribute, defaultDllImportSearchPathsAttribute); return new IncrementalStubGenerationContext( diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ContainingSyntaxContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ContainingSyntaxContext.cs index 1ac5effeaced9..59028310e6ff3 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ContainingSyntaxContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ContainingSyntaxContext.cs @@ -12,18 +12,8 @@ namespace Microsoft.Interop { - public readonly struct ContainingSyntax(SyntaxTokenList modifiers, SyntaxKind typeKind, SyntaxToken identifier, TypeParameterListSyntax? typeParameters) : IEquatable + public readonly record struct ContainingSyntax(SyntaxTokenList Modifiers, SyntaxKind TypeKind, SyntaxToken Identifier, TypeParameterListSyntax? TypeParameters) { - public SyntaxTokenList Modifiers { get; init; } = modifiers.StripTriviaFromTokens(); - - public SyntaxToken Identifier { get; init; } = identifier.WithoutTrivia(); - - public SyntaxKind TypeKind { get; init; } = typeKind; - - public TypeParameterListSyntax? TypeParameters { get; init; } = typeParameters; - - public override bool Equals(object obj) => obj is ContainingSyntax other && Equals(other); - public bool Equals(ContainingSyntax other) { return Modifiers.SequenceEqual(other.Modifiers, SyntaxEquivalentComparer.Instance) @@ -52,12 +42,8 @@ private static ImmutableArray GetContainingTypes(MemberDeclara ImmutableArray.Builder containingTypeInfoBuilder = ImmutableArray.CreateBuilder(); for (SyntaxNode? parent = memberDeclaration.Parent; parent is TypeDeclarationSyntax typeDeclaration; parent = parent.Parent) { - containingTypeInfoBuilder.Add( - new ContainingSyntax( - typeDeclaration.Modifiers, - typeDeclaration.Kind(), - typeDeclaration.Identifier, - typeDeclaration.TypeParameterList)); + containingTypeInfoBuilder.Add(new ContainingSyntax(typeDeclaration.Modifiers.StripTriviaFromTokens(), typeDeclaration.Kind(), typeDeclaration.Identifier.WithoutTrivia(), + typeDeclaration.TypeParameterList)); } return containingTypeInfoBuilder.ToImmutable(); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs index e8e3de05ffff2..2be5fd85b2130 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs @@ -71,7 +71,13 @@ private static ImmutableArray GenerateStatementsForStubContext( ImmutableArray.Builder statementsToUpdate = ImmutableArray.CreateBuilder(); foreach (BoundGenerator marshaller in marshallers.SignatureMarshallers) { - statementsToUpdate.AddRange(marshaller.Generator.Generate(marshaller.TypeInfo, context)); + var localContext = context; + if (context.CurrentStage is StubCodeContext.Stage.Marshal + && MarshallerHelpers.IsMidlOutBehavior(marshaller.TypeInfo, context)) + { + localContext = new MarshalToLocalContext(context); + } + statementsToUpdate.AddRange(marshaller.Generator.Generate(marshaller.TypeInfo, localContext)); } if (statementsToUpdate.Count > 0) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs index 774cb550765b3..73b8cd8eb901a 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs @@ -278,20 +278,20 @@ private ResolvedGenerator CreateCustomNativeTypeMarshaller(TypePositionInfo info FreeStrategy freeStrategy = GetFreeStrategy(info, context); - //if (freeStrategy == FreeStrategy.FreeOriginal) - //{ - // marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); - //} + if (freeStrategy == FreeStrategy.FreeOriginal) + { + marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); + } if (freeStrategy != FreeStrategy.NoFree && marshallerData.Shape.HasFlag(MarshallerShape.Free)) { marshallingStrategy = new StatelessFreeMarshalling(marshallingStrategy, marshallerData.MarshallerType.Syntax); } - //if (freeStrategy == FreeStrategy.FreeOriginal) - //{ - // marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); - //} + if (freeStrategy == FreeStrategy.FreeOriginal) + { + marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); + } } IMarshallingGenerator marshallingGenerator = new CustomTypeMarshallingGenerator(marshallingStrategy, ByValueMarshalKindSupportDescriptor.Default, marshallerData.Shape.HasFlag(MarshallerShape.StatelessPinnableReference)); @@ -373,17 +373,17 @@ private ResolvedGenerator CreateNativeCollectionMarshaller( IElementsMarshallingCollectionSource collectionSource = new StatefulLinearCollectionSource(); ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource); - //if (freeStrategy == FreeStrategy.FreeOriginal) - //{ - // marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); - //} + if (freeStrategy == FreeStrategy.FreeOriginal) + { + marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); + } marshallingStrategy = new StatefulLinearCollectionMarshalling(marshallingStrategy, marshallerData.Shape, numElementsExpression, elementsMarshalling, freeStrategy != FreeStrategy.NoFree); - //if (freeStrategy == FreeStrategy.FreeOriginal) - //{ - // marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); - //} + if (freeStrategy == FreeStrategy.FreeOriginal) + { + marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); + } if (marshallerData.Shape.HasFlag(MarshallerShape.Free)) { @@ -392,15 +392,19 @@ private ResolvedGenerator CreateNativeCollectionMarshaller( } else { - var spaceAllocator = new StatelessLinearCollectionSpaceAllocator(marshallerTypeSyntax, nativeType, marshallerData.Shape, numElementsExpression); + marshallingStrategy = new StatelessLinearCollectionSpaceAllocator(marshallerTypeSyntax, nativeType, marshallerData.Shape, numElementsExpression); var freeStrategy = GetFreeStrategy(info, context); IElementsMarshallingCollectionSource collectionSource = new StatelessLinearCollectionSource(marshallerTypeSyntax); + if (freeStrategy == FreeStrategy.FreeOriginal) + { + marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); + } ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource); - marshallingStrategy = new StatelessLinearCollectionMarshalling(spaceAllocator, elementsMarshalling, nativeType, marshallerData.Shape, numElementsExpression, freeStrategy != FreeStrategy.NoFree); + marshallingStrategy = new StatelessLinearCollectionMarshalling(marshallingStrategy, elementsMarshalling, nativeType, marshallerData.Shape, numElementsExpression, freeStrategy != FreeStrategy.NoFree); if (marshallerData.Shape.HasFlag(MarshallerShape.CallerAllocatedBuffer)) { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs index 6df5253ee72e9..ef2542dd87bc8 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs @@ -69,12 +69,6 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont switch (context.CurrentStage) { case StubCodeContext.Stage.Setup: - var (local, param) = context.GetAssignInOutIdentifiers(info); - yield return ExpressionStatement( - AssignmentExpression( - SyntaxKind.SimpleAssignmentExpression, - IdentifierName(local), - IdentifierName(param))); break; case StubCodeContext.Stage.Marshal: if (elementMarshalling is MarshalDirection.ManagedToUnmanaged or MarshalDirection.Bidirectional && info.IsByRef) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs index c347e38f1761c..7873781e475df 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs @@ -108,7 +108,8 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont private bool ShouldGenerateByValueOutMarshalling(TypePositionInfo info, StubCodeContext context) { - return info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) + return + info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) && _byValueContentsMarshallingSupport.GetSupport(info.ByValueContentsMarshalKind, info, context, out _) == ByValueMarshalKindSupport.Supported && !info.IsByRef && !_isPinned; diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs index bba0c7bf243a8..c11e670e9a7d8 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs @@ -20,7 +20,7 @@ internal interface IElementsMarshallingCollectionSource internal abstract class ElementsMarshalling { - internal IElementsMarshallingCollectionSource CollectionSource { get; } + protected IElementsMarshallingCollectionSource CollectionSource { get; } protected ElementsMarshalling(IElementsMarshallingCollectionSource collectionSource) { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs index 38bf4c057883c..f9da5d32b3977 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs @@ -7,18 +7,16 @@ namespace Microsoft.Interop { /// - /// Provides methods for generating code for each stage of the marshalling pipeline. - /// The stages are outlined in runtime/docs/design/libraries/LibraryImportGenerator/Pipeline.md + /// The base interface for implementing various aspects of the custom native type and collection marshalling specs. /// - internal interface IMarshallingStagesGenerator + internal interface ICustomTypeMarshallingStrategy { + ManagedTypeInfo AsNativeType(TypePositionInfo info); + IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context); IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context); - /// - /// Conversion of managed data to native data - /// IEnumerable GenerateMarshalStatements(TypePositionInfo info, StubCodeContext context); IEnumerable GenerateNotifyForSuccessfulInvokeStatements(TypePositionInfo info, StubCodeContext context); @@ -27,32 +25,11 @@ internal interface IMarshallingStagesGenerator IEnumerable GeneratePinStatements(TypePositionInfo info, StubCodeContext context); - /// - /// Initialization that happens before marshalling any data - /// IEnumerable GenerateSetupStatements(TypePositionInfo info, StubCodeContext context); - /// - /// Generate statements to capture any out parameters or return values into local variables that can be used in the cleanup stage if marshalling fails - /// IEnumerable GenerateUnmarshalCaptureStatements(TypePositionInfo info, StubCodeContext context); - /// - /// Generate statements to unmarshal the native data to managed representations and store them in a local variable which gets assigned to any out parameters - /// IEnumerable GenerateUnmarshalStatements(TypePositionInfo info, StubCodeContext context); - } - - /// - /// The base interface for implementing various aspects of the custom native type and collection marshalling specs. - /// - internal interface ICustomTypeMarshallingStrategy : IMarshallingStagesGenerator - { - ManagedTypeInfo AsNativeType(TypePositionInfo info); - - IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context); - - IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context); bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context); } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs new file mode 100644 index 0000000000000..cb818ad162734 --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs @@ -0,0 +1,19 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; + +namespace Microsoft.Interop +{ + internal sealed record MarshalToLocalContext(StubCodeContext inner) : StubCodeContext + { + public override bool SingleFrameSpansNativeContext => inner.SingleFrameSpansNativeContext; + + public override bool AdditionalTemporaryStateLivesAcrossStages => inner.AdditionalTemporaryStateLivesAcrossStages; + + public override (TargetFramework framework, Version version) GetTargetFramework() => inner.GetTargetFramework(); + public override (string managed, string native) GetIdentifiers(TypePositionInfo info) + => inner.GetIdentifiers(info); + //=> (inner.GetIdentifiers(info).managed, inner.GetAdditionalIdentifier(info, "out")); + } +} diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs index 1d511e1e6ffb0..6362c021ab5e8 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs @@ -44,26 +44,6 @@ public static ForStatementSyntax GetForLoop(ExpressionSyntax lengthExpression, s IdentifierName(indexerIdentifier)))); } - public static LocalDeclarationStatementSyntax DeclareWithModifiers(TypePositionInfo typeSyntax, string identifier, ExpressionSyntax? initializer = null) - { - VariableDeclaratorSyntax decl = VariableDeclarator(identifier); - if (initializer is not null) - { - decl = decl.WithInitializer( - EqualsValueClause( - initializer)); - } - - // ; - // or - // = ; - return LocalDeclarationStatement( - typeSyntax.IsByRef ? TokenList(Token(SyntaxKind.RefKeyword)) : TokenList(), - VariableDeclaration( - typeSyntax.ManagedType.Syntax, - SingletonSeparatedList(decl))); - } - public static LocalDeclarationStatementSyntax Declare(TypeSyntax typeSyntax, string identifier, bool initializeToDefault) { return Declare(typeSyntax, identifier, initializeToDefault ? LiteralExpression(SyntaxKind.DefaultLiteralExpression) : null); @@ -414,5 +394,17 @@ public static MarshalDirection GetMarshalDirection(TypePositionInfo info, StubCo } throw new UnreachableException("An element is either a return value or passed by value or by ref."); } + + /// + /// Returns whether a parameter has MIDL '[out]' behavior should be unmarshalled into a local variable and only assigned to the parameter at the end of the function call. + /// + public static bool IsMidlOutBehavior(TypePositionInfo info, StubCodeContext context) + => context.Direction is MarshalDirection.UnmanagedToManaged + && (info.IsByRef && info.RefKind is RefKind.Out or RefKind.Ref + || info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) + || info.IsManagedReturnPosition); + + internal static StatementSyntax CreateDiscardStatement(string identifier) + => ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName("_"), IdentifierName(identifier))); } } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs index 3ca815976091f..e4016091f4506 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs @@ -60,7 +60,7 @@ public static ParameterSyntax AsParameter(this IMarshallingGenerator generator, SignatureBehavior behavior = generator.GetNativeSignatureBehavior(info); if (behavior == SignatureBehavior.ManagedTypeAndAttributes) { - return GenerateForwardingParameter(info, info.InstanceIdentifier); + return GenerateForwardingParameter(info, context.GetIdentifiers(info).managed); } string identifierName; if (context.Direction == MarshalDirection.ManagedToUnmanaged) @@ -91,10 +91,6 @@ public static ParameterSyntax AsParameter(this IMarshallingGenerator generator, { throw new ArgumentException("Context direction must be ManagedToUnmanaged or UnmanagedToManaged"); } - if (!info.IsManagedReturnPosition) - { - identifierName = info.InstanceIdentifier; - } return Parameter(Identifier(identifierName)) .WithType(behavior switch { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs index 47a1c5da12e76..03a906f888159 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs @@ -190,30 +190,6 @@ public static string GetMarshallerIdentifier(TypePositionInfo info, StubCodeCont { return context.GetAdditionalIdentifier(info, MarshallerIdentifier); } - - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) - { - var ids = context.GetAssignInOutIdentifiers(info); - var assignment = AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter)); - if (_unmanagedType is PointerTypeInfo pointer) - { - var rewriter = new PointerNativeTypeAssignmentRewriter(assignment.Right.ToString(), (PointerTypeSyntax)pointer.Syntax); - assignment = (AssignmentExpressionSyntax)rewriter.Visit(assignment); - } - yield return ExpressionStatement(assignment); - } - - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) - { - var ids = context.GetAssignInOutIdentifiers(info); - var assignment = AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.parameter), IdentifierName(ids.local)); - if (_unmanagedType is PointerTypeInfo pointer) - { - var rewriter = new PointerNativeTypeAssignmentRewriter(assignment.Right.ToString(), (PointerTypeSyntax)pointer.Syntax); - assignment = (AssignmentExpressionSyntax)rewriter.Visit(assignment); - } - yield return ExpressionStatement(assignment); - } } /// @@ -308,8 +284,6 @@ public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) public IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateGuaranteedUnmarshalStatements(info, context); public IEnumerable GenerateNotifyForSuccessfulInvokeStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(info, context); - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterIn(info, context); - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterOut(info, context); } internal sealed class StatefulLinearCollectionSource : IElementsMarshallingCollectionSource @@ -514,50 +488,6 @@ public IEnumerable GenerateUnmarshalStatements(TypePositionInfo public IEnumerable GenerateUnmarshalCaptureStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateUnmarshalCaptureStatements(info, context); public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true; - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) - { - // If we need to marshal the contents back out, we should make a copy of the elements in a new array - if (!info.IsByRef && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) - { - //TODO: Allocate space to hold the temporary contents - if (context.Direction == MarshalDirection.ManagedToUnmanaged) - { - //TODO: copy the contents - yield break; - } - else if (context.Direction == MarshalDirection.UnmanagedToManaged) - { - //TODO: copy the contents - yield break; - } - throw new UnreachableException(); - } - - // Otherwise, we can just assign the native identifier to be the parameter - var ids = context.GetAssignInOutIdentifiers(info); - yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter))); - } - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) - { - if (!info.IsByRef && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) - { - if (context.Direction == MarshalDirection.ManagedToUnmanaged) - { - //TODO: copy the contents - yield break; - } - else if (context.Direction == MarshalDirection.UnmanagedToManaged) - { - //TODO: copy the contents - yield break; - } - throw new UnreachableException(); - } - - // Otherwise, we can just assign the native identifier to be the parameter - var ids = context.GetAssignInOutIdentifiers(info); - yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter))); - } } /// @@ -574,22 +504,6 @@ public StatefulFreeMarshalling(ICustomTypeMarshallingStrategy innerMarshaller) public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) - => _innerMarshaller.GenerateAssignParameterIn(info, context); - - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) - { - List statements = new List(); - // In unmanaged to managed, we take ownership of the parameter and should clean up - if (context.Direction == MarshalDirection.UnmanagedToManaged) - { - statements.AddRange(GenerateCleanupStatements(info, new NativeIdIsParameterContext(context))); - } - statements.AddRange(_innerMarshaller.GenerateAssignParameterOut(info, context)); - return statements; - } - - public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { foreach (var statement in _innerMarshaller.GenerateCleanupStatements(info, context)) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs index 8246d3a794603..24cfcca03df60 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs @@ -138,29 +138,6 @@ public IEnumerable GenerateNotifyForSuccessfulInvokeStatements( { return Array.Empty(); } - - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) - { - var ids = context.GetAssignInOutIdentifiers(info); - var assignment = AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter)); - if (_unmanagedType is PointerTypeInfo pointer) - { - var rewriter = new PointerNativeTypeAssignmentRewriter(assignment.Right.ToString(), (PointerTypeSyntax)pointer.Syntax); - assignment = (AssignmentExpressionSyntax)rewriter.Visit(assignment); - } - yield return ExpressionStatement(assignment); - } - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) - { - var ids = context.GetAssignInOutIdentifiers(info); - var assignment = AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.parameter), IdentifierName(ids.local)); - if (_unmanagedType is PointerTypeInfo pointer) - { - var rewriter = new PointerNativeTypeAssignmentRewriter(assignment.Right.ToString(), (PointerTypeSyntax)pointer.Syntax); - assignment = (AssignmentExpressionSyntax)rewriter.Visit(assignment); - } - yield return ExpressionStatement(assignment); - } } /// @@ -274,8 +251,6 @@ IEnumerable GenerateCallerAllocatedBufferMarshalStatements() public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.UsesNativeIdentifier(info, context); public IEnumerable GenerateNotifyForSuccessfulInvokeStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(info, context); - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterIn(info, context); - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterOut(info, context); } internal sealed class StatelessFreeMarshalling : ICustomTypeMarshallingStrategy @@ -291,21 +266,6 @@ public StatelessFreeMarshalling(ICustomTypeMarshallingStrategy innerMarshaller, public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) - => _innerMarshaller.GenerateAssignParameterIn(info, context); - - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) - { - List statements = new List(); - // In unmanaged to managed, we take ownership of the parameter and should clean up - if (context.Direction == MarshalDirection.UnmanagedToManaged) - { - statements.AddRange(GenerateCleanupStatements(info, new NativeIdIsParameterContext(context))); - } - statements.AddRange(_innerMarshaller.GenerateAssignParameterOut(info, context)); - return statements; - } - public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { foreach (StatementSyntax statement in _innerMarshaller.GenerateCleanupStatements(info, context)) @@ -333,16 +293,10 @@ public IEnumerable GenerateCleanupStatements(TypePositionInfo i public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.UsesNativeIdentifier(info, context); } - - internal interface ILinearCollectionSpaceAllocator : ICustomTypeMarshallingStrategy - { - - } - /// /// Marshaller type that enables allocating space for marshalling a linear collection using a marshaller that implements the LinearCollection marshalling spec. /// - internal sealed class StatelessLinearCollectionSpaceAllocator : ILinearCollectionSpaceAllocator + internal sealed class StatelessLinearCollectionSpaceAllocator : ICustomTypeMarshallingStrategy { private readonly TypeSyntax _marshallerTypeSyntax; private readonly ManagedTypeInfo _unmanagedType; @@ -357,80 +311,11 @@ public StatelessLinearCollectionSpaceAllocator(TypeSyntax marshallerTypeSyntax, _numElementsExpression = numElementsExpression; } - /// - /// = .AllocateContainerForUnmanagedElements(, out ); - /// - private ExpressionStatementSyntax GetAllocateContainerForUnmanagedElements(string nativeIdentifier, string managedIdentifier, string numElementsIdentifier) - { - // = .AllocateContainerForUnmanagedElements(, out ); - return ExpressionStatement( - AssignmentExpression( - SyntaxKind.SimpleAssignmentExpression, - IdentifierName(nativeIdentifier), - InvocationExpression( - MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - _marshallerTypeSyntax, - IdentifierName(ShapeMemberNames.LinearCollection.Stateless.AllocateContainerForUnmanagedElements)), - ArgumentList(SeparatedList(new ArgumentSyntax[] - { - Argument(IdentifierName(managedIdentifier)), - Argument(IdentifierName(numElementsIdentifier)) - .WithRefOrOutKeyword(Token(SyntaxKind.OutKeyword)) - }))))); - - } - /// - /// = .AllocateContainerForManagedElements(, ); - /// - private ExpressionStatementSyntax GetAllocateContainerForManagedElements(string managedIdentifier, string nativeIdentifier, string numElementsIdentifier) - { - // = .AllocateContainerForManagedElements(, ); - return ExpressionStatement( - AssignmentExpression( - SyntaxKind.SimpleAssignmentExpression, - IdentifierName(managedIdentifier), - InvocationExpression( - MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - _marshallerTypeSyntax, - IdentifierName(ShapeMemberNames.LinearCollection.Stateless.AllocateContainerForManagedElements)), - ArgumentList(SeparatedList(new ArgumentSyntax[] - { - Argument(IdentifierName(nativeIdentifier)), - Argument(IdentifierName(numElementsIdentifier)) - }))))); - } - public ManagedTypeInfo AsNativeType(TypePositionInfo info) { return _unmanagedType; } - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) - { - // For ByValue arrays, we need to allocate a container to copy the array contents - var ids = context.GetIdentifiers(info); - string numElementsIdentifier = MarshallerHelpers.GetNumElementsIdentifier(info, context); - switch (context.Direction) - { - case MarshalDirection.UnmanagedToManaged: - var allocateStatement = GetAllocateContainerForUnmanagedElements(ids.native, ids.managed, numElementsIdentifier); - yield return allocateStatement; - yield break; - case MarshalDirection.ManagedToUnmanaged: - var allocatestatement = GetAllocateContainerForManagedElements(ids.managed, ids.native, numElementsIdentifier); - yield return allocatestatement; - yield break; - default: - throw new NotImplementedException(); - } - } - - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) - { - // We shouldn't need to allocate for assign out, the marshal / unmarshal has already allocated - yield break; - } - public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { if (MarshallerHelpers.GetMarshalDirection(info, context) == MarshalDirection.ManagedToUnmanaged) @@ -644,7 +529,7 @@ public InvocationExpressionSyntax GetManagedValuesDestination(TypePositionInfo i /// internal sealed class StatelessLinearCollectionMarshalling : ICustomTypeMarshallingStrategy { - private readonly ILinearCollectionSpaceAllocator _spaceMarshallingStrategy; + private readonly ICustomTypeMarshallingStrategy _spaceMarshallingStrategy; private readonly ElementsMarshalling _elementsMarshalling; private readonly ManagedTypeInfo _unmanagedType; private readonly MarshallerShape _shape; @@ -652,7 +537,7 @@ internal sealed class StatelessLinearCollectionMarshalling : ICustomTypeMarshall private readonly bool _cleanupElementsAndSpace; public StatelessLinearCollectionMarshalling( - ILinearCollectionSpaceAllocator spaceMarshallingStrategy, + ICustomTypeMarshallingStrategy spaceMarshallingStrategy, ElementsMarshalling elementsMarshalling, ManagedTypeInfo unmanagedType, MarshallerShape shape, @@ -668,50 +553,6 @@ public StatelessLinearCollectionMarshalling( } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _unmanagedType; - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) - { - // If we need to marshal the contents back out, we should make a copy of the elements in a new array. Otherwise they won't be modified. - if (!info.IsByRef && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) - { - _spaceMarshallingStrategy.GenerateAssignParameterIn(info, context); - if (context.Direction == MarshalDirection.ManagedToUnmanaged) - { - //TODO: copy the contents - yield break; - } - else if (context.Direction == MarshalDirection.UnmanagedToManaged) - { - //TODO: copy the contents - yield break; - } - throw new UnreachableException(); - } - - // Otherwise, we can just assign the native identifier to be the parameter - var ids = context.GetAssignInOutIdentifiers(info); - yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter))); - } - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) - { - if (!info.IsByRef && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) - { - if (context.Direction == MarshalDirection.ManagedToUnmanaged) - { - //TODO: copy the contents - yield break; - } - else if (context.Direction == MarshalDirection.UnmanagedToManaged) - { - //TODO: copy the contents - yield break; - } - throw new UnreachableException(); - } - - // Otherwise, we can just assign the native identifier to be the parameter - var ids = context.GetAssignInOutIdentifiers(info); - yield return ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName(ids.local), IdentifierName(ids.parameter))); - } public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { @@ -825,30 +666,4 @@ public IEnumerable GenerateUnmarshalStatements(TypePositionInfo public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true; } - - /// - /// Context that treats the parameter identifier as the "native" identifier. Used to make GenerateCleanupStatements clean the value passed in. - /// - /// - internal sealed record NativeIdIsParameterContext(StubCodeContext inner) : StubCodeContext - { - public override bool SingleFrameSpansNativeContext => inner.SingleFrameSpansNativeContext; - - public override bool AdditionalTemporaryStateLivesAcrossStages => inner.AdditionalTemporaryStateLivesAcrossStages; - - public override (TargetFramework framework, Version version) GetTargetFramework() => inner.GetTargetFramework(); - - public override (string managed, string native) GetIdentifiers(TypePositionInfo info) => (inner.GetIdentifiers(info).managed, inner.GetAssignInOutIdentifiers(info).parameter); - } - - internal sealed record ManagedIdIsParameterContext(StubCodeContext inner) : StubCodeContext - { - public override bool SingleFrameSpansNativeContext => inner.SingleFrameSpansNativeContext; - - public override bool AdditionalTemporaryStateLivesAcrossStages => inner.AdditionalTemporaryStateLivesAcrossStages; - - public override (TargetFramework framework, Version version) GetTargetFramework() => inner.GetTargetFramework(); - - public override (string managed, string native) GetIdentifiers(TypePositionInfo info) => (inner.GetAssignInOutIdentifiers(info).parameter, inner.GetIdentifiers(info).native); - } } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs index 9ba56086b4460..5b9d0866f743c 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; @@ -23,8 +24,7 @@ public UnmanagedToManagedOwnershipTrackingStrategy(ICustomTypeMarshallingStrateg } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterIn(info, context); - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterOut(info, context); + public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateCleanupStatements(info, context); public IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateGuaranteedUnmarshalStatements(info, context); @@ -90,8 +90,6 @@ public CleanupOwnedOriginalValueMarshalling(ICustomTypeMarshallingStrategy inner } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); - public IEnumerable GenerateAssignParameterIn(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterIn(info, context); - public IEnumerable GenerateAssignParameterOut(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateAssignParameterOut(info, context); public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/NativeToManagedStubCodeContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/NativeToManagedStubCodeContext.cs index 32f197c71bda8..7940f6a15fd23 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/NativeToManagedStubCodeContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/NativeToManagedStubCodeContext.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.Diagnostics; +using Microsoft.CodeAnalysis.CSharp.Syntax; namespace Microsoft.Interop { @@ -33,7 +35,7 @@ public NativeToManagedStubCodeContext( } public override (TargetFramework framework, Version version) GetTargetFramework() - => (_framework, _frameworkVersion); + => (_framework, _frameworkVersion); public override (string managed, string native) GetIdentifiers(TypePositionInfo info) { @@ -47,7 +49,7 @@ public override (string managed, string native) GetIdentifiers(TypePositionInfo // the name of the exception variable specified in the catch clause. if (info.IsManagedExceptionPosition) { - return (base.GetIdentifiers(info).managed, _nativeReturnIdentifier); + return (info.InstanceIdentifier, _nativeReturnIdentifier); } return (_returnIdentifier, _nativeReturnIdentifier); } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs index 2825dcb361cf7..35e07f1f7dc47 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.Collections.Generic; namespace Microsoft.Interop { @@ -117,11 +118,6 @@ public enum Stage /// public const string GeneratedNativeIdentifierSuffix = "_native"; - /// - /// Suffix for all generated managed identifiers. - /// - public const string GeneratedManagedIdentifierSuffix = "_managed"; - /// /// Get managed and native instance identifiers for the /// @@ -129,18 +125,7 @@ public enum Stage /// Managed and native identifiers public virtual (string managed, string native) GetIdentifiers(TypePositionInfo info) { - return ($"__{info.InstanceIdentifier.TrimStart('@')}{GeneratedManagedIdentifierSuffix}", - $"__{info.InstanceIdentifier.TrimStart('@')}{GeneratedNativeIdentifierSuffix}"); - } - - public virtual (string local, string parameter) GetAssignInOutIdentifiers(TypePositionInfo info) - { - return Direction switch - { - MarshalDirection.ManagedToUnmanaged => (GetIdentifiers(info).managed, info.InstanceIdentifier), - MarshalDirection.UnmanagedToManaged => (GetIdentifiers(info).native, info.InstanceIdentifier), - _ => throw new NotImplementedException(), - }; + return (info.InstanceIdentifier, $"__{info.InstanceIdentifier.TrimStart('@')}{GeneratedNativeIdentifierSuffix}"); } /// diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs index 8d97c832aca2a..3a5c4527a31c0 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs @@ -22,10 +22,6 @@ public static VariableDeclarations GenerateDeclarationsForManagedToUnmanaged(Bou TypePositionInfo info = marshaller.TypeInfo; if (info.IsManagedReturnPosition) continue; - initializations.Add(MarshallerHelpers.DeclareWithModifiers( - info, - context.GetIdentifiers(info).managed, - LiteralExpression(CodeAnalysis.CSharp.SyntaxKind.DefaultLiteralExpression))); if (info.RefKind == RefKind.Out) { @@ -84,29 +80,54 @@ public static VariableDeclarations GenerateDeclarationsForUnmanagedToManaged(Bou ImmutableArray.Builder initializations = ImmutableArray.CreateBuilder(); ImmutableArray.Builder variables = ImmutableArray.CreateBuilder(); - foreach (var marshaller in marshallers.SignatureMarshallers) - { - TypePositionInfo info = marshaller.TypeInfo; - if (info.IsNativeReturnPosition || info.IsManagedReturnPosition) - continue; - // Initialize _native - TypeSyntax localType = marshaller.Generator.AsNativeType(marshaller.TypeInfo).Syntax; - initializations.Add(MarshallerHelpers.Declare(localType, context.GetIdentifiers(info).native, true)); - } foreach (BoundGenerator marshaller in marshallers.NativeParameterMarshallers) { TypePositionInfo info = marshaller.TypeInfo; - if (info.IsNativeReturnPosition || info.IsManagedReturnPosition) + if (info.IsNativeReturnPosition) + continue; + + if (info.IsManagedReturnPosition) continue; // Declare variables for parameters AppendVariableDeclarations(variables, marshaller, context, initializeToDefault: initializeDeclarations); + + { + // We need to use the 'out' value - This should be removed once the ownership behavior is fixed + var boundaryBehavior = marshaller.Generator.GetValueBoundaryBehavior(info, context); + if (marshaller.Generator.UsesNativeIdentifier(marshaller.TypeInfo, context) + && boundaryBehavior is not + (ValueBoundaryBehavior.NativeIdentifier or ValueBoundaryBehavior.CastNativeIdentifier)) + { + if (MarshallerHelpers.IsMidlOutBehavior(marshaller.TypeInfo, context)) + { + string outlocal = context.GetAdditionalIdentifier(info, "out"); + initializations.Add(MarshallerHelpers.CreateDiscardStatement(outlocal)); + } + } + } } if (!marshallers.IsManagedVoidReturn) { // Declare variables for stub return value AppendVariableDeclarations(variables, marshallers.ManagedReturnMarshaller, context, initializeToDefault: initializeDeclarations); + { + var marshaller = marshallers.ManagedReturnMarshaller; + var info = marshaller.TypeInfo; + // We need to use the 'out' value - This should be removed once the ownership behavior is fixed + var boundaryBehavior = marshaller.Generator.GetValueBoundaryBehavior(info, context); + if (marshaller.Generator.UsesNativeIdentifier(marshaller.TypeInfo, context) + && boundaryBehavior is not + (ValueBoundaryBehavior.NativeIdentifier or ValueBoundaryBehavior.CastNativeIdentifier)) + { + if (MarshallerHelpers.IsMidlOutBehavior(marshaller.TypeInfo, context)) + { + string outlocal = context.GetAdditionalIdentifier(info, "out"); + initializations.Add(MarshallerHelpers.CreateDiscardStatement(outlocal)); + } + } + } } if (!marshallers.IsUnmanagedVoidReturn && !marshallers.ManagedNativeSameReturn) @@ -125,6 +146,7 @@ static void AppendVariableDeclarations(ImmutableArray __param_native_out; statementsToUpdate.Add(MarshallerHelpers.Declare( - localType, - native, - false)); + marshaller.Generator.AsNativeType(info).Syntax, + outlocal, + true)); } - else + //if (boundaryBehavior != ValueBoundaryBehavior.AddressOfNativeIdentifier) + //{ + // __param_native; + //else + //{ + // statementsToUpdate.Add(MarshallerHelpers.Declare( + // localType, + // native, + // false)); + //} + //} + if (boundaryBehavior is ValueBoundaryBehavior.AddressOfNativeIdentifier) { - // To simplify propagating back the value to the "byref" parameter, + // To simplify propogating back the value to the "byref" parameter, // we'll just declare the native identifier as a ref to its type. // The rest of the code we generate will work as expected, and we don't need - // to manually propagate back the updated values after the call. + // to manually propogate back the updated values after the call. statementsToUpdate.Add(MarshallerHelpers.Declare( RefType(localType), native, diff --git a/src/libraries/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs b/src/libraries/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs index 0d80a901d93ad..1744a5f234b81 100644 --- a/src/libraries/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs +++ b/src/libraries/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs @@ -1331,7 +1331,6 @@ public static void Free(void* ptr) { } public static System.Runtime.InteropServices.NFloat CreateChecked(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static System.Runtime.InteropServices.NFloat CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static System.Runtime.InteropServices.NFloat CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } - public static System.Runtime.InteropServices.NFloat DegreesToRadians(System.Runtime.InteropServices.NFloat degrees) { throw null; } public override bool Equals([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] object? obj) { throw null; } public bool Equals(System.Runtime.InteropServices.NFloat other) { throw null; } public static System.Runtime.InteropServices.NFloat Exp(System.Runtime.InteropServices.NFloat x) { throw null; } @@ -1465,7 +1464,6 @@ public static void Free(void* ptr) { } public static System.Runtime.InteropServices.NFloat Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider? provider) { throw null; } public static System.Runtime.InteropServices.NFloat Parse(string s, System.IFormatProvider? provider) { throw null; } public static System.Runtime.InteropServices.NFloat Pow(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) { throw null; } - public static System.Runtime.InteropServices.NFloat RadiansToDegrees(System.Runtime.InteropServices.NFloat radians) { throw null; } public static System.Runtime.InteropServices.NFloat ReciprocalEstimate(System.Runtime.InteropServices.NFloat x) { throw null; } public static System.Runtime.InteropServices.NFloat ReciprocalSqrtEstimate(System.Runtime.InteropServices.NFloat x) { throw null; } public static System.Runtime.InteropServices.NFloat RootN(System.Runtime.InteropServices.NFloat x, int n) { throw null; } diff --git a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs index c4e5f9b7e5b61..b2a3c6ad12218 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs @@ -558,12 +558,20 @@ public static IEnumerable ByValueMarshalAttributeOnValueTypes() // [In] is default for all non-pinned marshalled types yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "int", paramNameWithLocation), new DiagnosticResult[] { + inAttributeIsDefaultDiagnostic, + //https://github.com/dotnet/runtime/issues/88540 inAttributeIsDefaultDiagnostic } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "byte", paramNameWithLocation), new DiagnosticResult[] { + inAttributeIsDefaultDiagnostic, + //https://github.com/dotnet/runtime/issues/88540 inAttributeIsDefaultDiagnostic } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + "[MarshalAs(UnmanagedType.U4)]", "bool", paramNameWithLocation), new DiagnosticResult[] { + inAttributeIsDefaultDiagnostic, + //https://github.com/dotnet/runtime/issues/88540 inAttributeIsDefaultDiagnostic } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + "[MarshalAs(UnmanagedType.U2)]", "char", paramNameWithLocation), new DiagnosticResult[] { + inAttributeIsDefaultDiagnostic, + //https://github.com/dotnet/runtime/issues/88540 inAttributeIsDefaultDiagnostic } }; // [Out] is not allowed on value types passed by value - there is no indirection for the callee to make visible modifications. @@ -571,32 +579,48 @@ public static IEnumerable ByValueMarshalAttributeOnValueTypes() .WithLocation(0) .WithArguments(SR.OutAttributeNotSupportedOnByValueParameters, paramName); yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "int", paramNameWithLocation), new DiagnosticResult[] { + outAttributeNotSupportedOnValueParameters, + //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "IntStruct", paramNameWithLocation) + CodeSnippets.IntStructAndMarshaller, new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters + outAttributeNotSupportedOnValueParameters, + //https://github.com/dotnet/runtime/issues/88540 + outAttributeNotSupportedOnValueParameters, } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute + "[MarshalAs(UnmanagedType.U4)]", "bool", paramNameWithLocation), new DiagnosticResult[] { + outAttributeNotSupportedOnValueParameters, + //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "[MarshalAs(UnmanagedType.U2)] char", paramNameWithLocation), new DiagnosticResult[] { + outAttributeNotSupportedOnValueParameters, + //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; // [In,Out] should only warn for Out attribute yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute+outAttribute, "int", paramNameWithLocation), new DiagnosticResult[] { + outAttributeNotSupportedOnValueParameters, + //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute+outAttribute, "IntStruct", paramNameWithLocation) + CodeSnippets.IntStructAndMarshaller, new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters + outAttributeNotSupportedOnValueParameters, + //https://github.com/dotnet/runtime/issues/88540 + outAttributeNotSupportedOnValueParameters, } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute + "[MarshalAs(UnmanagedType.U4)]", "bool", paramNameWithLocation), new DiagnosticResult[] { + outAttributeNotSupportedOnValueParameters, + //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute, "[MarshalAs(UnmanagedType.U2)] char", paramNameWithLocation), new DiagnosticResult[] { + outAttributeNotSupportedOnValueParameters, + //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; @@ -664,12 +688,12 @@ public static IEnumerable ByValueMarshalAttributeOnReferenceTypes() yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "string", paramNameWithLocation, (StringMarshalling.Utf8, null)), - new DiagnosticResult[] { inAttributeIsDefaultDiagnostic } + new DiagnosticResult[] { inAttributeIsDefaultDiagnostic, inAttributeIsDefaultDiagnostic } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "IntClass", paramNameWithLocation) + CodeSnippets.IntClassAndMarshaller, - new DiagnosticResult[] { inAttributeIsDefaultDiagnostic } + new DiagnosticResult[] { inAttributeIsDefaultDiagnostic, inAttributeIsDefaultDiagnostic } }; var outNotAllowedOnRefTypes = new DiagnosticResult(GeneratorDiagnostics.ParameterTypeNotSupportedWithDetails) @@ -680,21 +704,21 @@ public static IEnumerable ByValueMarshalAttributeOnReferenceTypes() yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "string", paramNameWithLocation, (StringMarshalling.Utf8, null)), - new DiagnosticResult[] { outNotAllowedOnRefTypes } + new DiagnosticResult[] { outNotAllowedOnRefTypes, outNotAllowedOnRefTypes } }; // [Out] warns on by value reference types yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "IntClass", paramNameWithLocation) + CodeSnippets.IntClassAndMarshaller, - new DiagnosticResult[] { outNotAllowedOnRefTypes } + new DiagnosticResult[] { outNotAllowedOnRefTypes, outNotAllowedOnRefTypes } }; // [In,Out] is fine on classes yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute, "IntClass", paramNameWithLocation) + CodeSnippets.IntClassAndMarshaller, - new DiagnosticResult[] { outNotAllowedOnRefTypes } + new DiagnosticResult[] { outNotAllowedOnRefTypes, outNotAllowedOnRefTypes } }; // All refkinds are okay on classes and strings @@ -750,10 +774,11 @@ public static IEnumerable ByValueMarshalAttributeOnPinnedMarshalledTyp .WithLocation(0) .WithArguments(SR.InAttributeOnlyNotSupportedOnPinnedParameters, paramName); yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + constElementCount, "int[]", paramNameWithLocation), new DiagnosticResult[] { + inAttributeNotSupportedOnPinnedParameter, + //https://github.com/dotnet/runtime/issues/88540 inAttributeNotSupportedOnPinnedParameter }}; - // blittable arrays don't support [In] only. Different diagnostics are issued because we can pin in one direction (managed->unmanaged) - // but not the other direction. + // new issue before merge: char generated code doesn't seem to work well with [In, Out] yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + constElementCount, "char[]", paramNameWithLocation, (StringMarshalling.Utf16, null)), @@ -768,13 +793,13 @@ public static IEnumerable ByValueMarshalAttributeOnPinnedMarshalledTyp "bool[]", paramNameWithLocation, (StringMarshalling.Utf16, null)), - new DiagnosticResult[] { inAttributeIsDefaultDiagnostic } + new DiagnosticResult[] { inAttributeIsDefaultDiagnostic, inAttributeIsDefaultDiagnostic} }; // Overriding marshalling with a custom marshaller makes it not pinned yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "[MarshalUsing(typeof(IntMarshaller), ElementIndirectionDepth = 1), MarshalUsing(ConstantElementCount = 10)]int[]", paramNameWithLocation) + CodeSnippets.IntMarshaller, - new DiagnosticResult[] { inAttributeIsDefaultDiagnostic } + new DiagnosticResult[] { inAttributeIsDefaultDiagnostic, inAttributeIsDefaultDiagnostic} }; // [In, Out] is default @@ -786,12 +811,12 @@ public static IEnumerable ByValueMarshalAttributeOnPinnedMarshalledTyp yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute + constElementCount, "int[]", paramNameWithLocation), - new DiagnosticResult[] { inOutAttributeIsDefaultDiagnostic } + new DiagnosticResult[] { inOutAttributeIsDefaultDiagnostic, inOutAttributeIsDefaultDiagnostic} }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute + constElementCount, "char[]", paramNameWithLocation, (StringMarshalling.Utf16, null)), - //https://github.com/dotnet/runtime/issues/88708 + //https://github.com/dotnet/runtime/issues/88540 new DiagnosticResult[] { inOutAttributeIsDefaultDiagnostic } }; @@ -822,7 +847,7 @@ public async Task VerifyByValueMarshallingAttributeUsage(string id, string sourc { TestCode = source, TestBehaviors = TestBehaviors.SkipGeneratedSourcesCheck, - // https://github.com/dotnet/runtime/issues/88708 + // Our fallback mechanism for invalid code for unmanaged->managed stubs sometimes generates invalid code. CompilerDiagnostics = diagnostics.Length != 0 ? CompilerDiagnostics.None : CompilerDiagnostics.Errors, }; test.ExpectedDiagnostics.AddRange(diagnostics); diff --git a/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.GenericMath.cs b/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.GenericMath.cs index 1d73cf969d05c..fa0c13230ac6e 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.GenericMath.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.GenericMath.cs @@ -244,7 +244,7 @@ public static void IsPow2Test() Assert.False(BinaryNumberHelper.IsPow2(NegativeZero)); Assert.False(BinaryNumberHelper.IsPow2(NFloat.NaN)); Assert.False(BinaryNumberHelper.IsPow2(Zero)); - Assert.True(BinaryNumberHelper.IsPow2(NFloat.Epsilon)); + Assert.False(BinaryNumberHelper.IsPow2(NFloat.Epsilon)); Assert.False(BinaryNumberHelper.IsPow2(MaxSubnormal)); Assert.True(BinaryNumberHelper.IsPow2(MinNormal)); Assert.True(BinaryNumberHelper.IsPow2(One)); diff --git a/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.cs b/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.cs index bd14d939f1671..8a68e89a332c6 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.cs @@ -2545,125 +2545,5 @@ public static void LerpTest64(double value1, double value2, double amount, doubl AssertExtensions.Equal(+expectedResult, NFloat.Lerp((NFloat)(+value1), (NFloat)(+value2), (NFloat)(amount)), 0); AssertExtensions.Equal((expectedResult == 0.0) ? expectedResult : -expectedResult, NFloat.Lerp((NFloat)(-value1), (NFloat)(-value2), (NFloat)(amount)), 0); } - - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is32BitProcess))] - [InlineData(float.NaN, float.NaN, 0.0f)] - [InlineData(0.0f, 0.0f, 0.0f)] - [InlineData(0.318309886f, 0.0055555557f, CrossPlatformMachineEpsilon32)] // value: (1 / pi) - [InlineData(0.434294482f, 0.007579869f, CrossPlatformMachineEpsilon32)] // value: (log10(e)) - [InlineData(0.5f, 0.008726646f, CrossPlatformMachineEpsilon32)] - [InlineData(0.636619772f, 0.011111111f, CrossPlatformMachineEpsilon32)] // value: (2 / pi) - [InlineData(0.693147181f, 0.0120977005f, CrossPlatformMachineEpsilon32)] // value: (ln(2)) - [InlineData(0.707106781f, 0.012341342f, CrossPlatformMachineEpsilon32)] // value: (1 / sqrt(2)) - [InlineData(0.785398163f, 0.013707785f, CrossPlatformMachineEpsilon32)] // value: (pi / 4) - [InlineData(1.0f, 0.017453292f, CrossPlatformMachineEpsilon32)] - [InlineData(1.12837917f, 0.019693933f, CrossPlatformMachineEpsilon32)] // value: (2 / sqrt(pi)) - [InlineData(1.41421356f, 0.024682684f, CrossPlatformMachineEpsilon32)] // value: (sqrt(2)) - [InlineData(1.44269504f, 0.025179777f, CrossPlatformMachineEpsilon32)] // value: (log2(e)) - [InlineData(1.5f, 0.02617994f, CrossPlatformMachineEpsilon32)] - [InlineData(1.57079633f, 0.02741557f, CrossPlatformMachineEpsilon32)] // value: (pi / 2) - [InlineData(2.0f, 0.034906585f, CrossPlatformMachineEpsilon32)] - [InlineData(2.30258509f, 0.040187694f, CrossPlatformMachineEpsilon32)] // value: (ln(10)) - [InlineData(2.5f, 0.043633234f, CrossPlatformMachineEpsilon32)] - [InlineData(2.71828183f, 0.047442965f, CrossPlatformMachineEpsilon32)] // value: (e) - [InlineData(3.0f, 0.05235988f, CrossPlatformMachineEpsilon32)] - [InlineData(3.14159265f, 0.05483114f, CrossPlatformMachineEpsilon32)] // value: (pi) - [InlineData(3.5f, 0.061086528f, CrossPlatformMachineEpsilon32)] - [InlineData(float.PositiveInfinity, float.PositiveInfinity, 0.0f)] - public static void DegreesToRadiansTest32(float value, float expectedResult, float allowedVariance) - { - AssertExtensions.Equal(-expectedResult, (float)NFloat.DegreesToRadians(-value), allowedVariance); - AssertExtensions.Equal(+expectedResult, (float)NFloat.DegreesToRadians(+value), allowedVariance); - } - - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is64BitProcess))] - [InlineData(double.NaN, double.NaN, 0.0)] - [InlineData(0.0, 0.0, 0.0)] - [InlineData(0.31830988618379067, 0.005555555555555556, CrossPlatformMachineEpsilon64)] // value: (1 / pi) - [InlineData(0.43429448190325183, 0.007579868632454674, CrossPlatformMachineEpsilon64)] // value: (log10(e)) - [InlineData(0.5, 0.008726646259971648, CrossPlatformMachineEpsilon64)] - [InlineData(0.63661977236758134, 0.011111111111111112, CrossPlatformMachineEpsilon64)] // value: (2 / pi) - [InlineData(0.69314718055994531, 0.01209770050168668, CrossPlatformMachineEpsilon64)] // value: (ln(2)) - [InlineData(0.70710678118654752, 0.012341341494884351, CrossPlatformMachineEpsilon64)] // value: (1 / sqrt(2)) - [InlineData(0.78539816339744831, 0.013707783890401885, CrossPlatformMachineEpsilon64)] // value: (pi / 4) - [InlineData(1.0, 0.017453292519943295, CrossPlatformMachineEpsilon64)] - [InlineData(1.1283791670955126, 0.019693931676727953, CrossPlatformMachineEpsilon64)] // value: (2 / sqrt(pi)) - [InlineData(1.4142135623730950, 0.024682682989768702, CrossPlatformMachineEpsilon64)] // value: (sqrt(2)) - [InlineData(1.4426950408889634, 0.02517977856570663, CrossPlatformMachineEpsilon64)] // value: (log2(e)) - [InlineData(1.5, 0.02617993877991494, CrossPlatformMachineEpsilon64)] - [InlineData(1.5707963267948966, 0.02741556778080377, CrossPlatformMachineEpsilon64)] // value: (pi / 2) - [InlineData(2.0, 0.03490658503988659, CrossPlatformMachineEpsilon64)] - [InlineData(2.3025850929940457, 0.040187691180085916, CrossPlatformMachineEpsilon64)] // value: (ln(10)) - [InlineData(2.5, 0.04363323129985824, CrossPlatformMachineEpsilon64)] - [InlineData(2.7182818284590452, 0.047442967903742035, CrossPlatformMachineEpsilon64)] // value: (e) - [InlineData(3.0, 0.05235987755982988, CrossPlatformMachineEpsilon64)] - [InlineData(3.1415926535897932, 0.05483113556160754, CrossPlatformMachineEpsilon64)] // value: (pi) - [InlineData(3.5, 0.061086523819801536, CrossPlatformMachineEpsilon64)] - [InlineData(double.PositiveInfinity, double.PositiveInfinity, 0.0)] - public static void DegreesToRadiansTest64(double value, double expectedResult, double allowedVariance) - { - AssertExtensions.Equal(-expectedResult, NFloat.DegreesToRadians((NFloat)(-value)), allowedVariance); - AssertExtensions.Equal(+expectedResult, NFloat.DegreesToRadians((NFloat)(+value)), allowedVariance); - } - - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is32BitProcess))] - [InlineData(float.NaN, float.NaN, 0.0)] - [InlineData(0.0f, 0.0f, 0.0)] - [InlineData(0.0055555557f, 0.318309886f, CrossPlatformMachineEpsilon32)] // expected: (1 / pi) - [InlineData(0.007579869f, 0.434294482f, CrossPlatformMachineEpsilon32)] // expected: (log10(e)) - [InlineData(0.008726646f, 0.5f, CrossPlatformMachineEpsilon32)] - [InlineData(0.011111111f, 0.636619772f, CrossPlatformMachineEpsilon32)] // expected: (2 / pi) - [InlineData(0.0120977005f, 0.693147181f, CrossPlatformMachineEpsilon32)] // expected: (ln(2)) - [InlineData(0.012341342f, 0.707106781f, CrossPlatformMachineEpsilon32)] // expected: (1 / sqrt(2)) - [InlineData(0.013707785f, 0.785398163f, CrossPlatformMachineEpsilon32)] // expected: (pi / 4) - [InlineData(0.017453292f, 1.0f, CrossPlatformMachineEpsilon32)] - [InlineData(0.019693933f, 1.12837917f, CrossPlatformMachineEpsilon32)] // expected: (2 / sqrt(pi)) - [InlineData(0.024682684f, 1.41421356f, CrossPlatformMachineEpsilon32)] // expected: (sqrt(2)) - [InlineData(0.025179777f, 1.44269504f, CrossPlatformMachineEpsilon32)] // expected: (log2(e)) - [InlineData(0.02617994f, 1.5f, CrossPlatformMachineEpsilon32)] - [InlineData(0.02741557f, 1.57079633f, CrossPlatformMachineEpsilon32)] // expected: (pi / 2) - [InlineData(0.034906585f, 2.0f, CrossPlatformMachineEpsilon32)] - [InlineData(0.040187694f, 2.30258509f, CrossPlatformMachineEpsilon32)] // expected: (ln(10)) - [InlineData(0.043633234f, 2.5f, CrossPlatformMachineEpsilon32)] - [InlineData(0.047442965f, 2.71828183f, CrossPlatformMachineEpsilon32)] // expected: (e) - [InlineData(0.05235988f, 3.0f, CrossPlatformMachineEpsilon32)] - [InlineData(0.05483114f, 3.14159265f, CrossPlatformMachineEpsilon32)] // expected: (pi) - [InlineData(0.061086528f, 3.5f, CrossPlatformMachineEpsilon32)] - [InlineData(float.PositiveInfinity, float.PositiveInfinity, 0.0)] - public static void RadiansToDegreesTest32(float value, float expectedResult, float allowedVariance) - { - AssertExtensions.Equal(-expectedResult, (float)NFloat.RadiansToDegrees(-value), allowedVariance); - AssertExtensions.Equal(+expectedResult, (float)NFloat.RadiansToDegrees(+value), allowedVariance); - } - - [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is64BitProcess))] - [InlineData(double.NaN, double.NaN, 0.0)] - [InlineData(0.0, 0.0, 0.0)] - [InlineData(0.0055555555555555567, 0.3183098861837906, CrossPlatformMachineEpsilon64)] // expected: (1 / pi) - [InlineData(0.0075798686324546743, 0.4342944819032518, CrossPlatformMachineEpsilon64)] // expected: (log10(e)) - [InlineData(0.008726646259971648, 0.5, CrossPlatformMachineEpsilon64)] - [InlineData(0.0111111111111111124, 0.6366197723675813, CrossPlatformMachineEpsilon64)] // expected: (2 / pi) - [InlineData(0.0120977005016866801, 0.6931471805599453, CrossPlatformMachineEpsilon64)] // expected: (ln(2)) - [InlineData(0.0123413414948843512, 0.7071067811865475, CrossPlatformMachineEpsilon64)] // expected: (1 / sqrt(2)) - [InlineData(0.0137077838904018851, 0.7853981633974483, CrossPlatformMachineEpsilon64)] // expected: (pi / 4) - [InlineData(0.017453292519943295, 1.0, CrossPlatformMachineEpsilon64)] - [InlineData(0.019693931676727953, 1.1283791670955126, CrossPlatformMachineEpsilon64)] // expected: (2 / sqrt(pi)) - [InlineData(0.024682682989768702, 1.4142135623730950, CrossPlatformMachineEpsilon64)] // expected: (sqrt(2)) - [InlineData(0.025179778565706630, 1.4426950408889634, CrossPlatformMachineEpsilon64)] // expected: (log2(e)) - [InlineData(0.026179938779914940, 1.5, CrossPlatformMachineEpsilon64)] - [InlineData(0.027415567780803770, 1.5707963267948966, CrossPlatformMachineEpsilon64)] // expected: (pi / 2) - [InlineData(0.034906585039886590, 2.0, CrossPlatformMachineEpsilon64)] - [InlineData(0.040187691180085916, 2.3025850929940457, CrossPlatformMachineEpsilon64)] // expected: (ln(10)) - [InlineData(0.043633231299858240, 2.5, CrossPlatformMachineEpsilon64)] - [InlineData(0.047442967903742035, 2.7182818284590452, CrossPlatformMachineEpsilon64)] // expected: (e) - [InlineData(0.052359877559829880, 3.0, CrossPlatformMachineEpsilon64)] - [InlineData(0.054831135561607540, 3.1415926535897932, CrossPlatformMachineEpsilon64)] // expected: (pi) - [InlineData(0.061086523819801536, 3.5, CrossPlatformMachineEpsilon64)] - [InlineData(double.PositiveInfinity, double.PositiveInfinity, 0.0)] - public static void RadiansToDegreesTest64(double value, double expectedResult, double allowedVariance) - { - AssertExtensions.Equal(-expectedResult, NFloat.RadiansToDegrees((NFloat)(-value)), allowedVariance); - AssertExtensions.Equal(+expectedResult, NFloat.RadiansToDegrees((NFloat)(+value)), allowedVariance); - } } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj index 7c5b7e09bf100..2a7d9b149f94a 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/NativeExports.csproj @@ -18,6 +18,13 @@ '$(TargetOS)' == 'tvossimulator'">true + + + + + + diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/NonBlittable.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/NonBlittable.cs index b7fa6a1e74e31..88e594d9f6a2d 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/NonBlittable.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/NonBlittable.cs @@ -4,9 +4,12 @@ using System; using System.Buffers.Binary; using System.Collections.Generic; +using System.Diagnostics; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.InteropServices.Marshalling; +using System.Text; +using static SharedTypes.IntWrapperWithNotificationMarshaller; namespace SharedTypes { @@ -340,7 +343,7 @@ public struct Marshaller { private IntWrapperWithNotification _managed; - public void FromManaged(IntWrapperWithNotification managed) => _managed = managed; + public void FromManaged(IntWrapperWithNotification managed) =>_managed = managed; public int ToUnmanaged() => _managed.Value; diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/SharedTypes.csproj b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/SharedTypes.csproj index c68eadac7ca4b..b25475075c729 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/SharedTypes.csproj +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/SharedTypes.csproj @@ -1,6 +1,6 @@ - + $(NetCoreAppCurrent) true @@ -9,6 +9,13 @@ + + + + + + diff --git a/src/libraries/System.Runtime/ref/System.Runtime.cs b/src/libraries/System.Runtime/ref/System.Runtime.cs index e52c132ef9198..08e6907f7e80e 100644 --- a/src/libraries/System.Runtime/ref/System.Runtime.cs +++ b/src/libraries/System.Runtime/ref/System.Runtime.cs @@ -2247,7 +2247,6 @@ public DivideByZeroException(string? message, System.Exception? innerException) public static double CreateChecked(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static double CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static double CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } - public static double DegreesToRadians(double degrees) { throw null; } public bool Equals(double obj) { throw null; } public override bool Equals([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] object? obj) { throw null; } public static double Exp(double x) { throw null; } @@ -2308,7 +2307,6 @@ public DivideByZeroException(string? message, System.Exception? innerException) public static double Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider? provider) { throw null; } public static double Parse(string s, System.IFormatProvider? provider) { throw null; } public static double Pow(double x, double y) { throw null; } - public static double RadiansToDegrees(double radians) { throw null; } public static double ReciprocalEstimate(double x) { throw null; } public static double ReciprocalSqrtEstimate(double x) { throw null; } public static double RootN(double x, int n) { throw null; } @@ -2873,7 +2871,6 @@ public enum GCNotificationStatus public static System.Half CreateChecked(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static System.Half CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static System.Half CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } - public static System.Half DegreesToRadians(System.Half degrees) { throw null; } public bool Equals(System.Half other) { throw null; } public override bool Equals([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] object? obj) { throw null; } public static System.Half Exp(System.Half x) { throw null; } @@ -3002,7 +2999,6 @@ public enum GCNotificationStatus public static System.Half Parse(string s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.AllowDecimalPoint | System.Globalization.NumberStyles.AllowExponent | System.Globalization.NumberStyles.AllowLeadingSign | System.Globalization.NumberStyles.AllowLeadingWhite | System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.AllowTrailingWhite, System.IFormatProvider? provider = null) { throw null; } public static System.Half Parse(string s, System.IFormatProvider? provider) { throw null; } public static System.Half Pow(System.Half x, System.Half y) { throw null; } - public static System.Half RadiansToDegrees(System.Half radians) { throw null; } public static System.Half ReciprocalEstimate(System.Half x) { throw null; } public static System.Half ReciprocalSqrtEstimate(System.Half x) { throw null; } public static System.Half RootN(System.Half x, int n) { throw null; } @@ -4989,7 +4985,6 @@ public SerializableAttribute() { } public static float CreateChecked(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static float CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static float CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } - public static float DegreesToRadians(float degrees) { throw null; } public override bool Equals([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] object? obj) { throw null; } public bool Equals(float obj) { throw null; } public static float Exp(float x) { throw null; } @@ -5050,7 +5045,6 @@ public SerializableAttribute() { } public static float Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider? provider) { throw null; } public static float Parse(string s, System.IFormatProvider? provider) { throw null; } public static float Pow(float x, float y) { throw null; } - public static float RadiansToDegrees(float radians) { throw null; } public static float ReciprocalEstimate(float x) { throw null; } public static float ReciprocalSqrtEstimate(float x) { throw null; } public static float RootN(float x, int n) { throw null; } @@ -10799,7 +10793,7 @@ public partial interface IMultiplyOperators where TSelf static virtual TResult operator checked *(TSelf left, TOther right) { throw null; } static abstract TResult operator *(TSelf left, TOther right); } - public partial interface INumberBase : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.IUtf8SpanFormattable, System.IUtf8SpanParsable where TSelf : System.Numerics.INumberBase? + public partial interface INumberBase : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.IUtf8SpanParsable where TSelf : System.Numerics.INumberBase? { static abstract TSelf One { get; } static abstract int Radix { get; } @@ -10841,7 +10835,6 @@ static virtual TSelf CreateTruncating(TOther value) static virtual TSelf Parse(System.ReadOnlySpan utf8Text, System.Globalization.NumberStyles style, System.IFormatProvider? provider) { throw null; } static abstract TSelf Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider? provider); static abstract TSelf Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider? provider); - bool System.IUtf8SpanFormattable.TryFormat(System.Span utf8Destination, out int bytesWritten, System.ReadOnlySpan format, System.IFormatProvider? provider) { throw null; } static TSelf System.IUtf8SpanParsable.Parse(System.ReadOnlySpan utf8Text, System.IFormatProvider? provider) { throw null; } static bool System.IUtf8SpanParsable.TryParse(System.ReadOnlySpan utf8Text, System.IFormatProvider? provider, [System.Diagnostics.CodeAnalysis.MaybeNullWhen(false)] out TSelf result) { throw null; } protected static abstract bool TryConvertFromChecked(TOther value, [System.Diagnostics.CodeAnalysis.MaybeNullWhen(false)] out TSelf result) @@ -10918,8 +10911,6 @@ public partial interface ITrigonometricFunctions : System.Numerics.IFloat static abstract TSelf AtanPi(TSelf x); static abstract TSelf Cos(TSelf x); static abstract TSelf CosPi(TSelf x); - static virtual TSelf DegreesToRadians(TSelf degrees) { throw null; } - static virtual TSelf RadiansToDegrees(TSelf radians) { throw null; } static abstract TSelf Sin(TSelf x); static abstract (TSelf Sin, TSelf Cos) SinCos(TSelf x); static abstract (TSelf SinPi, TSelf CosPi) SinCosPi(TSelf x); diff --git a/src/libraries/System.Runtime/tests/System/DoubleTests.GenericMath.cs b/src/libraries/System.Runtime/tests/System/DoubleTests.GenericMath.cs index 829ff9adaceeb..7527954fc0526 100644 --- a/src/libraries/System.Runtime/tests/System/DoubleTests.GenericMath.cs +++ b/src/libraries/System.Runtime/tests/System/DoubleTests.GenericMath.cs @@ -108,7 +108,7 @@ public static void IsPow2Test() Assert.False(BinaryNumberHelper.IsPow2(-0.0)); Assert.False(BinaryNumberHelper.IsPow2(double.NaN)); Assert.False(BinaryNumberHelper.IsPow2(0.0)); - Assert.True(BinaryNumberHelper.IsPow2(double.Epsilon)); + Assert.False(BinaryNumberHelper.IsPow2(double.Epsilon)); Assert.False(BinaryNumberHelper.IsPow2(MaxSubnormal)); Assert.True(BinaryNumberHelper.IsPow2(MinNormal)); Assert.True(BinaryNumberHelper.IsPow2(1.0)); diff --git a/src/libraries/System.Runtime/tests/System/DoubleTests.cs b/src/libraries/System.Runtime/tests/System/DoubleTests.cs index 3c159c0534e7e..6c8cfda43d565 100644 --- a/src/libraries/System.Runtime/tests/System/DoubleTests.cs +++ b/src/libraries/System.Runtime/tests/System/DoubleTests.cs @@ -1685,65 +1685,5 @@ public static void LerpTest(double value1, double value2, double amount, double AssertExtensions.Equal(+expectedResult, double.Lerp(+value1, +value2, amount), 0); AssertExtensions.Equal((expectedResult == 0.0) ? expectedResult : -expectedResult, double.Lerp(-value1, -value2, amount), 0); } - - [Theory] - [InlineData(double.NaN, double.NaN, 0.0)] - [InlineData(0.0, 0.0, 0.0)] - [InlineData(0.31830988618379067, 0.005555555555555556, CrossPlatformMachineEpsilon)] // value: (1 / pi) - [InlineData(0.43429448190325183, 0.007579868632454674, CrossPlatformMachineEpsilon)] // value: (log10(e)) - [InlineData(0.5, 0.008726646259971648, CrossPlatformMachineEpsilon)] - [InlineData(0.63661977236758134, 0.011111111111111112, CrossPlatformMachineEpsilon)] // value: (2 / pi) - [InlineData(0.69314718055994531, 0.01209770050168668, CrossPlatformMachineEpsilon)] // value: (ln(2)) - [InlineData(0.70710678118654752, 0.012341341494884351, CrossPlatformMachineEpsilon)] // value: (1 / sqrt(2)) - [InlineData(0.78539816339744831, 0.013707783890401885, CrossPlatformMachineEpsilon)] // value: (pi / 4) - [InlineData(1.0, 0.017453292519943295, CrossPlatformMachineEpsilon)] - [InlineData(1.1283791670955126, 0.019693931676727953, CrossPlatformMachineEpsilon)] // value: (2 / sqrt(pi)) - [InlineData(1.4142135623730950, 0.024682682989768702, CrossPlatformMachineEpsilon)] // value: (sqrt(2)) - [InlineData(1.4426950408889634, 0.02517977856570663, CrossPlatformMachineEpsilon)] // value: (log2(e)) - [InlineData(1.5, 0.02617993877991494, CrossPlatformMachineEpsilon)] - [InlineData(1.5707963267948966, 0.02741556778080377, CrossPlatformMachineEpsilon)] // value: (pi / 2) - [InlineData(2.0, 0.03490658503988659, CrossPlatformMachineEpsilon)] - [InlineData(2.3025850929940457, 0.040187691180085916, CrossPlatformMachineEpsilon)] // value: (ln(10)) - [InlineData(2.5, 0.04363323129985824, CrossPlatformMachineEpsilon)] - [InlineData(2.7182818284590452, 0.047442967903742035, CrossPlatformMachineEpsilon)] // value: (e) - [InlineData(3.0, 0.05235987755982988, CrossPlatformMachineEpsilon)] - [InlineData(3.1415926535897932, 0.05483113556160754, CrossPlatformMachineEpsilon)] // value: (pi) - [InlineData(3.5, 0.061086523819801536, CrossPlatformMachineEpsilon)] - [InlineData(double.PositiveInfinity, double.PositiveInfinity, 0.0)] - public static void DegreesToRadiansTest(double value, double expectedResult, double allowedVariance) - { - AssertExtensions.Equal(-expectedResult, double.DegreesToRadians(-value), allowedVariance); - AssertExtensions.Equal(+expectedResult, double.DegreesToRadians(+value), allowedVariance); - } - - [Theory] - [InlineData(double.NaN, double.NaN, 0.0)] - [InlineData(0.0, 0.0, 0.0)] - [InlineData(0.0055555555555555567, 0.3183098861837906, CrossPlatformMachineEpsilon)] // expected: (1 / pi) - [InlineData(0.0075798686324546743, 0.4342944819032518, CrossPlatformMachineEpsilon)] // expected: (log10(e)) - [InlineData(0.008726646259971648, 0.5, CrossPlatformMachineEpsilon)] - [InlineData(0.0111111111111111124, 0.6366197723675813, CrossPlatformMachineEpsilon)] // expected: (2 / pi) - [InlineData(0.0120977005016866801, 0.6931471805599453, CrossPlatformMachineEpsilon)] // expected: (ln(2)) - [InlineData(0.0123413414948843512, 0.7071067811865475, CrossPlatformMachineEpsilon)] // expected: (1 / sqrt(2)) - [InlineData(0.0137077838904018851, 0.7853981633974483, CrossPlatformMachineEpsilon)] // expected: (pi / 4) - [InlineData(0.017453292519943295, 1.0, CrossPlatformMachineEpsilon)] - [InlineData(0.019693931676727953, 1.1283791670955126, CrossPlatformMachineEpsilon)] // expected: (2 / sqrt(pi)) - [InlineData(0.024682682989768702, 1.4142135623730950, CrossPlatformMachineEpsilon)] // expected: (sqrt(2)) - [InlineData(0.025179778565706630, 1.4426950408889634, CrossPlatformMachineEpsilon)] // expected: (log2(e)) - [InlineData(0.026179938779914940, 1.5, CrossPlatformMachineEpsilon)] - [InlineData(0.027415567780803770, 1.5707963267948966, CrossPlatformMachineEpsilon)] // expected: (pi / 2) - [InlineData(0.034906585039886590, 2.0, CrossPlatformMachineEpsilon)] - [InlineData(0.040187691180085916, 2.3025850929940457, CrossPlatformMachineEpsilon)] // expected: (ln(10)) - [InlineData(0.043633231299858240, 2.5, CrossPlatformMachineEpsilon)] - [InlineData(0.047442967903742035, 2.7182818284590452, CrossPlatformMachineEpsilon)] // expected: (e) - [InlineData(0.052359877559829880, 3.0, CrossPlatformMachineEpsilon)] - [InlineData(0.054831135561607540, 3.1415926535897932, CrossPlatformMachineEpsilon)] // expected: (pi) - [InlineData(0.061086523819801536, 3.5, CrossPlatformMachineEpsilon)] - [InlineData(double.PositiveInfinity, double.PositiveInfinity, 0.0)] - public static void RadiansToDegreesTest(double value, double expectedResult, double allowedVariance) - { - AssertExtensions.Equal(-expectedResult, double.RadiansToDegrees(-value), allowedVariance); - AssertExtensions.Equal(+expectedResult, double.RadiansToDegrees(+value), allowedVariance); - } } } diff --git a/src/libraries/System.Runtime/tests/System/HalfTests.GenericMath.cs b/src/libraries/System.Runtime/tests/System/HalfTests.GenericMath.cs index c93d99f58c407..2b6ef44ef6e27 100644 --- a/src/libraries/System.Runtime/tests/System/HalfTests.GenericMath.cs +++ b/src/libraries/System.Runtime/tests/System/HalfTests.GenericMath.cs @@ -120,7 +120,7 @@ public static void IsPow2Test() Assert.False(BinaryNumberHelper.IsPow2(NegativeZero)); Assert.False(BinaryNumberHelper.IsPow2(Half.NaN)); Assert.False(BinaryNumberHelper.IsPow2(Zero)); - Assert.True(BinaryNumberHelper.IsPow2(Half.Epsilon)); + Assert.False(BinaryNumberHelper.IsPow2(Half.Epsilon)); Assert.False(BinaryNumberHelper.IsPow2(MaxSubnormal)); Assert.True(BinaryNumberHelper.IsPow2(MinNormal)); Assert.True(BinaryNumberHelper.IsPow2(One)); diff --git a/src/libraries/System.Runtime/tests/System/HalfTests.cs b/src/libraries/System.Runtime/tests/System/HalfTests.cs index e5b68dfd0bc0d..b37476cb9ae63 100644 --- a/src/libraries/System.Runtime/tests/System/HalfTests.cs +++ b/src/libraries/System.Runtime/tests/System/HalfTests.cs @@ -2143,75 +2143,5 @@ public static void LerpTest(Half value1, Half value2, Half amount, Half expected AssertExtensions.Equal(+expectedResult, Half.Lerp(+value1, +value2, amount), Half.Zero); AssertExtensions.Equal((expectedResult == Half.Zero) ? expectedResult : -expectedResult, Half.Lerp(-value1, -value2, amount), Half.Zero); } - - public static IEnumerable DegreesToRadians_TestData() - { - yield return new object[] { Half.NaN, Half.NaN, Half.Zero }; - yield return new object[] { Half.Zero, Half.Zero, Half.Zero }; - yield return new object[] { (Half)(0.3184f), (Half)(0.005554f), CrossPlatformMachineEpsilon }; // value: (1 / pi) - yield return new object[] { (Half)(0.4343f), (Half)(0.00758f), CrossPlatformMachineEpsilon }; // value: (log10(e)) - yield return new object[] { (Half)(0.5f), (Half)(0.00872f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(0.6367f), (Half)(0.01111f), CrossPlatformMachineEpsilon }; // value: (2 / pi) - yield return new object[] { (Half)(0.6934f), (Half)(0.0121f), CrossPlatformMachineEpsilon }; // value: (ln(2)) - yield return new object[] { (Half)(0.707f), (Half)(0.01234f), CrossPlatformMachineEpsilon }; // value: (1 / sqrt(2)) - yield return new object[] { (Half)(0.785f), (Half)(0.0137f), CrossPlatformMachineEpsilon }; // value: (pi / 4) - yield return new object[] { (Half)(1.0f), (Half)(0.01744f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(1.128f), (Half)(0.01968f), CrossPlatformMachineEpsilon }; // value: (2 / sqrt(pi)) - yield return new object[] { (Half)(1.414f), (Half)(0.02467f), CrossPlatformMachineEpsilon }; // value: (sqrt(2)) - yield return new object[] { (Half)(1.442f), (Half)(0.02518f), CrossPlatformMachineEpsilon }; // value: (log2(e)) - yield return new object[] { (Half)(1.5f), (Half)(0.02617f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(1.57f), (Half)(0.0274f), CrossPlatformMachineEpsilon }; // value: (pi / 2) - yield return new object[] { (Half)(2.0f), (Half)(0.03488f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(2.303f), (Half)(0.04016f), CrossPlatformMachineEpsilon }; // value: (ln(10)) - yield return new object[] { (Half)(2.5f), (Half)(0.0436f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(2.719f), (Half)(0.04742f), CrossPlatformMachineEpsilon }; // value: (e) - yield return new object[] { (Half)(3.0f), (Half)(0.05234f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(3.14f), (Half)(0.0548f), CrossPlatformMachineEpsilon }; // value: (pi) - yield return new object[] { (Half)(3.5f), (Half)(0.06107f), CrossPlatformMachineEpsilon }; - yield return new object[] { Half.PositiveInfinity, Half.PositiveInfinity, Half.Zero }; - } - - [Theory] - [MemberData(nameof(DegreesToRadians_TestData))] - public static void DegreesToRadiansTest(Half value, Half expectedResult, Half allowedVariance) - { - AssertExtensions.Equal(-expectedResult, Half.DegreesToRadians(-value), allowedVariance); - AssertExtensions.Equal(+expectedResult, Half.DegreesToRadians(+value), allowedVariance); - } - - public static IEnumerable RadiansToDegrees_TestData() - { - yield return new object[] { Half.NaN, Half.NaN, Half.Zero }; - yield return new object[] { Half.Zero, Half.Zero, Half.Zero }; - yield return new object[] { (Half)(0.005554f), (Half)(0.3184f), CrossPlatformMachineEpsilon }; // value: (1 / pi) - yield return new object[] { (Half)(0.00758f), (Half)(0.4343f), CrossPlatformMachineEpsilon }; // value: (log10(e)) - yield return new object[] { (Half)(0.00872f), (Half)(0.5f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(0.01111f), (Half)(0.6367f), CrossPlatformMachineEpsilon }; // value: (2 / pi) - yield return new object[] { (Half)(0.0121f), (Half)(0.6934f), CrossPlatformMachineEpsilon }; // value: (ln(2)) - yield return new object[] { (Half)(0.01234f), (Half)(0.707f), CrossPlatformMachineEpsilon }; // value: (1 / sqrt(2)) - yield return new object[] { (Half)(0.0137f), (Half)(0.785f), CrossPlatformMachineEpsilon }; // value: (pi / 4) - yield return new object[] { (Half)(0.01744f), (Half)(1.0f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(0.01968f), (Half)(1.128f), CrossPlatformMachineEpsilon }; // value: (2 / sqrt(pi)) - yield return new object[] { (Half)(0.02467f), (Half)(1.414f), CrossPlatformMachineEpsilon }; // value: (sqrt(2)) - yield return new object[] { (Half)(0.02518f), (Half)(1.442f), CrossPlatformMachineEpsilon }; // value: (log2(e)) - yield return new object[] { (Half)(0.02617f), (Half)(1.5f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(0.0274f), (Half)(1.57f), CrossPlatformMachineEpsilon }; // value: (pi / 2) - yield return new object[] { (Half)(0.03488f), (Half)(2.0f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(0.04016f), (Half)(2.303f), CrossPlatformMachineEpsilon }; // value: (ln(10)) - yield return new object[] { (Half)(0.0436f), (Half)(2.5f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(0.04742f), (Half)(2.719f), CrossPlatformMachineEpsilon }; // value: (e) - yield return new object[] { (Half)(0.05234f), (Half)(3.0f), CrossPlatformMachineEpsilon }; - yield return new object[] { (Half)(0.0548f), (Half)(3.14f), CrossPlatformMachineEpsilon }; // value: (pi) - yield return new object[] { (Half)(0.06107f), (Half)(3.5f), CrossPlatformMachineEpsilon }; - yield return new object[] { Half.PositiveInfinity, Half.PositiveInfinity, Half.Zero }; - } - - [Theory] - [MemberData(nameof(RadiansToDegrees_TestData))] - public static void RadiansToDegreesTest(Half value, Half expectedResult, Half allowedVariance) - { - AssertExtensions.Equal(-expectedResult, Half.RadiansToDegrees(-value), allowedVariance); - AssertExtensions.Equal(+expectedResult, Half.RadiansToDegrees(+value), allowedVariance); - } } } diff --git a/src/libraries/System.Runtime/tests/System/SingleTests.GenericMath.cs b/src/libraries/System.Runtime/tests/System/SingleTests.GenericMath.cs index 21ca9fc2b44d3..fe08e69e39f5c 100644 --- a/src/libraries/System.Runtime/tests/System/SingleTests.GenericMath.cs +++ b/src/libraries/System.Runtime/tests/System/SingleTests.GenericMath.cs @@ -108,7 +108,7 @@ public static void IsPow2Test() Assert.False(BinaryNumberHelper.IsPow2(-0.0f)); Assert.False(BinaryNumberHelper.IsPow2(float.NaN)); Assert.False(BinaryNumberHelper.IsPow2(0.0f)); - Assert.True(BinaryNumberHelper.IsPow2(float.Epsilon)); + Assert.False(BinaryNumberHelper.IsPow2(float.Epsilon)); Assert.False(BinaryNumberHelper.IsPow2(MaxSubnormal)); Assert.True(BinaryNumberHelper.IsPow2(MinNormal)); Assert.True(BinaryNumberHelper.IsPow2(1.0f)); diff --git a/src/libraries/System.Runtime/tests/System/SingleTests.cs b/src/libraries/System.Runtime/tests/System/SingleTests.cs index 459bdd843f5a9..176ffc0993cc9 100644 --- a/src/libraries/System.Runtime/tests/System/SingleTests.cs +++ b/src/libraries/System.Runtime/tests/System/SingleTests.cs @@ -1597,65 +1597,5 @@ public static void LerpTest(float value1, float value2, float amount, float expe AssertExtensions.Equal(+expectedResult, float.Lerp(+value1, +value2, amount), 0); AssertExtensions.Equal((expectedResult == 0.0f) ? expectedResult : -expectedResult, float.Lerp(-value1, -value2, amount), 0); } - - [Theory] - [InlineData(float.NaN, float.NaN, 0.0f)] - [InlineData(0.0f, 0.0f, 0.0f)] - [InlineData(0.318309886f, 0.0055555557f, CrossPlatformMachineEpsilon)] // value: (1 / pi) - [InlineData(0.434294482f, 0.007579869f, CrossPlatformMachineEpsilon)] // value: (log10(e)) - [InlineData(0.5f, 0.008726646f, CrossPlatformMachineEpsilon)] - [InlineData(0.636619772f, 0.011111111f, CrossPlatformMachineEpsilon)] // value: (2 / pi) - [InlineData(0.693147181f, 0.0120977005f, CrossPlatformMachineEpsilon)] // value: (ln(2)) - [InlineData(0.707106781f, 0.012341342f, CrossPlatformMachineEpsilon)] // value: (1 / sqrt(2)) - [InlineData(0.785398163f, 0.013707785f, CrossPlatformMachineEpsilon)] // value: (pi / 4) - [InlineData(1.0f, 0.017453292f, CrossPlatformMachineEpsilon)] - [InlineData(1.12837917f, 0.019693933f, CrossPlatformMachineEpsilon)] // value: (2 / sqrt(pi)) - [InlineData(1.41421356f, 0.024682684f, CrossPlatformMachineEpsilon)] // value: (sqrt(2)) - [InlineData(1.44269504f, 0.025179777f, CrossPlatformMachineEpsilon)] // value: (log2(e)) - [InlineData(1.5f, 0.02617994f, CrossPlatformMachineEpsilon)] - [InlineData(1.57079633f, 0.02741557f, CrossPlatformMachineEpsilon)] // value: (pi / 2) - [InlineData(2.0f, 0.034906585f, CrossPlatformMachineEpsilon)] - [InlineData(2.30258509f, 0.040187694f, CrossPlatformMachineEpsilon)] // value: (ln(10)) - [InlineData(2.5f, 0.043633234f, CrossPlatformMachineEpsilon)] - [InlineData(2.71828183f, 0.047442965f, CrossPlatformMachineEpsilon)] // value: (e) - [InlineData(3.0f, 0.05235988f, CrossPlatformMachineEpsilon)] - [InlineData(3.14159265f, 0.05483114f, CrossPlatformMachineEpsilon)] // value: (pi) - [InlineData(3.5f, 0.061086528f, CrossPlatformMachineEpsilon)] - [InlineData(float.PositiveInfinity, float.PositiveInfinity, 0.0f)] - public static void DegreesToRadiansTest(float value, float expectedResult, float allowedVariance) - { - AssertExtensions.Equal(-expectedResult, float.DegreesToRadians(-value), allowedVariance); - AssertExtensions.Equal(+expectedResult, float.DegreesToRadians(+value), allowedVariance); - } - - [Theory] - [InlineData(float.NaN, float.NaN, 0.0)] - [InlineData(0.0f, 0.0f, 0.0)] - [InlineData(0.0055555557f, 0.318309886f, CrossPlatformMachineEpsilon)] // expected: (1 / pi) - [InlineData(0.007579869f, 0.434294482f, CrossPlatformMachineEpsilon)] // expected: (log10(e)) - [InlineData(0.008726646f, 0.5f, CrossPlatformMachineEpsilon)] - [InlineData(0.011111111f, 0.636619772f, CrossPlatformMachineEpsilon)] // expected: (2 / pi) - [InlineData(0.0120977005f, 0.693147181f, CrossPlatformMachineEpsilon)] // expected: (ln(2)) - [InlineData(0.012341342f, 0.707106781f, CrossPlatformMachineEpsilon)] // expected: (1 / sqrt(2)) - [InlineData(0.013707785f, 0.785398163f, CrossPlatformMachineEpsilon)] // expected: (pi / 4) - [InlineData(0.017453292f, 1.0f, CrossPlatformMachineEpsilon)] - [InlineData(0.019693933f, 1.12837917f, CrossPlatformMachineEpsilon)] // expected: (2 / sqrt(pi)) - [InlineData(0.024682684f, 1.41421356f, CrossPlatformMachineEpsilon)] // expected: (sqrt(2)) - [InlineData(0.025179777f, 1.44269504f, CrossPlatformMachineEpsilon)] // expected: (log2(e)) - [InlineData(0.02617994f, 1.5f, CrossPlatformMachineEpsilon)] - [InlineData(0.02741557f, 1.57079633f, CrossPlatformMachineEpsilon)] // expected: (pi / 2) - [InlineData(0.034906585f, 2.0f, CrossPlatformMachineEpsilon)] - [InlineData(0.040187694f, 2.30258509f, CrossPlatformMachineEpsilon)] // expected: (ln(10)) - [InlineData(0.043633234f, 2.5f, CrossPlatformMachineEpsilon)] - [InlineData(0.047442965f, 2.71828183f, CrossPlatformMachineEpsilon)] // expected: (e) - [InlineData(0.05235988f, 3.0f, CrossPlatformMachineEpsilon)] - [InlineData(0.05483114f, 3.14159265f, CrossPlatformMachineEpsilon)] // expected: (pi) - [InlineData(0.061086528f, 3.5f, CrossPlatformMachineEpsilon)] - [InlineData(float.PositiveInfinity, float.PositiveInfinity, 0.0)] - public static void RadiansToDegreesTest(float value, float expectedResult, float allowedVariance) - { - AssertExtensions.Equal(-expectedResult, float.RadiansToDegrees(-value), allowedVariance); - AssertExtensions.Equal(+expectedResult, float.RadiansToDegrees(+value), allowedVariance); - } } } diff --git a/src/libraries/System.Runtime/tests/System/TimeZoneInfoTests.cs b/src/libraries/System.Runtime/tests/System/TimeZoneInfoTests.cs index 0618def24946d..18c033afd2ade 100644 --- a/src/libraries/System.Runtime/tests/System/TimeZoneInfoTests.cs +++ b/src/libraries/System.Runtime/tests/System/TimeZoneInfoTests.cs @@ -2334,14 +2334,6 @@ public static IEnumerable SystemTimeZonesTestData() yield return new object[] { tz }; } } - - if (!PlatformDetection.IsBrowser && !PlatformDetection.IsiOS && !PlatformDetection.IstvOS) - { - foreach (string alias in s_UtcAliases) - { - yield return new object[] { TimeZoneInfo.FindSystemTimeZoneById(alias) }; - } - } } } @@ -2432,20 +2424,6 @@ public static void TimeZoneDisplayNames_Unix(TimeZoneInfo timeZone) } } - [Fact] - [PlatformSpecific(~TestPlatforms.Windows & ~TestPlatforms.Browser)] - public static void UtcAliases_MapToUtc() - { - TimeZoneInfo.AdjustmentRule[] expectedAdjustmentRules = TimeZoneInfo.Utc.GetAdjustmentRules(); - - foreach (var alias in s_UtcAliases) - { - TimeZoneInfo actualUtc = TimeZoneInfo.FindSystemTimeZoneById(alias); - Assert.Equal(TimeZoneInfo.Utc.BaseUtcOffset, actualUtc.BaseUtcOffset); - Assert.Equal(expectedAdjustmentRules, actualUtc.GetAdjustmentRules()); - } - } - [ActiveIssue("https://github.com/dotnet/runtime/issues/19794", TestPlatforms.AnyUnix)] [Theory] [MemberData(nameof(SystemTimeZonesTestData))] diff --git a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/Rfc2898DeriveBytes.OneShot.cs b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/Rfc2898DeriveBytes.OneShot.cs index 2798b7498fd04..a07718238a6d3 100644 --- a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/Rfc2898DeriveBytes.OneShot.cs +++ b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/Rfc2898DeriveBytes.OneShot.cs @@ -149,10 +149,10 @@ public static void Pbkdf2( /// , and . /// /// - /// contains text that cannot be converted to UTF-8. + /// contains text that cannot be converted to UTF8. /// /// - /// The will be converted to bytes using the UTF-8 encoding. For + /// The will be converted to bytes using the UTF8 encoding. For /// other encodings, convert the password string to bytes using the appropriate /// and use . /// @@ -192,10 +192,10 @@ public static byte[] Pbkdf2( /// , and . /// /// - /// contains text that cannot be converted to UTF-8. + /// contains text that cannot be converted to UTF8. /// /// - /// The will be converted to bytes using the UTF-8 encoding. For + /// The will be converted to bytes using the UTF8 encoding. For /// other encodings, convert the password string to bytes using the appropriate /// and use . /// @@ -237,10 +237,10 @@ public static byte[] Pbkdf2( /// , and . /// /// - /// contains text that cannot be converted to UTF-8. + /// contains text that cannot be converted to UTF8. /// /// - /// The will be converted to bytes using the UTF-8 encoding. For + /// The will be converted to bytes using the UTF8 encoding. For /// other encodings, convert the password string to bytes using the appropriate /// and use . /// diff --git a/src/libraries/System.Text.Json/Common/JsonSourceGenerationOptionsAttribute.cs b/src/libraries/System.Text.Json/Common/JsonSourceGenerationOptionsAttribute.cs index 3d9e164d7b5fd..45f11a41063cc 100644 --- a/src/libraries/System.Text.Json/Common/JsonSourceGenerationOptionsAttribute.cs +++ b/src/libraries/System.Text.Json/Common/JsonSourceGenerationOptionsAttribute.cs @@ -15,58 +15,11 @@ namespace System.Text.Json.Serialization #endif sealed class JsonSourceGenerationOptionsAttribute : JsonAttribute { - /// - /// Constructs a new instance. - /// - public JsonSourceGenerationOptionsAttribute() { } - - /// - /// Constructs a new instance with a predefined set of options determined by the specified . - /// - /// The to reason about. - /// Invalid parameter. - public JsonSourceGenerationOptionsAttribute(JsonSerializerDefaults defaults) - { - // Constructor kept in sync with equivalent overload in JsonSerializerOptions - - if (defaults is JsonSerializerDefaults.Web) - { - PropertyNameCaseInsensitive = true; - PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase; - NumberHandling = JsonNumberHandling.AllowReadingFromString; - } - else if (defaults is not JsonSerializerDefaults.General) - { - throw new ArgumentOutOfRangeException(nameof(defaults)); - } - } - - /// - /// Defines whether an extra comma at the end of a list of JSON values in an object or array - /// is allowed (and ignored) within the JSON payload being deserialized. - /// - public bool AllowTrailingCommas { get; set; } - - /// - /// Specifies a list of custom converter types to be used. - /// - public Type[]? Converters { get; set; } - - /// - /// The default buffer size in bytes used when creating temporary buffers. - /// - public int DefaultBufferSize { get; set; } - /// /// Specifies the default ignore condition. /// public JsonIgnoreCondition DefaultIgnoreCondition { get; set; } - /// - /// Specifies the policy used to convert a dictionary key to another format, such as camel-casing. - /// - public JsonKnownNamingPolicy DictionaryKeyPolicy { get; set; } - /// /// Specifies whether to ignore read-only fields. /// @@ -82,47 +35,11 @@ public JsonSourceGenerationOptionsAttribute(JsonSerializerDefaults defaults) /// public bool IncludeFields { get; set; } - /// - /// Gets or sets the maximum depth allowed when serializing or deserializing JSON, with the default (i.e. 0) indicating a max depth of 64. - /// - public int MaxDepth { get; set; } - - /// - /// Specifies how number types should be handled when serializing or deserializing. - /// - public JsonNumberHandling NumberHandling { get; set; } - - /// - /// Specifies preferred object creation handling for properties when deserializing JSON. - /// - public JsonObjectCreationHandling PreferredObjectCreationHandling { get; set; } - - /// - /// Determines whether a property name uses a case-insensitive comparison during deserialization. - /// - public bool PropertyNameCaseInsensitive { get; set; } - /// /// Specifies a built-in naming polices to convert JSON property names with. /// public JsonKnownNamingPolicy PropertyNamingPolicy { get; set; } - /// - /// Defines how JSON comments are handled during deserialization. - /// - public JsonCommentHandling ReadCommentHandling { get; set; } - - /// - /// Defines how deserializing a type declared as an is handled during deserialization. - /// - public JsonUnknownTypeHandling UnknownTypeHandling { get; set; } - - /// - /// Determines how handles JSON properties that - /// cannot be mapped to a specific .NET member when deserializing object types. - /// - public JsonUnmappedMemberHandling UnmappedMemberHandling { get; set; } - /// /// Specifies whether JSON output should be pretty-printed. /// diff --git a/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Emitter.cs b/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Emitter.cs index eca1f272ff4f4..a6b61db7ace53 100644 --- a/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Emitter.cs +++ b/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Emitter.cs @@ -53,16 +53,13 @@ private sealed partial class Emitter private const string JsonSerializerOptionsTypeRef = "global::System.Text.Json.JsonSerializerOptions"; private const string JsonSerializerContextTypeRef = "global::System.Text.Json.Serialization.JsonSerializerContext"; private const string Utf8JsonWriterTypeRef = "global::System.Text.Json.Utf8JsonWriter"; - private const string JsonCommentHandlingTypeRef = "global::System.Text.Json.JsonCommentHandling"; private const string JsonConverterTypeRef = "global::System.Text.Json.Serialization.JsonConverter"; private const string JsonConverterFactoryTypeRef = "global::System.Text.Json.Serialization.JsonConverterFactory"; private const string JsonCollectionInfoValuesTypeRef = "global::System.Text.Json.Serialization.Metadata.JsonCollectionInfoValues"; private const string JsonIgnoreConditionTypeRef = "global::System.Text.Json.Serialization.JsonIgnoreCondition"; - private const string JsonSerializerDefaultsTypeRef = "global::System.Text.Json.JsonSerializerDefaults"; private const string JsonNumberHandlingTypeRef = "global::System.Text.Json.Serialization.JsonNumberHandling"; private const string JsonObjectCreationHandlingTypeRef = "global::System.Text.Json.Serialization.JsonObjectCreationHandling"; private const string JsonUnmappedMemberHandlingTypeRef = "global::System.Text.Json.Serialization.JsonUnmappedMemberHandling"; - private const string JsonUnknownTypeHandlingTypeRef = "global::System.Text.Json.Serialization.JsonUnknownTypeHandling"; private const string JsonMetadataServicesTypeRef = "global::System.Text.Json.Serialization.Metadata.JsonMetadataServices"; private const string JsonObjectInfoValuesTypeRef = "global::System.Text.Json.Serialization.Metadata.JsonObjectInfoValues"; private const string JsonParameterInfoValuesTypeRef = "global::System.Text.Json.Serialization.Metadata.JsonParameterInfoValues"; @@ -383,7 +380,7 @@ private SourceText GenerateForCollection(ContextGenerationSpec contextSpec, Type }; {{JsonTypeInfoLocalVariableName}} = {{JsonMetadataServicesTypeRef}}.{{createCollectionMethodExpr}}; - {{JsonTypeInfoLocalVariableName}}.{{NumberHandlingPropName}} = {{FormatNumberHandling(typeGenerationSpec.NumberHandling)}}; + {{JsonTypeInfoLocalVariableName}}.{{NumberHandlingPropName}} = {{GetNumberHandlingAsStr(typeGenerationSpec.NumberHandling)}}; """); GenerateTypeInfoFactoryFooter(writer); @@ -536,7 +533,7 @@ private SourceText GenerateForObject(ContextGenerationSpec contextSpec, TypeGene }; {{JsonTypeInfoLocalVariableName}} = {{JsonMetadataServicesTypeRef}}.CreateObjectInfo<{{typeMetadata.TypeRef.FullyQualifiedName}}>({{OptionsLocalVariableName}}, {{ObjectInfoVarName}}); - {{JsonTypeInfoLocalVariableName}}.{{NumberHandlingPropName}} = {{FormatNumberHandling(typeMetadata.NumberHandling)}}; + {{JsonTypeInfoLocalVariableName}}.{{NumberHandlingPropName}} = {{GetNumberHandlingAsStr(typeMetadata.NumberHandling)}}; """); if (typeMetadata is { UnmappedMemberHandling: not null } or { PreferredPropertyObjectCreationHandling: not null }) @@ -545,12 +542,12 @@ private SourceText GenerateForObject(ContextGenerationSpec contextSpec, TypeGene if (typeMetadata.UnmappedMemberHandling != null) { - writer.WriteLine($"{JsonTypeInfoLocalVariableName}.{UnmappedMemberHandlingPropName} = {FormatUnmappedMemberHandling(typeMetadata.UnmappedMemberHandling.Value)};"); + writer.WriteLine($"{JsonTypeInfoLocalVariableName}.{UnmappedMemberHandlingPropName} = {GetUnmappedMemberHandlingAsStr(typeMetadata.UnmappedMemberHandling.Value)};"); } if (typeMetadata.PreferredPropertyObjectCreationHandling != null) { - writer.WriteLine($"{JsonTypeInfoLocalVariableName}.{PreferredPropertyObjectCreationHandlingPropName} = {FormatObjectCreationHandling(typeMetadata.PreferredPropertyObjectCreationHandling.Value)};"); + writer.WriteLine($"{JsonTypeInfoLocalVariableName}.{PreferredPropertyObjectCreationHandlingPropName} = {GetObjectCreationHandlingAsStr(typeMetadata.PreferredPropertyObjectCreationHandling.Value)};"); } } @@ -650,7 +647,7 @@ private void GeneratePropMetadataInitFunc(SourceWriter writer, string propInitMe IgnoreCondition = {{ignoreConditionNamedArg}}, HasJsonInclude = {{FormatBool(property.HasJsonInclude)}}, IsExtensionData = {{FormatBool(property.IsExtensionData)}}, - NumberHandling = {{FormatNumberHandling(property.NumberHandling)}}, + NumberHandling = {{GetNumberHandlingAsStr(property.NumberHandling)}}, PropertyName = {{FormatStringLiteral(property.MemberName)}}, JsonPropertyName = {{FormatStringLiteral(property.JsonPropertyName)}} }; @@ -666,7 +663,7 @@ private void GeneratePropMetadataInitFunc(SourceWriter writer, string propInitMe if (property.ObjectCreationHandling != null) { - writer.WriteLine($"properties[{i}].ObjectCreationHandling = {FormatObjectCreationHandling(property.ObjectCreationHandling.Value)};"); + writer.WriteLine($"properties[{i}].ObjectCreationHandling = {GetObjectCreationHandlingAsStr(property.ObjectCreationHandling.Value)};"); } writer.WriteLine(); @@ -772,12 +769,12 @@ private void GenerateFastPathFuncForObject(SourceWriter writer, ContextGeneratio continue; } - string effectiveJsonPropertyName = propertyGenSpec.EffectiveJsonPropertyName; - string propertyNameFieldName = propertyGenSpec.PropertyNameFieldName; + string runtimePropName = propertyGenSpec.RuntimePropertyName; + string propNameVarName = propertyGenSpec.PropertyNameVarName; // Add the property names to the context-wide cache; we'll generate the source to initialize them at the end of generation. - Debug.Assert(!_propertyNames.TryGetValue(effectiveJsonPropertyName, out string? existingName) || existingName == propertyNameFieldName); - _propertyNames.TryAdd(effectiveJsonPropertyName, propertyNameFieldName); + Debug.Assert(!_propertyNames.TryGetValue(runtimePropName, out string? existingName) || existingName == propNameVarName); + _propertyNames.TryAdd(runtimePropName, propNameVarName); DefaultCheckType defaultCheckType = GetDefaultCheckType(contextSpec, propertyGenSpec); @@ -815,7 +812,7 @@ private void GenerateFastPathFuncForObject(SourceWriter writer, ContextGeneratio break; } - GenerateSerializePropertyStatement(writer, propertyTypeSpec, propertyNameFieldName, propValueExpr); + GenerateSerializePropertyStatement(writer, propertyTypeSpec, propNameVarName, propValueExpr); if (defaultCheckType != DefaultCheckType.None) { @@ -982,7 +979,7 @@ private enum DefaultCheckType private static DefaultCheckType GetDefaultCheckType(ContextGenerationSpec contextSpec, PropertyGenerationSpec propertySpec) { - return (propertySpec.DefaultIgnoreCondition ?? contextSpec.GeneratedOptionsSpec?.DefaultIgnoreCondition) switch + return (propertySpec.DefaultIgnoreCondition ?? contextSpec.DefaultIgnoreCondition) switch { JsonIgnoreCondition.WhenWritingNull => propertySpec.PropertyType.CanBeNull ? DefaultCheckType.Null : DefaultCheckType.None, JsonIgnoreCondition.WhenWritingDefault => propertySpec.PropertyType.CanBeNull ? DefaultCheckType.Null : DefaultCheckType.Default, @@ -1043,7 +1040,7 @@ private static SourceText GetRootJsonContextImplementation(ContextGenerationSpec SourceWriter writer = CreateSourceWriterWithContextHeader(contextSpec, isPrimaryContextSourceFile: true); - GetLogicForDefaultSerializerOptionsInit(contextSpec.GeneratedOptionsSpec, writer); + GetLogicForDefaultSerializerOptionsInit(contextSpec, writer); writer.WriteLine(); @@ -1076,110 +1073,33 @@ private static SourceText GetRootJsonContextImplementation(ContextGenerationSpec return CompleteSourceFileAndReturnText(writer); } - private static void GetLogicForDefaultSerializerOptionsInit(SourceGenerationOptionsSpec? optionsSpec, SourceWriter writer) + private static void GetLogicForDefaultSerializerOptionsInit(ContextGenerationSpec contextSpec, SourceWriter writer) { - const string DefaultOptionsFieldDecl = $"private readonly static {JsonSerializerOptionsTypeRef} {DefaultOptionsStaticVarName}"; - - if (optionsSpec is null) - { - writer.WriteLine($"{DefaultOptionsFieldDecl} = new();"); - return; - } - - if (optionsSpec.Defaults is JsonSerializerDefaults defaults) - { - writer.WriteLine($"{DefaultOptionsFieldDecl} = new({FormatJsonSerializerDefaults(defaults)})"); - } - else - { - writer.WriteLine($"{DefaultOptionsFieldDecl} = new()"); - } - - writer.WriteLine('{'); - writer.Indentation++; - - if (optionsSpec.AllowTrailingCommas is bool allowTrailingCommas) - writer.WriteLine($"AllowTrailingCommas = {FormatBool(allowTrailingCommas)},"); - - if (optionsSpec.Converters is { Count: > 0 } converters) + string? namingPolicyName = contextSpec.PropertyNamingPolicy switch { - writer.WriteLine("Converters ="); - writer.WriteLine('{'); - writer.Indentation++; - - foreach (TypeRef converter in converters) - { - writer.WriteLine($"new {converter.FullyQualifiedName}(),"); - } - - writer.Indentation--; - writer.WriteLine("},"); - } - - if (optionsSpec.DefaultBufferSize is int defaultBufferSize) - writer.WriteLine($"DefaultBufferSize = {defaultBufferSize},"); - - if (optionsSpec.DefaultIgnoreCondition is JsonIgnoreCondition defaultIgnoreCondition) - writer.WriteLine($"DefaultIgnoreCondition = {FormatIgnoreCondition(defaultIgnoreCondition)},"); - - if (optionsSpec.DictionaryKeyPolicy is JsonKnownNamingPolicy dictionaryKeyPolicy) - writer.WriteLine($"DictionaryKeyPolicy = {FormatNamingPolicy(dictionaryKeyPolicy)},"); - - if (optionsSpec.IgnoreReadOnlyFields is bool ignoreReadOnlyFields) - writer.WriteLine($"IgnoreReadOnlyFields = {FormatBool(ignoreReadOnlyFields)},"); - - if (optionsSpec.IgnoreReadOnlyProperties is bool ignoreReadOnlyProperties) - writer.WriteLine($"IgnoreReadOnlyProperties = {FormatBool(ignoreReadOnlyProperties)},"); - - if (optionsSpec.IncludeFields is bool includeFields) - writer.WriteLine($"IncludeFields = {FormatBool(includeFields)},"); - - if (optionsSpec.MaxDepth is int maxDepth) - writer.WriteLine($"MaxDepth = {maxDepth},"); - - if (optionsSpec.NumberHandling is JsonNumberHandling numberHandling) - writer.WriteLine($"NumberHandling = {FormatNumberHandling(numberHandling)},"); - - if (optionsSpec.PreferredObjectCreationHandling is JsonObjectCreationHandling preferredObjectCreationHandling) - writer.WriteLine($"PreferredObjectCreationHandling = {FormatObjectCreationHandling(preferredObjectCreationHandling)},"); - - if (optionsSpec.PropertyNameCaseInsensitive is bool propertyNameCaseInsensitive) - writer.WriteLine($"PropertyNameCaseInsensitive = {FormatBool(propertyNameCaseInsensitive)},"); - - if (optionsSpec.PropertyNamingPolicy is JsonKnownNamingPolicy propertyNamingPolicy) - writer.WriteLine($"PropertyNamingPolicy = {FormatNamingPolicy(propertyNamingPolicy)},"); - - if (optionsSpec.ReadCommentHandling is JsonCommentHandling readCommentHandling) - writer.WriteLine($"ReadCommentHandling = {FormatCommentHandling(readCommentHandling)},"); - - if (optionsSpec.UnknownTypeHandling is JsonUnknownTypeHandling unknownTypeHandling) - writer.WriteLine($"UnknownTypeHandling = {FormatUnknownTypeHandling(unknownTypeHandling)},"); - - if (optionsSpec.UnmappedMemberHandling is JsonUnmappedMemberHandling unmappedMemberHandling) - writer.WriteLine($"UnmappedMemberHandling = {FormatUnmappedMemberHandling(unmappedMemberHandling)},"); - - if (optionsSpec.WriteIndented is bool writeIndented) - writer.WriteLine($"WriteIndented = {FormatBool(writeIndented)},"); + JsonKnownNamingPolicy.CamelCase => nameof(JsonNamingPolicy.CamelCase), + JsonKnownNamingPolicy.SnakeCaseLower => nameof(JsonNamingPolicy.SnakeCaseLower), + JsonKnownNamingPolicy.SnakeCaseUpper => nameof(JsonNamingPolicy.SnakeCaseUpper), + JsonKnownNamingPolicy.KebabCaseLower => nameof(JsonNamingPolicy.KebabCaseLower), + JsonKnownNamingPolicy.KebabCaseUpper => nameof(JsonNamingPolicy.KebabCaseUpper), + _ => null, + }; - writer.Indentation--; - writer.WriteLine("};"); + string namingPolicy = namingPolicyName != null + ? $"{JsonNamingPolicyTypeRef}.{namingPolicyName}" + : "null"; - static string FormatNamingPolicy(JsonKnownNamingPolicy knownNamingPolicy) - { - string? policyName = knownNamingPolicy switch + writer.WriteLine($$""" + private readonly static {{JsonSerializerOptionsTypeRef}} {{DefaultOptionsStaticVarName}} = new() { - JsonKnownNamingPolicy.CamelCase => nameof(JsonNamingPolicy.CamelCase), - JsonKnownNamingPolicy.SnakeCaseLower => nameof(JsonNamingPolicy.SnakeCaseLower), - JsonKnownNamingPolicy.SnakeCaseUpper => nameof(JsonNamingPolicy.SnakeCaseUpper), - JsonKnownNamingPolicy.KebabCaseLower => nameof(JsonNamingPolicy.KebabCaseLower), - JsonKnownNamingPolicy.KebabCaseUpper => nameof(JsonNamingPolicy.KebabCaseUpper), - _ => null, + DefaultIgnoreCondition = {{JsonIgnoreConditionTypeRef}}.{{contextSpec.DefaultIgnoreCondition}}, + IgnoreReadOnlyFields = {{FormatBool(contextSpec.IgnoreReadOnlyFields)}}, + IgnoreReadOnlyProperties = {{FormatBool(contextSpec.IgnoreReadOnlyProperties)}}, + IncludeFields = {{FormatBool(contextSpec.IncludeFields)}}, + WriteIndented = {{FormatBool(contextSpec.WriteIndented)}}, + PropertyNamingPolicy = {{namingPolicy}} }; - - return policyName != null - ? $"{JsonNamingPolicyTypeRef}.{policyName}" - : "null"; - } + """); } private static void GenerateConverterHelpers(SourceWriter writer, bool emitGetConverterForNullablePropertyMethod) @@ -1310,29 +1230,17 @@ private SourceText GetPropertyNameInitialization(ContextGenerationSpec contextSp return CompleteSourceFileAndReturnText(writer); } - private static string FormatNumberHandling(JsonNumberHandling? numberHandling) + private static string GetNumberHandlingAsStr(JsonNumberHandling? numberHandling) => numberHandling.HasValue ? SourceGeneratorHelpers.FormatEnumLiteral(JsonNumberHandlingTypeRef, numberHandling.Value) : "null"; - private static string FormatObjectCreationHandling(JsonObjectCreationHandling creationHandling) + private static string GetObjectCreationHandlingAsStr(JsonObjectCreationHandling creationHandling) => SourceGeneratorHelpers.FormatEnumLiteral(JsonObjectCreationHandlingTypeRef, creationHandling); - private static string FormatUnmappedMemberHandling(JsonUnmappedMemberHandling unmappedMemberHandling) + private static string GetUnmappedMemberHandlingAsStr(JsonUnmappedMemberHandling unmappedMemberHandling) => SourceGeneratorHelpers.FormatEnumLiteral(JsonUnmappedMemberHandlingTypeRef, unmappedMemberHandling); - private static string FormatCommentHandling(JsonCommentHandling commentHandling) - => SourceGeneratorHelpers.FormatEnumLiteral(JsonCommentHandlingTypeRef, commentHandling); - - private static string FormatUnknownTypeHandling(JsonUnknownTypeHandling commentHandling) - => SourceGeneratorHelpers.FormatEnumLiteral(JsonUnknownTypeHandlingTypeRef, commentHandling); - - private static string FormatIgnoreCondition(JsonIgnoreCondition ignoreCondition) - => SourceGeneratorHelpers.FormatEnumLiteral(JsonIgnoreConditionTypeRef, ignoreCondition); - - private static string FormatJsonSerializerDefaults(JsonSerializerDefaults defaults) - => SourceGeneratorHelpers.FormatEnumLiteral(JsonSerializerDefaultsTypeRef, defaults); - private static string GetCreateValueInfoMethodRef(string typeCompilableName) => $"{CreateValueInfoMethodName}<{typeCompilableName}>"; private static string FormatBool(bool value) => value ? "true" : "false"; @@ -1495,19 +1403,19 @@ private static bool AddPropertyWithConflictResolution( // Algorithm should be kept in sync with the reflection equivalent in JsonTypeInfo.cs string memberName = propertySpec.MemberName; - if (state.AddedProperties.TryAdd(propertySpec.EffectiveJsonPropertyName, (propertySpec, state.Properties.Count))) + if (state.AddedProperties.TryAdd(propertySpec.RuntimePropertyName, (propertySpec, state.Properties.Count))) { state.Properties.Add(propertySpec); } else { // The JsonPropertyNameAttribute or naming policy resulted in a collision. - (PropertyGenerationSpec other, int index) = state.AddedProperties[propertySpec.EffectiveJsonPropertyName]; + (PropertyGenerationSpec other, int index) = state.AddedProperties[propertySpec.RuntimePropertyName]; if (other.DefaultIgnoreCondition == JsonIgnoreCondition.Always) { // Overwrite previously cached property since it has [JsonIgnore]. - state.AddedProperties[propertySpec.EffectiveJsonPropertyName] = (propertySpec, index); + state.AddedProperties[propertySpec.RuntimePropertyName] = (propertySpec, index); state.Properties[index] = propertySpec; } else diff --git a/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs b/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs index b8bc98608d744..423d34020c681 100644 --- a/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs +++ b/src/libraries/System.Text.Json/gen/JsonSourceGenerator.Parser.cs @@ -94,7 +94,7 @@ public Parser(KnownTypeSymbols knownSymbols) if (!TryParseJsonSerializerContextAttributes( contextTypeSymbol, out List? rootSerializableTypes, - out SourceGenerationOptionsSpec? options)) + out JsonSourceGenerationOptionsAttribute? options)) { // Context does not specify any source gen attributes. return null; @@ -122,6 +122,8 @@ public Parser(KnownTypeSymbols knownSymbols) return null; } + options ??= new JsonSourceGenerationOptionsAttribute(); + // Enqueue attribute data for spec generation foreach (TypeToGenerate rootSerializableType in rootSerializableTypes) { @@ -148,7 +150,12 @@ public Parser(KnownTypeSymbols knownSymbols) GeneratedTypes = _generatedTypes.Values.OrderBy(t => t.TypeRef.FullyQualifiedName).ToImmutableEquatableArray(), Namespace = contextTypeSymbol.ContainingNamespace is { IsGlobalNamespace: false } ns ? ns.ToDisplayString() : null, ContextClassDeclarations = classDeclarationList.ToImmutableEquatableArray(), - GeneratedOptionsSpec = options, + DefaultIgnoreCondition = options.DefaultIgnoreCondition, + IgnoreReadOnlyFields = options.IgnoreReadOnlyFields, + IgnoreReadOnlyProperties = options.IgnoreReadOnlyProperties, + IncludeFields = options.IncludeFields, + PropertyNamingPolicy = options.PropertyNamingPolicy, + WriteIndented = options.WriteIndented, }; // Clear the caches of generated metadata between the processing of context classes. @@ -217,9 +224,9 @@ private TypeRef EnqueueType(ITypeSymbol type, JsonSourceGenerationMode? generati } private bool TryParseJsonSerializerContextAttributes( - INamedTypeSymbol contextClassSymbol, + ITypeSymbol contextClassSymbol, out List? rootSerializableTypes, - out SourceGenerationOptionsSpec? options) + out JsonSourceGenerationOptionsAttribute? options) { Debug.Assert(_knownSymbols.JsonSerializableAttributeType != null); Debug.Assert(_knownSymbols.JsonSourceGenerationOptionsAttributeType != null); @@ -243,125 +250,47 @@ private bool TryParseJsonSerializerContextAttributes( } else if (SymbolEqualityComparer.Default.Equals(attributeClass, _knownSymbols.JsonSourceGenerationOptionsAttributeType)) { - options = ParseJsonSourceGenerationOptionsAttribute(contextClassSymbol, attributeData); + options = ParseJsonSourceGenerationOptionsAttribute(attributeData); } } return rootSerializableTypes != null || options != null; } - private SourceGenerationOptionsSpec ParseJsonSourceGenerationOptionsAttribute(INamedTypeSymbol contextType, AttributeData attributeData) + private static JsonSourceGenerationOptionsAttribute ParseJsonSourceGenerationOptionsAttribute(AttributeData attributeData) { - JsonSourceGenerationMode? generationMode = null; - List? converters = null; - JsonSerializerDefaults? defaults = null; - bool? allowTrailingCommas = null; - int? defaultBufferSize = null; - JsonIgnoreCondition? defaultIgnoreCondition = null; - JsonKnownNamingPolicy? dictionaryKeyPolicy = null; - bool? ignoreReadOnlyFields = null; - bool? ignoreReadOnlyProperties = null; - bool? includeFields = null; - int? maxDepth = null; - JsonNumberHandling? numberHandling = null; - JsonObjectCreationHandling? preferredObjectCreationHandling = null; - bool? propertyNameCaseInsensitive = null; - JsonKnownNamingPolicy? propertyNamingPolicy = null; - JsonCommentHandling? readCommentHandling = null; - JsonUnknownTypeHandling? unknownTypeHandling = null; - JsonUnmappedMemberHandling? unmappedMemberHandling = null; - bool? writeIndented = null; - - if (attributeData.ConstructorArguments.Length > 0) - { - Debug.Assert(attributeData.ConstructorArguments.Length == 1 & attributeData.ConstructorArguments[0].Type?.Name is nameof(JsonSerializerDefaults)); - defaults = (JsonSerializerDefaults)attributeData.ConstructorArguments[0].Value!; - } + JsonSourceGenerationOptionsAttribute options = new(); foreach (KeyValuePair namedArg in attributeData.NamedArguments) { switch (namedArg.Key) { - case nameof(JsonSourceGenerationOptionsAttribute.AllowTrailingCommas): - allowTrailingCommas = (bool)namedArg.Value.Value!; - break; - - case nameof(JsonSourceGenerationOptionsAttribute.Converters): - converters = new List(); - foreach (TypedConstant element in namedArg.Value.Values) - { - var converterType = (ITypeSymbol?)element.Value; - TypeRef? typeRef = GetConverterTypeFromAttribute(contextType, converterType, contextType, attributeData); - if (typeRef != null) - { - converters.Add(typeRef); - } - } - - break; - - case nameof(JsonSourceGenerationOptionsAttribute.DefaultBufferSize): - defaultBufferSize = (int)namedArg.Value.Value!; - break; - case nameof(JsonSourceGenerationOptionsAttribute.DefaultIgnoreCondition): - defaultIgnoreCondition = (JsonIgnoreCondition)namedArg.Value.Value!; - break; - - case nameof(JsonSourceGenerationOptionsAttribute.DictionaryKeyPolicy): - dictionaryKeyPolicy = (JsonKnownNamingPolicy)namedArg.Value.Value!; + options.DefaultIgnoreCondition = (JsonIgnoreCondition)namedArg.Value.Value!; break; case nameof(JsonSourceGenerationOptionsAttribute.IgnoreReadOnlyFields): - ignoreReadOnlyFields = (bool)namedArg.Value.Value!; + options.IgnoreReadOnlyFields = (bool)namedArg.Value.Value!; break; case nameof(JsonSourceGenerationOptionsAttribute.IgnoreReadOnlyProperties): - ignoreReadOnlyProperties = (bool)namedArg.Value.Value!; + options.IgnoreReadOnlyProperties = (bool)namedArg.Value.Value!; break; case nameof(JsonSourceGenerationOptionsAttribute.IncludeFields): - includeFields = (bool)namedArg.Value.Value!; - break; - - case nameof(JsonSourceGenerationOptionsAttribute.MaxDepth): - maxDepth = (int)namedArg.Value.Value!; - break; - - case nameof(JsonSourceGenerationOptionsAttribute.NumberHandling): - numberHandling = (JsonNumberHandling)namedArg.Value.Value!; - break; - - case nameof(JsonSourceGenerationOptionsAttribute.PreferredObjectCreationHandling): - preferredObjectCreationHandling = (JsonObjectCreationHandling)namedArg.Value.Value!; - break; - - case nameof(JsonSourceGenerationOptionsAttribute.PropertyNameCaseInsensitive): - propertyNameCaseInsensitive = (bool)namedArg.Value.Value!; + options.IncludeFields = (bool)namedArg.Value.Value!; break; case nameof(JsonSourceGenerationOptionsAttribute.PropertyNamingPolicy): - propertyNamingPolicy = (JsonKnownNamingPolicy)namedArg.Value.Value!; - break; - - case nameof(JsonSourceGenerationOptionsAttribute.ReadCommentHandling): - readCommentHandling = (JsonCommentHandling)namedArg.Value.Value!; - break; - - case nameof(JsonSourceGenerationOptionsAttribute.UnknownTypeHandling): - unknownTypeHandling = (JsonUnknownTypeHandling)namedArg.Value.Value!; - break; - - case nameof(JsonSourceGenerationOptionsAttribute.UnmappedMemberHandling): - unmappedMemberHandling = (JsonUnmappedMemberHandling)namedArg.Value.Value!; + options.PropertyNamingPolicy = (JsonKnownNamingPolicy)namedArg.Value.Value!; break; case nameof(JsonSourceGenerationOptionsAttribute.WriteIndented): - writeIndented = (bool)namedArg.Value.Value!; + options.WriteIndented = (bool)namedArg.Value.Value!; break; case nameof(JsonSourceGenerationOptionsAttribute.GenerationMode): - generationMode = (JsonSourceGenerationMode)namedArg.Value.Value!; + options.GenerationMode = (JsonSourceGenerationMode)namedArg.Value.Value!; break; default: @@ -369,28 +298,7 @@ private SourceGenerationOptionsSpec ParseJsonSourceGenerationOptionsAttribute(IN } } - return new SourceGenerationOptionsSpec - { - GenerationMode = generationMode, - Defaults = defaults, - AllowTrailingCommas = allowTrailingCommas, - DefaultBufferSize = defaultBufferSize, - Converters = converters?.ToImmutableEquatableArray(), - DefaultIgnoreCondition = defaultIgnoreCondition, - DictionaryKeyPolicy = dictionaryKeyPolicy, - IgnoreReadOnlyFields = ignoreReadOnlyFields, - IgnoreReadOnlyProperties = ignoreReadOnlyProperties, - IncludeFields = includeFields, - MaxDepth = maxDepth, - NumberHandling = numberHandling, - PreferredObjectCreationHandling = preferredObjectCreationHandling, - PropertyNameCaseInsensitive = propertyNameCaseInsensitive, - PropertyNamingPolicy = propertyNamingPolicy, - ReadCommentHandling = readCommentHandling, - UnknownTypeHandling = unknownTypeHandling, - UnmappedMemberHandling = unmappedMemberHandling, - WriteIndented = writeIndented, - }; + return options; } private static TypeToGenerate? ParseJsonSerializableAttribute(AttributeData attributeData) @@ -434,7 +342,7 @@ private SourceGenerationOptionsSpec ParseJsonSourceGenerationOptionsAttribute(IN }; } - private TypeGenerationSpec ParseTypeGenerationSpec(in TypeToGenerate typeToGenerate, INamedTypeSymbol contextType, Location contextLocation, SourceGenerationOptionsSpec? options) + private TypeGenerationSpec ParseTypeGenerationSpec(in TypeToGenerate typeToGenerate, INamedTypeSymbol contextType, Location contextLocation, JsonSourceGenerationOptionsAttribute options) { Debug.Assert(IsSymbolAccessibleWithin(typeToGenerate.Type, within: contextType), "should not generate metadata for inaccessible types."); @@ -573,7 +481,7 @@ private TypeGenerationSpec ParseTypeGenerationSpec(in TypeToGenerate typeToGener { TypeRef = typeRef, TypeInfoPropertyName = typeInfoPropertyName, - GenerationMode = typeToGenerate.Mode ?? options?.GenerationMode ?? JsonSourceGenerationMode.Default, + GenerationMode = typeToGenerate.Mode ?? options.GenerationMode, ClassType = classType, PrimitiveTypeKind = primitiveTypeKind, IsPolymorphic = isPolymorphic, @@ -638,7 +546,7 @@ private void ProcessTypeCustomAttributes( } else if (!foundJsonConverterAttribute && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) { - customConverterType = GetConverterTypeFromJsonConverterAttribute(contextType, typeToGenerate.Type, attributeData); + customConverterType = GetConverterTypeFromAttribute(contextType, typeToGenerate.Type, attributeData); foundJsonConverterAttribute = true; } @@ -827,7 +735,7 @@ private List ParsePropertyGenerationSpecs( INamedTypeSymbol contextType, in TypeToGenerate typeToGenerate, Location typeLocation, - SourceGenerationOptionsSpec? options, + JsonSourceGenerationOptionsAttribute options, out bool hasExtensionDataProperty) { List properties = new(); @@ -937,7 +845,7 @@ private bool IsValidDataExtensionPropertyType(ITypeSymbol type) ISymbol memberInfo, ref bool typeHasExtensionDataProperty, JsonSourceGenerationMode? generationMode, - SourceGenerationOptionsSpec? options) + JsonSourceGenerationOptionsAttribute options) { Debug.Assert(memberInfo is IFieldSymbol or IPropertySymbol); @@ -995,8 +903,9 @@ private bool IsValidDataExtensionPropertyType(ITypeSymbol type) return null; } - string effectiveJsonPropertyName = DetermineEffectiveJsonPropertyName(memberInfo.Name, jsonPropertyName, options); - string propertyNameFieldName = DeterminePropertyNameFieldName(effectiveJsonPropertyName); + string clrName = memberInfo.Name; + string runtimePropertyName = DetermineRuntimePropName(clrName, jsonPropertyName, options.PropertyNamingPolicy); + string propertyNameVarName = DeterminePropNameIdentifier(runtimePropertyName); // Enqueue the property type for generation, unless the member is ignored. TypeRef propertyTypeRef = ignoreCondition != JsonIgnoreCondition.Always @@ -1011,8 +920,8 @@ private bool IsValidDataExtensionPropertyType(ITypeSymbol type) IsPublic = isAccessible, IsVirtual = memberInfo.IsVirtual(), JsonPropertyName = jsonPropertyName, - EffectiveJsonPropertyName = effectiveJsonPropertyName, - PropertyNameFieldName = propertyNameFieldName, + RuntimePropertyName = runtimePropertyName, + PropertyNameVarName = propertyNameVarName, IsReadOnly = isReadOnly, IsRequired = isRequired, HasJsonRequiredAttribute = hasJsonRequiredAttribute, @@ -1067,7 +976,7 @@ private void ProcessMemberCustomAttributes( if (converterType is null && _knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeType)) { - converterType = GetConverterTypeFromJsonConverterAttribute(contextType, memberInfo, attributeData); + converterType = GetConverterTypeFromAttribute(contextType, memberInfo, attributeData); } else if (attributeType.ContainingAssembly.Name == SystemTextJsonNamespace) { @@ -1335,18 +1244,14 @@ bool MatchesConstructorParameter(ParameterGenerationSpec paramSpec) return propertyInitializers; } - private TypeRef? GetConverterTypeFromJsonConverterAttribute(INamedTypeSymbol contextType, ISymbol declaringSymbol, AttributeData attributeData) + private TypeRef? GetConverterTypeFromAttribute(INamedTypeSymbol contextType, ISymbol declaringSymbol, AttributeData attributeData) { Debug.Assert(_knownSymbols.JsonConverterAttributeType.IsAssignableFrom(attributeData.AttributeClass)); - var converterType = (ITypeSymbol?)attributeData.ConstructorArguments[0].Value; - return GetConverterTypeFromAttribute(contextType, converterType, declaringSymbol, attributeData); - } + var converterType = (INamedTypeSymbol?)attributeData.ConstructorArguments[0].Value; - private TypeRef? GetConverterTypeFromAttribute(INamedTypeSymbol contextType, ITypeSymbol? converterType, ISymbol declaringSymbol, AttributeData attributeData) - { - if (converterType is not INamedTypeSymbol namedConverterType || - !_knownSymbols.JsonConverterType.IsAssignableFrom(namedConverterType) || - !namedConverterType.Constructors.Any(c => c.Parameters.Length == 0 && IsSymbolAccessibleWithin(c, within: contextType))) + if (converterType == null || + !_knownSymbols.JsonConverterType.IsAssignableFrom(converterType) || + !converterType.Constructors.Any(c => c.Parameters.Length == 0 && IsSymbolAccessibleWithin(c, within: contextType))) { ReportDiagnostic(DiagnosticDescriptors.JsonConverterAttributeInvalidType, attributeData.GetDiagnosticLocation(), converterType?.ToDisplayString() ?? "null", declaringSymbol.ToDisplayString()); return null; @@ -1360,24 +1265,30 @@ bool MatchesConstructorParameter(ParameterGenerationSpec paramSpec) return new TypeRef(converterType); } - private static string DetermineEffectiveJsonPropertyName(string propertyName, string? jsonPropertyName, SourceGenerationOptionsSpec? options) + private static string DetermineRuntimePropName(string clrPropName, string? jsonPropName, JsonKnownNamingPolicy namingPolicy) { - if (jsonPropertyName != null) + string runtimePropName; + + if (jsonPropName != null) { - return jsonPropertyName; + runtimePropName = jsonPropName; } - - JsonNamingPolicy? instance = options?.GetEffectivePropertyNamingPolicy() switch + else { - JsonKnownNamingPolicy.CamelCase => JsonNamingPolicy.CamelCase, - JsonKnownNamingPolicy.SnakeCaseLower => JsonNamingPolicy.SnakeCaseLower, - JsonKnownNamingPolicy.SnakeCaseUpper => JsonNamingPolicy.SnakeCaseUpper, - JsonKnownNamingPolicy.KebabCaseLower => JsonNamingPolicy.KebabCaseLower, - JsonKnownNamingPolicy.KebabCaseUpper => JsonNamingPolicy.KebabCaseUpper, - _ => null, - }; + JsonNamingPolicy? instance = namingPolicy switch + { + JsonKnownNamingPolicy.CamelCase => JsonNamingPolicy.CamelCase, + JsonKnownNamingPolicy.SnakeCaseLower => JsonNamingPolicy.SnakeCaseLower, + JsonKnownNamingPolicy.SnakeCaseUpper => JsonNamingPolicy.SnakeCaseUpper, + JsonKnownNamingPolicy.KebabCaseLower => JsonNamingPolicy.KebabCaseLower, + JsonKnownNamingPolicy.KebabCaseUpper => JsonNamingPolicy.KebabCaseUpper, + _ => null, + }; + + runtimePropName = instance?.ConvertName(clrPropName) ?? clrPropName; + } - return instance?.ConvertName(propertyName) ?? propertyName; + return runtimePropName; } private static string? DetermineImmutableCollectionFactoryMethod(string? immutableCollectionFactoryTypeFullName) @@ -1385,7 +1296,7 @@ private static string DetermineEffectiveJsonPropertyName(string propertyName, st return immutableCollectionFactoryTypeFullName is not null ? $"global::{immutableCollectionFactoryTypeFullName}.CreateRange" : null; } - private static string DeterminePropertyNameFieldName(string effectiveJsonPropertyName) + private static string DeterminePropNameIdentifier(string runtimePropName) { const string PropName = "PropName_"; @@ -1393,16 +1304,16 @@ private static string DeterminePropertyNameFieldName(string effectiveJsonPropert // the rare case there is a C# property in a hex format. const string EncodedPropName = "EncodedPropName_"; - if (SyntaxFacts.IsValidIdentifier(effectiveJsonPropertyName)) + if (SyntaxFacts.IsValidIdentifier(runtimePropName)) { - return PropName + effectiveJsonPropertyName; + return PropName + runtimePropName; } // Encode the string to a byte[] and then convert to hexadecimal. // To make the generated code more readable, we could use a different strategy in the future // such as including the full class name + the CLR property name when there are duplicates, // but that will create unnecessary JsonEncodedText properties. - byte[] utf8Json = Encoding.UTF8.GetBytes(effectiveJsonPropertyName); + byte[] utf8Json = Encoding.UTF8.GetBytes(runtimePropName); StringBuilder sb = new StringBuilder( EncodedPropName, diff --git a/src/libraries/System.Text.Json/gen/Model/ContextGenerationSpec.cs b/src/libraries/System.Text.Json/gen/Model/ContextGenerationSpec.cs index 598d78b41b7f2..d7e27450cbb55 100644 --- a/src/libraries/System.Text.Json/gen/Model/ContextGenerationSpec.cs +++ b/src/libraries/System.Text.Json/gen/Model/ContextGenerationSpec.cs @@ -35,6 +35,16 @@ public sealed record ContextGenerationSpec public required ImmutableEquatableArray ContextClassDeclarations { get; init; } - public required SourceGenerationOptionsSpec? GeneratedOptionsSpec { get; init; } + public required JsonIgnoreCondition DefaultIgnoreCondition { get; init; } + + public required bool IgnoreReadOnlyFields { get; init; } + + public required bool IgnoreReadOnlyProperties { get; init; } + + public required bool IncludeFields { get; init; } + + public required JsonKnownNamingPolicy PropertyNamingPolicy { get; init; } + + public required bool WriteIndented { get; init; } } } diff --git a/src/libraries/System.Text.Json/gen/Model/PropertyGenerationSpec.cs b/src/libraries/System.Text.Json/gen/Model/PropertyGenerationSpec.cs index 577e92124fa56..054e1aefaaaf1 100644 --- a/src/libraries/System.Text.Json/gen/Model/PropertyGenerationSpec.cs +++ b/src/libraries/System.Text.Json/gen/Model/PropertyGenerationSpec.cs @@ -57,12 +57,9 @@ public sealed record PropertyGenerationSpec /// specified ahead-of-time via . /// Only used in fast-path serialization logic. /// - public required string EffectiveJsonPropertyName { get; init; } + public required string RuntimePropertyName { get; init; } - /// - /// The field identifier used for storing JsonEncodedText for use by the fast-path serializer. - /// - public required string PropertyNameFieldName { get; init; } + public required string PropertyNameVarName { get; init; } /// /// Whether the property has a set method. @@ -159,7 +156,7 @@ public bool ShouldIncludePropertyForFastPath(ContextGenerationSpec contextSpec) } // Discard fields when JsonInclude or IncludeFields aren't enabled. - if (!IsProperty && !HasJsonInclude && contextSpec.GeneratedOptionsSpec?.IncludeFields != true) + if (!IsProperty && !HasJsonInclude && !contextSpec.IncludeFields) { return false; } @@ -169,12 +166,12 @@ public bool ShouldIncludePropertyForFastPath(ContextGenerationSpec contextSpec) { if (IsProperty) { - if (contextSpec.GeneratedOptionsSpec?.IgnoreReadOnlyProperties == true) + if (contextSpec.IgnoreReadOnlyProperties) { return false; } } - else if (contextSpec.GeneratedOptionsSpec?.IgnoreReadOnlyFields == true) + else if (contextSpec.IgnoreReadOnlyFields) { return false; } diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.cs.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.cs.xlf index bdd3c826078a7..af105417ad8ef 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.cs.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.cs.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - Konstruktor typu {0} byl opatřen poznámkou s atributem JsonConstructorAttribute, ale zdrojový generátor k němu nemá přístup. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - Konstruktor anotovaný atributem JsonConstructorAttribute je nepřístupný. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.de.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.de.xlf index e055679c10aff..8a10d9fbab3f9 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.de.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.de.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - Der Konstruktor für den Typ "{0}" wurde mit dem Kommentar "JsonConstructorAttribute" versehen, aber der Quellgenerator kann nicht darauf zugreifen. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - Auf den Konstruktor mit dem Kommentar "JsonConstructorAttribute" kann nicht zugegriffen werden. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.es.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.es.xlf index ce257cbb1c713..c59fa4f8c38e6 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.es.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.es.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - El constructor del tipo '{0}' se ha anotado con JsonConstructorAttribute, pero el generador de origen no puede acceder a él. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - No se puede acceder al constructor anotado con JsonConstructorAttribute. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.fr.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.fr.xlf index 14537fd03fb0b..ec15ea9e30458 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.fr.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.fr.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - Le constructeur sur le type '{0}' a été annoté avec JsonConstructorAttribute mais n'est pas accessible par le générateur source. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - Le constructeur annoté avec JsonConstructorAttribute est inaccessible. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.it.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.it.xlf index 374d71010a236..42f70a8a586e6 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.it.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.it.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - Il costruttore nel tipo '{0}' è stato annotato con JsonConstructorAttribute ma non è accessibile dal generatore di origine. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - Il costruttore annotato con JsonConstructorAttribute non è accessibile. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ja.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ja.xlf index fc01911e03f10..ac45f319fe035 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ja.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ja.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - 型 '{0}' のコンストラクターには JsonConstructorAttribute で注釈が付けられますが、ソース ジェネレーターからアクセスすることはできません。 + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - JsonConstructorAttribute で注釈が付けられたコンストラクターにアクセスできません。 + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ko.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ko.xlf index 6ccf47433580c..3e4f9eb8eadd7 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ko.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ko.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - '{0}' 형식의 생성자에 JsonConstructorAttribute로 주석이 추가되었지만 원본 생성기에서 액세스할 수 없습니다. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - JsonConstructorAttribute로 주석이 추가된 생성자에 액세스할 수 없습니다. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pl.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pl.xlf index 7e051e09a305d..8474b4bb21f6b 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pl.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pl.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - W przypadku konstruktora w zakresie typu „{0}” dokonano adnotacji przy użyciu atrybutu JsonConstructorAttribute, ale nie jest on dostępny dla generatora źródła. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - Konstruktor, w przypadku którego dokonano adnotacji za pomocą atrybutu JsonConstructorAttribute, jest niedostępny. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pt-BR.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pt-BR.xlf index 1b2fe43b42993..f8c41b215fbfa 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pt-BR.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pt-BR.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - O construtor do tipo '{0}' foi anotado com JsonConstructorAttribute, mas não pode ser acessado pelo gerador de origem. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - O construtor anotado com JsonConstructorAttribute está inacessível. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ru.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ru.xlf index 0e3e3f34b2c87..39cbe37e5514c 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ru.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ru.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - Конструктор для типа "{0}" аннотирован с использованием JsonConstructorAttribute, но недоступен для генератора источника. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - Конструктор, аннотированный с использованием JsonConstructorAttribute, недоступен. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.tr.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.tr.xlf index 2e8e0df34594f..f89d0b052db8f 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.tr.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.tr.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - '{0}' türündeki oluşturucuya JsonConstructorAttribute ile açıklama eklenmiş ancak kaynak oluşturucu tarafından erişilebilir değil. + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - JsonConstructorAttribute ile açıklama eklenmiş oluşturucuya erişilemiyor. + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hans.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hans.xlf index d0732a7bf2130..dcefcc43c2b04 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hans.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - 类型“{0}”上的构造函数已使用 JsonConstructorAttribute 进行批注,但源生成器无法访问该构造函数。 + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - 无法访问使用 JsonConstructorAttribute 批注的构造函数。 + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hant.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hant.xlf index 9ecddba3e923d..0a2d4af6e07ae 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hant.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - 類型 '{0}' 上的建構函式已使用 JsonConstructorAttribute 標註,但無法供來源產生器存取。 + The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. Constructor annotated with JsonConstructorAttribute is inaccessible. - 無法存取使用 JsonConstructorAttribute 標註的建構函式。 + Constructor annotated with JsonConstructorAttribute is inaccessible. diff --git a/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets b/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets index e14905d814875..06fccb03c2bce 100644 --- a/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets +++ b/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets @@ -31,7 +31,6 @@ - @@ -42,12 +41,10 @@ - - @@ -70,7 +67,6 @@ - diff --git a/src/libraries/System.Text.Json/ref/System.Text.Json.cs b/src/libraries/System.Text.Json/ref/System.Text.Json.cs index 46feae5eb90cd..15300ab9b8610 100644 --- a/src/libraries/System.Text.Json/ref/System.Text.Json.cs +++ b/src/libraries/System.Text.Json/ref/System.Text.Json.cs @@ -1045,24 +1045,12 @@ public enum JsonSourceGenerationMode public sealed partial class JsonSourceGenerationOptionsAttribute : System.Text.Json.Serialization.JsonAttribute { public JsonSourceGenerationOptionsAttribute() { } - public JsonSourceGenerationOptionsAttribute(System.Text.Json.JsonSerializerDefaults defaults) { } - public bool AllowTrailingCommas { get { throw null; } set { } } - public System.Type[]? Converters { get { throw null; } set { } } - public int DefaultBufferSize { get { throw null; } set { } } public System.Text.Json.Serialization.JsonIgnoreCondition DefaultIgnoreCondition { get { throw null; } set { } } - public System.Text.Json.Serialization.JsonKnownNamingPolicy DictionaryKeyPolicy { get { throw null; } set { } } public System.Text.Json.Serialization.JsonSourceGenerationMode GenerationMode { get { throw null; } set { } } public bool IgnoreReadOnlyFields { get { throw null; } set { } } public bool IgnoreReadOnlyProperties { get { throw null; } set { } } public bool IncludeFields { get { throw null; } set { } } - public int MaxDepth { get { throw null; } set { } } - public System.Text.Json.Serialization.JsonNumberHandling NumberHandling { get { throw null; } set { } } - public System.Text.Json.Serialization.JsonObjectCreationHandling PreferredObjectCreationHandling { get { throw null; } set { } } - public bool PropertyNameCaseInsensitive { get { throw null; } set { } } public System.Text.Json.Serialization.JsonKnownNamingPolicy PropertyNamingPolicy { get { throw null; } set { } } - public System.Text.Json.JsonCommentHandling ReadCommentHandling { get { throw null; } set { } } - public System.Text.Json.Serialization.JsonUnknownTypeHandling UnknownTypeHandling { get { throw null; } set { } } - public System.Text.Json.Serialization.JsonUnmappedMemberHandling UnmappedMemberHandling { get { throw null; } set { } } public bool WriteIndented { get { throw null; } set { } } } [System.Diagnostics.CodeAnalysis.RequiresDynamicCodeAttribute("JsonStringEnumConverter cannot be statically analyzed and requires runtime code generation. Applications should use the generic JsonStringEnumConverter instead.")] diff --git a/src/libraries/System.Text.Json/src/System.Text.Json.csproj b/src/libraries/System.Text.Json/src/System.Text.Json.csproj index 8b5b4cf6e36c1..49b9be5f46ec6 100644 --- a/src/libraries/System.Text.Json/src/System.Text.Json.csproj +++ b/src/libraries/System.Text.Json/src/System.Text.Json.csproj @@ -28,7 +28,6 @@ The System.Text.Json library is built-in as part of the shared framework in .NET - @@ -40,12 +39,10 @@ The System.Text.Json library is built-in as part of the shared framework in .NET - - @@ -64,6 +61,7 @@ The System.Text.Json library is built-in as part of the shared framework in .NET + @@ -251,10 +249,12 @@ The System.Text.Json library is built-in as part of the shared framework in .NET + + diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs index f639fcc2471c2..41458025b8c57 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs @@ -20,7 +20,7 @@ public sealed partial class JsonDocument private const int UnseekableStreamInitialRentSize = 4096; /// - /// Parse memory as UTF-8 encoded text representing a single JSON value into a JsonDocument. + /// Parse memory as UTF-8-encoded text representing a single JSON value into a JsonDocument. /// /// /// @@ -50,7 +50,7 @@ public static JsonDocument Parse(ReadOnlyMemory utf8Json, JsonDocumentOpti } /// - /// Parse a sequence as UTF-8 encoded text representing a single JSON value into a JsonDocument. + /// Parse a sequence as UTF-8-encoded text representing a single JSON value into a JsonDocument. /// /// /// @@ -101,7 +101,7 @@ public static JsonDocument Parse(ReadOnlySequence utf8Json, JsonDocumentOp } /// - /// Parse a as UTF-8 encoded data representing a single JSON value into a + /// Parse a as UTF-8-encoded data representing a single JSON value into a /// JsonDocument. The Stream will be read to completion. /// /// JSON data to parse. @@ -180,7 +180,7 @@ internal static JsonDocument ParseValue(string json, JsonDocumentOptions options } /// - /// Parse a as UTF-8 encoded data representing a single JSON value into a + /// Parse a as UTF-8-encoded data representing a single JSON value into a /// JsonDocument. The Stream will be read to completion. /// /// JSON data to parse. diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/JsonCommentHandling.cs b/src/libraries/System.Text.Json/src/System/Text/Json/JsonCommentHandling.cs new file mode 100644 index 0000000000000..a1dea4746e176 --- /dev/null +++ b/src/libraries/System.Text.Json/src/System/Text/Json/JsonCommentHandling.cs @@ -0,0 +1,28 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Text.Json +{ + /// + /// This enum defines the various ways the can deal with comments. + /// + public enum JsonCommentHandling : byte + { + /// + /// By default, do no allow comments within the JSON input. + /// Comments are treated as invalid JSON if found and a + /// is thrown. + /// + Disallow = 0, + /// + /// Allow comments within the JSON input and ignore them. + /// The will behave as if no comments were present. + /// + Skip = 1, + /// + /// Allow comments within the JSON input and treat them as valid tokens. + /// While reading, the caller will be able to access the comment values. + /// + Allow = 2, + } +} diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.Parse.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.Parse.cs index 750802b94ea12..d8eb3657541cc 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.Parse.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.Parse.cs @@ -101,7 +101,7 @@ public abstract partial class JsonNode } /// - /// Parse a as UTF-8 encoded data representing a single JSON value into a + /// Parse a as UTF-8-encoded data representing a single JSON value into a /// . The Stream will be read to completion. /// /// JSON text to parse. diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerContext.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerContext.cs index b3564a75701fd..bb77e529cab97 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerContext.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerContext.cs @@ -55,11 +55,17 @@ bool IBuiltInJsonTypeInfoResolver.IsCompatibleWithOptions(JsonSerializerOptions JsonSerializerOptions? generatedSerializerOptions = GeneratedSerializerOptions; + if (ReferenceEquals(options, generatedSerializerOptions)) + { + // Fast path for the 99% case + return true; + } + return generatedSerializerOptions is not null && // Guard against unsupported features options.Converters.Count == 0 && - options.Encoder is null && + options.Encoder == null && // Disallow custom number handling we'd need to honor when writing. // AllowReadingFromString and Strict are fine since there's no action to take when writing. !JsonHelpers.RequiresSpecialNumberHandlingOnWrite(options.NumberHandling) && @@ -74,7 +80,8 @@ options.Encoder is null && options.IgnoreReadOnlyProperties == generatedSerializerOptions.IgnoreReadOnlyProperties && options.IncludeFields == generatedSerializerOptions.IncludeFields && options.PropertyNamingPolicy == generatedSerializerOptions.PropertyNamingPolicy && - options.DictionaryKeyPolicy is null; + options.DictionaryKeyPolicy == generatedSerializerOptions.DictionaryKeyPolicy && + options.WriteIndented == generatedSerializerOptions.WriteIndented; } /// diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerDefaults.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerDefaults.cs new file mode 100644 index 0000000000000..fe762976f8a05 --- /dev/null +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerDefaults.cs @@ -0,0 +1,26 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Text.Json +{ + /// + /// Signifies what default options are used by . + /// + public enum JsonSerializerDefaults + { + /// + /// Specifies that general-purpose values should be used. These are the same settings applied if a isn't specified. + /// + /// + /// This option implies that property names are treated as case-sensitive and that "PascalCase" name formatting should be employed. + /// + General = 0, + /// + /// Specifies that values should be used more appropriate to web-based scenarios. + /// + /// + /// This option implies that property names are treated as case-insensitive and that "camelCase" name formatting should be employed. + /// + Web = 1 + } +} diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs index 72b3e420e8308..7a5f2f8d52142 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs @@ -139,8 +139,6 @@ public JsonSerializerOptions(JsonSerializerOptions options) /// The to reason about. public JsonSerializerOptions(JsonSerializerDefaults defaults) : this() { - // Should be kept in sync with equivalent overload in JsonSourceGenerationOptionsAttribute - if (defaults == JsonSerializerDefaults.Web) { _propertyNameCaseInsensitive = true; diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonUnknownTypeHandling.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonUnknownTypeHandling.cs new file mode 100644 index 0000000000000..5d2ea224bb5ad --- /dev/null +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonUnknownTypeHandling.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace System.Text.Json.Serialization +{ + /// + /// Defines how deserializing a type declared as an is handled during deserialization. + /// + public enum JsonUnknownTypeHandling + { + /// + /// A type declared as is deserialized as a . + /// + JsonElement = 0, + /// + /// A type declared as is deserialized as a . + /// + JsonNode = 1 + } +} diff --git a/src/libraries/System.Text.Json/tests/Common/JsonTestHelper.cs b/src/libraries/System.Text.Json/tests/Common/JsonTestHelper.cs index 23b66ab10a387..2428e979009c8 100644 --- a/src/libraries/System.Text.Json/tests/Common/JsonTestHelper.cs +++ b/src/libraries/System.Text.Json/tests/Common/JsonTestHelper.cs @@ -4,9 +4,6 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; -using System.Reflection; -using System.Text.Json.Serialization; -using System.Text.Json.Serialization.Metadata; using System.Text.RegularExpressions; using System.Threading.Tasks; using Xunit; @@ -147,39 +144,6 @@ static string BuildJsonPath(Stack path) } } - public static void AssertOptionsEqual(JsonSerializerOptions expected, JsonSerializerOptions actual) - { - foreach (PropertyInfo property in typeof(JsonSerializerOptions).GetProperties(BindingFlags.Public | BindingFlags.Instance)) - { - Type propertyType = property.PropertyType; - - if (property.Name == nameof(JsonSerializerOptions.IsReadOnly)) - { - continue; // readonly-ness is not a structural property of JsonSerializerOptions. - } - else if (propertyType == typeof(IList)) - { - var expectedConverters = (IList)property.GetValue(expected); - var actualConverters = (IList)property.GetValue(actual); - Assert.Equal(expectedConverters.Count, actualConverters.Count); - for (int i = 0; i < actualConverters.Count; i++) - { - Assert.IsType(expectedConverters[i].GetType(), actualConverters[i]); - } - } - else if (propertyType == typeof(IList)) - { - var list1 = (IList)property.GetValue(expected); - var list2 = (IList)property.GetValue(actual); - Assert.Equal(list1, list2); - } - else - { - Assert.Equal(property.GetValue(expected), property.GetValue(actual)); - } - } - } - /// /// Linq Cartesian product /// diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/System.Text.Json.SourceGeneration.Tests.targets b/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/System.Text.Json.SourceGeneration.Tests.targets index 75373ca883700..c401cbe1f21f1 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/System.Text.Json.SourceGeneration.Tests.targets +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/System.Text.Json.SourceGeneration.Tests.targets @@ -113,7 +113,6 @@ - diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/OptionsTests.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/OptionsTests.cs index 7c4621f68595c..575cd0eaf028a 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/OptionsTests.cs +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/OptionsTests.cs @@ -860,7 +860,7 @@ public static void CopyConstructor_OriginalLocked() var newOptions = new JsonSerializerOptions(options); Assert.False(newOptions.IsReadOnly); - JsonTestHelper.AssertOptionsEqual(options, newOptions); + VerifyOptionsEqual(options, newOptions); // No exception is thrown on mutating the new options instance because it is "unlocked". newOptions.ReferenceHandler = ReferenceHandler.Preserve; @@ -902,7 +902,7 @@ public static void CopyConstructor_CopiesAllPublicProperties() { JsonSerializerOptions options = GetFullyPopulatedOptionsInstance(); var newOptions = new JsonSerializerOptions(options); - JsonTestHelper.AssertOptionsEqual(options, newOptions); + VerifyOptionsEqual(options, newOptions); } [Fact] @@ -937,7 +937,7 @@ public static void JsonSerializerOptions_Default_MatchesDefaultConstructorWithDe { var options = new JsonSerializerOptions { TypeInfoResolver = JsonSerializerOptions.Default.TypeInfoResolver }; JsonSerializerOptions optionsSingleton = JsonSerializerOptions.Default; - JsonTestHelper.AssertOptionsEqual(options, optionsSingleton); + VerifyOptionsEqual(options, optionsSingleton); } [Fact] @@ -1176,7 +1176,7 @@ public static void DefaultSerializerOptions_General() var options = new JsonSerializerOptions(); var newOptions = new JsonSerializerOptions(JsonSerializerDefaults.General); Assert.False(newOptions.IsReadOnly); - JsonTestHelper.AssertOptionsEqual(options, newOptions); + VerifyOptionsEqual(options, newOptions); } [Fact] @@ -1262,12 +1262,45 @@ and not nameof(JsonSerializerOptions.IsReadOnly)) // Property is not structural return options; } + private static void VerifyOptionsEqual(JsonSerializerOptions options, JsonSerializerOptions newOptions) + { + foreach (PropertyInfo property in typeof(JsonSerializerOptions).GetProperties(BindingFlags.Public | BindingFlags.Instance)) + { + Type propertyType = property.PropertyType; + + if (property.Name == nameof(JsonSerializerOptions.IsReadOnly)) + { + continue; // readonly-ness is not a structural property of JsonSerializerOptions. + } + else if (propertyType == typeof(IList)) + { + var list1 = (IList)property.GetValue(options); + var list2 = (IList)property.GetValue(newOptions); + Assert.Equal(list1, list2); + } + else if (propertyType == typeof(IList)) + { + var list1 = (IList)property.GetValue(options); + var list2 = (IList)property.GetValue(newOptions); + Assert.Equal(list1, list2); + } + else if (propertyType.IsValueType) + { + Assert.Equal(property.GetValue(options), property.GetValue(newOptions)); + } + else + { + Assert.Same(property.GetValue(options), property.GetValue(newOptions)); + } + } + } + [Fact] public static void CopyConstructor_IgnoreNullValuesCopied() { var options = new JsonSerializerOptions { IgnoreNullValues = true }; var newOptions = new JsonSerializerOptions(options); - JsonTestHelper.AssertOptionsEqual(options, newOptions); + VerifyOptionsEqual(options, newOptions); } [Fact] diff --git a/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexParser.cs b/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexParser.cs index bc1005472888c..1716511ea2def 100644 --- a/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexParser.cs +++ b/src/libraries/System.Text.RegularExpressions/src/System/Text/RegularExpressions/RegexParser.cs @@ -320,7 +320,7 @@ private RegexNode ScanRegex() if (cchUnquantified > 0) { - AddToConcatenate(startpos, cchUnquantified, false); + AddConcatenate(startpos, cchUnquantified, false); } if (isQuantifier) @@ -345,7 +345,7 @@ private RegexNode ScanRegex() break; case '(': - _optionsStack.Append((int)_options); + PushOptions(); if (ScanGroupOpen() is RegexNode grouper) { PushGroup(); @@ -353,7 +353,7 @@ private RegexNode ScanRegex() } else { - _optionsStack.Length--; + PopKeepOptions(); } continue; @@ -362,14 +362,14 @@ private RegexNode ScanRegex() goto ContinueOuterScan; case ')': - if (_stack == null) + if (EmptyStack()) { throw MakeException(RegexParseError.InsufficientOpeningParentheses, SR.InsufficientOpeningParentheses); } AddGroup(); PopGroup(); - _options = (RegexOptions)_optionsStack.Pop(); + PopOptions(); if (_unit == null) { @@ -422,8 +422,7 @@ private RegexNode ScanRegex() if (_pos == _pattern.Length || !(isQuantifier = IsTrueQuantifier())) { - _concatenation!.AddChild(_unit!); - _unit = null; + AddConcatenate(); goto ContinueOuterScan; } @@ -463,8 +462,7 @@ private RegexNode ScanRegex() if (startpos == _pos || _pos == _pattern.Length || _pattern[_pos++] != '}') { - _concatenation!.AddChild(_unit!); - _unit = null; + AddConcatenate(); _pos = startpos - 1; goto ContinueOuterScan; } @@ -490,8 +488,7 @@ private RegexNode ScanRegex() throw MakeException(RegexParseError.ReversedQuantifierRange, SR.ReversedQuantifierRange); } - _concatenation!.AddChild(_unit!.MakeQuantifier(lazy, min, max)); - _unit = null; + AddConcatenate(lazy, min, max); } ContinueOuterScan: @@ -501,7 +498,7 @@ private RegexNode ScanRegex() BreakOuterScan: ; - if (_stack != null) + if (!EmptyStack()) { throw MakeException(RegexParseError.InsufficientClosingParentheses, SR.InsufficientClosingParentheses); } @@ -516,25 +513,33 @@ private RegexNode ScanReplacement() { _concatenation = new RegexNode(RegexNodeKind.Concatenate, _options); - while (_pos < _pattern.Length) + while (true) { + int c = _pattern.Length - _pos; + if (c == 0) + { + break; + } + int startpos = _pos; - _pos = _pattern.IndexOf('$', _pos); - if (_pos == -1) - _pos = _pattern.Length; + while (c > 0 && _pattern[_pos] != '$') + { + _pos++; + c--; + } - AddToConcatenate(startpos, _pos - startpos, isReplacement: true); + AddConcatenate(startpos, _pos - startpos, isReplacement: true); - if (_pos < _pattern.Length) + if (c > 0) { if (_pattern[_pos++] == '$') { - _unit = ScanDollar(); + RegexNode node = ScanDollar(); + _unit = node; } - _concatenation.AddChild(_unit!); - _unit = null; + AddConcatenate(); } } @@ -749,7 +754,7 @@ private RegexNode ScanReplacement() // 1. "(" followed by nothing // 2. "(x" where x != ? // 3. "(?)" - if (_pos == _pattern.Length || _pattern[_pos] != '?' || (_pos + 1 < _pattern.Length && _pattern[_pos + 1] == ')')) + if (_pos == _pattern.Length || _pattern[_pos] != '?' || (_pattern[_pos] == '?' && _pos + 1 < _pattern.Length && _pattern[_pos + 1] == ')')) { if ((_options & RegexOptions.ExplicitCapture) != 0 || _ignoreNextParen) { @@ -864,9 +869,9 @@ private RegexNode ScanReplacement() { string capname = ScanCapname(); - if (_capnames != null && _capnames.ContainsKey(capname)) + if (IsCaptureName(capname)) { - capnum = (int)_capnames![capname]!; + capnum = CaptureSlotFromName(capname); } // check if we have bogus character after the name @@ -911,9 +916,9 @@ private RegexNode ScanReplacement() { string uncapname = ScanCapname(); - if (_capnames != null && _capnames.ContainsKey(uncapname)) + if (IsCaptureName(uncapname)) { - uncapnum = (int)_capnames![uncapname]!; + uncapnum = CaptureSlotFromName(uncapname); } else { @@ -971,9 +976,9 @@ private RegexNode ScanReplacement() { string capname = ScanCapname(); - if (_capnames != null && _capnames.ContainsKey(capname) && _pos < _pattern.Length && _pattern[_pos++] == ')') + if (IsCaptureName(capname) && _pos < _pattern.Length && _pattern[_pos++] == ')') { - return new RegexNode(RegexNodeKind.BackreferenceConditional, _options, (int)_capnames![capname]!); + return new RegexNode(RegexNodeKind.BackreferenceConditional, _options, CaptureSlotFromName(capname)); } } } @@ -982,16 +987,24 @@ private RegexNode ScanReplacement() _pos = parenPos - 1; // jump to the start of the parentheses _ignoreNextParen = true; // but make sure we don't try to capture the insides - if (_pos + 2 < _pattern.Length && _pattern[_pos + 1] == '?') + int charsRight = _pattern.Length - _pos; + if (charsRight >= 3 && _pattern[_pos + 1] == '?') { + char rightchar2 = _pattern[_pos + 2]; + // disallow comments in the condition - if (_pattern[_pos + 2] == '#') + if (rightchar2 == '#') { throw MakeException(RegexParseError.AlternationHasComment, SR.AlternationHasComment); } // disallow named capture group (?<..>..) in the condition - if (_pattern[_pos + 2] == '\'' || (_pos + 3 < _pattern.Length && _pattern[_pos + 2] == '<' && _pattern[_pos + 3] != '!' && _pattern[_pos + 3] != '=')) + if (rightchar2 == '\'') + { + throw MakeException(RegexParseError.AlternationHasNamedCapture, SR.AlternationHasNamedCapture); + } + + if (charsRight >= 4 && rightchar2 == '<' && _pattern[_pos + 3] != '!' && _pattern[_pos + 3] != '=') { throw MakeException(RegexParseError.AlternationHasNamedCapture, SR.AlternationHasNamedCapture); } @@ -1051,16 +1064,20 @@ private void ScanBlank() if ((_options & RegexOptions.IgnorePatternWhitespace) != 0 && _pos < _pattern.Length && _pattern[_pos] == '#') { - _pos = _pattern.IndexOf('\n', _pos); - if (_pos == -1) - _pos = _pattern.Length; + while (_pos < _pattern.Length && _pattern[_pos] != '\n') + { + _pos++; + } } else if (_pos + 2 < _pattern.Length && _pattern[_pos + 2] == '#' && _pattern[_pos + 1] == '?' && _pattern[_pos] == '(') { - _pos = _pattern.IndexOf(')', _pos); - if (_pos == -1) + while (_pos < _pattern.Length && _pattern[_pos] != ')') + { + _pos++; + } + + if (_pos == _pattern.Length) { - _pos = _pattern.Length; throw MakeException(RegexParseError.UnterminatedComment, SR.UnterminatedComment); } @@ -1076,6 +1093,8 @@ private void ScanBlank() /// Scans chars following a '\' (not counting the '\'), and returns a RegexNode for the type of atom scanned private RegexNode? ScanBackslash(bool scanOnly) { + Debug.Assert(_pos < _pattern.Length, "The current reading position must not be at the end of the pattern"); + char ch; switch (ch = _pattern[_pos]) { @@ -1149,6 +1168,8 @@ private void ScanBlank() /// Scans \-style backreferences and character escapes private RegexNode? ScanBasicBackslash(bool scanOnly) { + Debug.Assert(_pos < _pattern.Length, "The current reading position must not be at the end of the pattern"); + int backpos = _pos; char close = '\0'; bool angled = false; @@ -1263,7 +1284,7 @@ private void ScanBlank() { return scanOnly ? null : - _capnames != null && _capnames.ContainsKey(capname) ? new RegexNode(RegexNodeKind.Backreference, _options, (int)_capnames![capname]!) : + IsCaptureName(capname) ? new RegexNode(RegexNodeKind.Backreference, _options, CaptureSlotFromName(capname)) : throw MakeException(RegexParseError.UndefinedNamedReference, SR.Format(SR.UndefinedNamedReference, capname)); } } @@ -1359,9 +1380,9 @@ private RegexNode ScanDollar() string capname = ScanCapname(); if (_pos < _pattern.Length && _pattern[_pos++] == '}') { - if (_capnames != null && _capnames.ContainsKey(capname)) + if (IsCaptureName(capname)) { - return new RegexNode(RegexNodeKind.Backreference, _options, (int)_capnames![capname]!); + return new RegexNode(RegexNodeKind.Backreference, _options, CaptureSlotFromName(capname)); } } } @@ -1475,19 +1496,13 @@ private int ScanDecimal() private char ScanHex(int c) { int i = 0; + int d; if (_pos + c <= _pattern.Length) { - for (; c > 0; c -= 1) + for (; c > 0 && ((d = HexDigit(_pattern[_pos++])) >= 0); c -= 1) { - int d; - char ch = _pattern[_pos++]; - if ((uint)(d = ch - '0') <= 9) - i = (i * 0x10) + d; - else if ((uint)(d = (ch | 0x20) - 'a') <= 5) - i = (i * 0x10) + d + 0xa; - else - break; + i = (i * 0x10) + d; } } @@ -1499,6 +1514,23 @@ private char ScanHex(int c) return (char)i; } + /// Returns n <= 0xF for a hex digit. + private static int HexDigit(char ch) + { + int d; + + if ((uint)(d = ch - '0') <= 9) + return d; + + if ((uint)(d = ch - 'a') <= 5) + return d + 0xa; + + if ((uint)(d = ch - 'A') <= 5) + return d + 0xa; + + return -1; + } + /// Grabs and converts an ASCII control character private char ScanControl() { @@ -1541,15 +1573,7 @@ private void ScanOptions() } else { - RegexOptions options = (char)(ch | 0x20) switch - { - 'i' => RegexOptions.IgnoreCase, - 'm' => RegexOptions.Multiline, - 'n' => RegexOptions.ExplicitCapture, - 's' => RegexOptions.Singleline, - 'x' => RegexOptions.IgnorePatternWhitespace, - _ => RegexOptions.None, - }; + RegexOptions options = OptionFromCode(ch); if (options == 0) { return; @@ -1647,7 +1671,7 @@ private string ParseProperty() } /// Returns the node kind for zero-length assertions with a \ code. - private readonly RegexNodeKind TypeFromCode(char ch) => + private RegexNodeKind TypeFromCode(char ch) => ch switch { 'b' => (_options & RegexOptions.ECMAScript) != 0 ? RegexNodeKind.ECMABoundary : RegexNodeKind.Boundary, @@ -1659,6 +1683,18 @@ private readonly RegexNodeKind TypeFromCode(char ch) => _ => RegexNodeKind.Nothing, }; + /// Returns option bit from single-char (?imnsx) code. + private static RegexOptions OptionFromCode(char ch) => + (char)(ch | 0x20) switch + { + 'i' => RegexOptions.IgnoreCase, + 'm' => RegexOptions.Multiline, + 'n' => RegexOptions.ExplicitCapture, + 's' => RegexOptions.Singleline, + 'x' => RegexOptions.IgnorePatternWhitespace, + _ => RegexOptions.None, + }; + /// /// A prescanner for deducing the slots used for captures by doing a partial tokenization of the pattern. /// @@ -1694,9 +1730,9 @@ private void CountCaptures(out RegexOptions optionsFoundInPattern) break; case ')': - if (_optionsStack.Length != 0) + if (!EmptyOptionsStack()) { - _options = (RegexOptions)_optionsStack.Pop(); + PopOptions(); } break; @@ -1709,7 +1745,7 @@ private void CountCaptures(out RegexOptions optionsFoundInPattern) } else { - _optionsStack.Append((int)_options); + PushOptions(); if (_pos < _pattern.Length && _pattern[_pos] == '?') { // we have (?... @@ -1748,7 +1784,7 @@ private void CountCaptures(out RegexOptions optionsFoundInPattern) { // (?cimsx-cimsx) _pos++; - _optionsStack.Length--; + PopKeepOptions(); } else if (_pattern[_pos] == '(') { @@ -1895,8 +1931,11 @@ private void AssignNameSlots() } } + /// Looks up the slot number for a given name. + private int CaptureSlotFromName(string capname) => (int)_capnames![capname]!; + /// True if the capture slot was noted - private readonly bool IsCaptureSlot(int i) + private bool IsCaptureSlot(int i) { if (_caps != null) { @@ -1917,6 +1956,9 @@ internal static int MapCaptureNumber(int capnum, Hashtable? caps) => caps != null ? (int)caps[capnum]! : capnum; + /// Looks up the slot number for a given name + private bool IsCaptureName(string capname) => _capnames != null && _capnames.ContainsKey(capname); + private const byte Q = 4; // quantifier * + ? { private const byte S = 3; // stopper $ ( ) . [ \ ^ | private const byte Z = 2; // # stopper # @@ -1966,8 +2008,10 @@ private static int IndexOfMetachar(ReadOnlySpan input) /// Returns true for whitespace. private static bool IsSpace(char ch) => ch <= ' ' && Category[ch] == W; - private readonly bool IsTrueQuantifier() + private bool IsTrueQuantifier() { + Debug.Assert(_pos < _pattern.Length, "The current reading position must not be at the end of the pattern"); + int startpos = _pos; char ch = _pattern[startpos]; if (ch != '{') @@ -2000,7 +2044,7 @@ private readonly bool IsTrueQuantifier() } /// Add a string to the last concatenate. - private void AddToConcatenate(int pos, int cch, bool isReplacement) + private void AddConcatenate(int pos, int cch, bool isReplacement) { switch (cch) { @@ -2054,6 +2098,9 @@ private void PopGroup() } } + /// True if the group stack is empty. + private bool EmptyStack() => _stack == null; + /// Start a new round for the parser state (in response to an open paren or string start) private void StartGroup(RegexNode openGroup) { @@ -2079,6 +2126,22 @@ private void AddAlternate() _concatenation = new RegexNode(RegexNodeKind.Concatenate, _options); } + /// Finish the current quantifiable (when a quantifier is not found or is not possible) + private void AddConcatenate() + { + // The first (| inside a Testgroup group goes directly to the group + + _concatenation!.AddChild(_unit!); + _unit = null; + } + + /// Finish the current quantifiable (when a quantifier is found) + private void AddConcatenate(bool lazy, int min, int max) + { + _concatenation!.AddChild(_unit!.MakeQuantifier(lazy, min, max)); + _unit = null; + } + /// Finish the current group (in response to a ')' or end) private void AddGroup() { @@ -2100,8 +2163,20 @@ private void AddGroup() _unit = _group; } + /// Saves options on a stack. + private void PushOptions() => _optionsStack.Append((int)_options); + + /// Recalls options from the stack. + private void PopOptions() => _options = (RegexOptions)_optionsStack.Pop(); + + /// True if options stack is empty. + private bool EmptyOptionsStack() => _optionsStack.Length == 0; + + /// Pops the options stack, but keeps the current options unchanged. + private void PopKeepOptions() => _optionsStack.Length--; + /// Fills in a RegexParseException - private readonly RegexParseException MakeException(RegexParseError error, string message) => + private RegexParseException MakeException(RegexParseError error, string message) => new RegexParseException(error, _pos, SR.Format(SR.MakeException, _pattern, _pos, message)); /// Gets group name from its number. diff --git a/src/mono/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.Mono.cs b/src/mono/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.Mono.cs index ff8de04d7b791..b417c32f06aba 100644 --- a/src/mono/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.Mono.cs +++ b/src/mono/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.Mono.cs @@ -424,6 +424,29 @@ public override bool IsDefined(Type attributeType, bool inherit) return _tb.IsDefined(attributeType, inherit); } + [RequiresDynamicCode("The code for an array of the specified type might not be available.")] + public override Type MakeArrayType() + { + return SymbolType.FormCompoundType("[]", this, 0)!; + } + + [RequiresDynamicCode("The code for an array of the specified type might not be available.")] + public override Type MakeArrayType(int rank) + { + string s = GetRankString(rank); + return SymbolType.FormCompoundType(s, this, 0)!; + } + + public override Type MakeByRefType() + { + return SymbolType.FormCompoundType("&", this, 0)!; + } + + public override Type MakePointerType() + { + return SymbolType.FormCompoundType("*", this, 0)!; + } + protected override void SetCustomAttributeCore(ConstructorInfo con, ReadOnlySpan binaryAttribute) { _tb.SetCustomAttribute(con, binaryAttribute); diff --git a/src/mono/mono/component/debugger-agent.c b/src/mono/mono/component/debugger-agent.c index 50f23dbdebc3f..f1c6ac70ce7b9 100644 --- a/src/mono/mono/component/debugger-agent.c +++ b/src/mono/mono/component/debugger-agent.c @@ -99,7 +99,6 @@ #include #include #include -#include #ifdef HAVE_UCONTEXT_H #include @@ -6946,88 +6945,6 @@ valid_memory_address (gpointer addr, gint size) return ret; } -static MonoAssembly* -find_assembly_by_name (char* assembly_name) -{ - //we get 'foo.dll' but mono_assembly_load expects 'foo' so we strip the last dot - char *lookup_name = g_strdup (assembly_name); - for (int i = ((int)strlen (lookup_name) - 1); i >= 0; --i) { - if (lookup_name [i] == '.') { - lookup_name [i] = 0; - break; - } - } - - //resolve the assembly - MonoImageOpenStatus status; - MonoAssemblyName* aname = mono_assembly_name_new (lookup_name); - g_free (lookup_name); - if (!aname) { - PRINT_DEBUG_MSG (1, "Could not resolve assembly %s\n", assembly_name); - return NULL; - } - - MonoAssemblyByNameRequest byname_req; - mono_assembly_request_prepare_byname (&byname_req, mono_alc_get_default ()); - MonoAssembly *assembly = mono_assembly_request_byname (aname, &byname_req, &status); - if (!assembly) { - GPtrArray *assemblies = mono_alc_get_all_loaded_assemblies (); - for (guint i = 0; i < assemblies->len; ++i) { - MonoAssembly *assemblyOnALC = (MonoAssembly*)g_ptr_array_index (assemblies, i); - if (!strcmp(assemblyOnALC->aname.name, aname->name)) { - assembly = assemblyOnALC; - break; - } - } - g_ptr_array_free (assemblies, TRUE); - if (!assembly) { - PRINT_DEBUG_MSG (1, "Could not resolve assembly %s\n", assembly_name); - goto exit; - } - } -exit: - mono_assembly_name_free_internal (aname); - return assembly; -} - -static void -send_debug_information (MonoAssembly *ass, Buffer *buf) -{ - guint8 pe_guid [16]; - gint32 pe_age; - gint32 pe_timestamp; - guint8 *ppdb_data = NULL; - int ppdb_size = 0, ppdb_compressed_size = 0; - char *ppdb_path; - GArray *pdb_checksum_hash_type = g_array_new (FALSE, TRUE, sizeof (char*)); - GArray *pdb_checksum = g_array_new (FALSE, TRUE, sizeof (guint8*)); - gboolean has_debug_info = mono_get_pe_debug_info_full (ass->image, pe_guid, &pe_age, &pe_timestamp, &ppdb_data, &ppdb_size, &ppdb_compressed_size, &ppdb_path, pdb_checksum_hash_type, pdb_checksum); - if (!has_debug_info || ppdb_size > 0) - { - buffer_add_byte (buf, 0); - g_array_free (pdb_checksum_hash_type, TRUE); - g_array_free (pdb_checksum, TRUE); - return; - } - buffer_add_byte (buf, 1); - buffer_add_int (buf, pe_age); - buffer_add_byte_array (buf, pe_guid, 16); - buffer_add_string (buf, ppdb_path); - buffer_add_int (buf, pdb_checksum_hash_type->len); - for (int i = 0 ; i < pdb_checksum_hash_type->len; ++i) { - char* checksum_hash_type = g_array_index (pdb_checksum_hash_type, char*, i); - buffer_add_string (buf, checksum_hash_type); - if (!strcmp (checksum_hash_type, "SHA256")) - buffer_add_byte_array (buf, g_array_index (pdb_checksum, guint8*, i), 32); - else if (!strcmp (checksum_hash_type, "SHA384")) - buffer_add_byte_array (buf, g_array_index (pdb_checksum, guint8*, i), 48); - else if (!strcmp (checksum_hash_type, "SHA512")) - buffer_add_byte_array (buf, g_array_index (pdb_checksum, guint8*, i), 64); - } - g_array_free (pdb_checksum_hash_type, TRUE); - g_array_free (pdb_checksum, TRUE); -} - static ErrorCode vm_commands (int command, int id, guint8 *p, guint8 *end, Buffer *buf) { @@ -7386,9 +7303,45 @@ vm_commands (int command, int id, guint8 *p, guint8 *end, Buffer *buf) } case MDBGPROT_CMD_GET_ASSEMBLY_BY_NAME: { char* assembly_name = decode_string (p, &p, end); - MonoAssembly* assembly = find_assembly_by_name (assembly_name); - if (!assembly) - buffer_add_int (buf, -1); + //we get 'foo.dll' but mono_assembly_load expects 'foo' so we strip the last dot + char *lookup_name = g_strdup (assembly_name); + for (int i = ((int)strlen (lookup_name) - 1); i >= 0; --i) { + if (lookup_name [i] == '.') { + lookup_name [i] = 0; + break; + } + } + + //resolve the assembly + MonoImageOpenStatus status; + MonoAssemblyName* aname = mono_assembly_name_new (lookup_name); + if (!aname) { + PRINT_DEBUG_MSG (1, "Could not resolve assembly %s\n", assembly_name); + buffer_add_int(buf, -1); + break; + } + MonoAssemblyByNameRequest byname_req; + mono_assembly_request_prepare_byname (&byname_req, mono_alc_get_default ()); + MonoAssembly *assembly = mono_assembly_request_byname (aname, &byname_req, &status); + g_free (lookup_name); + if (!assembly) { + GPtrArray *assemblies = mono_alc_get_all_loaded_assemblies (); + for (guint i = 0; i < assemblies->len; ++i) { + MonoAssembly *assemblyOnALC = (MonoAssembly*)g_ptr_array_index (assemblies, i); + if (!strcmp(assemblyOnALC->aname.name, aname->name)) { + assembly = assemblyOnALC; + break; + } + } + g_ptr_array_free (assemblies, TRUE); + if (!assembly) { + PRINT_DEBUG_MSG (1, "Could not resolve assembly %s\n", assembly_name); + buffer_add_int(buf, -1); + mono_assembly_name_free_internal (aname); + break; + } + } + mono_assembly_name_free_internal (aname); buffer_add_assemblyid (buf, mono_get_root_domain (), assembly); break; } @@ -7465,55 +7418,6 @@ vm_commands (int command, int id, guint8 *p, guint8 *end, Buffer *buf) } break; } - case MDBGPROT_CMD_GET_ASSEMBLY_BYTES: { //only used by wasm -#ifdef HOST_WASM - char* assembly_name = m_dbgprot_decode_string (p, &p, end); - if (assembly_name == NULL) - { - m_dbgprot_buffer_add_int (buf, 0); - m_dbgprot_buffer_add_int (buf, 0); - m_dbgprot_buffer_add_int (buf, 0); - } - else - { - int ppdb_size = 0; - const unsigned char* assembly_bytes = NULL; - unsigned int assembly_size = 0; - const unsigned char* pdb_bytes = NULL; - unsigned int symfile_size = 0; - mono_bundled_resources_get_assembly_resource_symbol_values (assembly_name, &pdb_bytes, &symfile_size); - MonoAssembly* assembly = find_assembly_by_name (assembly_name); - assembly_size = assembly->image->image_info->cli_cli_header.ch_metadata.size; - assembly_bytes = (const unsigned char*) assembly->image->raw_metadata; - if (symfile_size == 0) //try to send embedded pdb data - { - guint8 pe_guid [16]; - gint32 pe_age; - gint32 pe_timestamp; - guint8 *ppdb_data = NULL; - int ppdb_compressed_size = 0; - char *ppdb_path; - mono_get_pe_debug_info_full (assembly->image, pe_guid, &pe_age, &pe_timestamp, &ppdb_data, &ppdb_size, &ppdb_compressed_size, &ppdb_path, NULL, NULL); - if (ppdb_compressed_size > 0) - { - symfile_size = ppdb_compressed_size; - pdb_bytes = ppdb_data; - } - } - m_dbgprot_buffer_init (buf, assembly_size + symfile_size + 1024); - m_dbgprot_buffer_add_byte_array (buf, (uint8_t *) assembly_bytes, assembly_size); - m_dbgprot_buffer_add_int (buf, ppdb_size); - m_dbgprot_buffer_add_byte_array (buf, (uint8_t *) pdb_bytes, symfile_size); - if (assembly) - send_debug_information (assembly, buf); - } -#else - m_dbgprot_buffer_add_int (buf, 0); - m_dbgprot_buffer_add_int (buf, 0); - m_dbgprot_buffer_add_int (buf, 0); -#endif - break; - } default: return ERR_NOT_IMPLEMENTED; } @@ -8138,7 +8042,39 @@ assembly_commands (int command, guint8 *p, guint8 *end, Buffer *buf) break; } case MDBGPROT_CMD_ASSEMBLY_GET_DEBUG_INFORMATION: { - send_debug_information (ass, buf); + guint8 pe_guid [16]; + gint32 pe_age; + gint32 pe_timestamp; + guint8 *ppdb_data = NULL; + int ppdb_size = 0, ppdb_compressed_size = 0; + char *ppdb_path; + GArray *pdb_checksum_hash_type = g_array_new (FALSE, TRUE, sizeof (char*)); + GArray *pdb_checksum = g_array_new (FALSE, TRUE, sizeof (guint8*)); + gboolean has_debug_info = mono_get_pe_debug_info_full (ass->image, pe_guid, &pe_age, &pe_timestamp, &ppdb_data, &ppdb_size, &ppdb_compressed_size, &ppdb_path, pdb_checksum_hash_type, pdb_checksum); + if (!has_debug_info || ppdb_size > 0) + { + buffer_add_byte (buf, 0); + g_array_free (pdb_checksum_hash_type, TRUE); + g_array_free (pdb_checksum, TRUE); + return ERR_NONE; + } + buffer_add_byte (buf, 1); + buffer_add_int (buf, pe_age); + buffer_add_byte_array (buf, pe_guid, 16); + buffer_add_string (buf, ppdb_path); + buffer_add_int (buf, pdb_checksum_hash_type->len); + for (int i = 0 ; i < pdb_checksum_hash_type->len; ++i) { + char* checksum_hash_type = g_array_index (pdb_checksum_hash_type, char*, i); + buffer_add_string (buf, checksum_hash_type); + if (!strcmp (checksum_hash_type, "SHA256")) + buffer_add_byte_array (buf, g_array_index (pdb_checksum, guint8*, i), 32); + else if (!strcmp (checksum_hash_type, "SHA384")) + buffer_add_byte_array (buf, g_array_index (pdb_checksum, guint8*, i), 48); + else if (!strcmp (checksum_hash_type, "SHA512")) + buffer_add_byte_array (buf, g_array_index (pdb_checksum, guint8*, i), 64); + } + g_array_free (pdb_checksum_hash_type, TRUE); + g_array_free (pdb_checksum, TRUE); break; } case MDBGPROT_CMD_ASSEMBLY_HAS_DEBUG_INFO_LOADED: { diff --git a/src/mono/mono/component/debugger-protocol.h b/src/mono/mono/component/debugger-protocol.h index 9a8cc5e1c53d3..cbcecb43304ac 100644 --- a/src/mono/mono/component/debugger-protocol.h +++ b/src/mono/mono/component/debugger-protocol.h @@ -11,7 +11,7 @@ */ #define MAJOR_VERSION 2 -#define MINOR_VERSION 64 +#define MINOR_VERSION 63 typedef enum { MDBGPROT_CMD_COMPOSITE = 100 diff --git a/src/mono/mono/component/mini-wasm-debugger.c b/src/mono/mono/component/mini-wasm-debugger.c index 0e737f420f2a7..b73db552ebc62 100644 --- a/src/mono/mono/component/mini-wasm-debugger.c +++ b/src/mono/mono/component/mini-wasm-debugger.c @@ -432,6 +432,28 @@ mono_wasm_send_dbg_command (int id, MdbgProtCommandSet command_set, int command, invoke_data.flags = INVOKE_FLAG_DISABLE_BREAKPOINTS_AND_STEPPING; error = mono_do_invoke_method (tls, &buf, &invoke_data, data, &data); } + else if (command_set == MDBGPROT_CMD_SET_VM && (command == MDBGPROT_CMD_GET_ASSEMBLY_BYTES)) + { + char* assembly_name = m_dbgprot_decode_string (data, &data, data + size); + if (assembly_name == NULL) + { + m_dbgprot_buffer_init (&buf, 128); + m_dbgprot_buffer_add_int (&buf, 0); + m_dbgprot_buffer_add_int (&buf, 0); + } + else + { + const unsigned char* assembly_bytes = NULL; + unsigned int assembly_size = 0; + mono_bundled_resources_get_assembly_resource_values (assembly_name, &assembly_bytes, &assembly_size); + const unsigned char* pdb_bytes = NULL; + unsigned int symfile_size = 0; + mono_bundled_resources_get_assembly_resource_symbol_values (assembly_name, &pdb_bytes, &symfile_size); + m_dbgprot_buffer_init (&buf, assembly_size + symfile_size); + m_dbgprot_buffer_add_byte_array (&buf, (uint8_t *) assembly_bytes, assembly_size); + m_dbgprot_buffer_add_byte_array (&buf, (uint8_t *) pdb_bytes, symfile_size); + } + } else { m_dbgprot_buffer_init (&buf, 128); diff --git a/src/mono/mono/metadata/CMakeLists.txt b/src/mono/mono/metadata/CMakeLists.txt index 39ec34205c680..dac92188d4f68 100644 --- a/src/mono/mono/metadata/CMakeLists.txt +++ b/src/mono/mono/metadata/CMakeLists.txt @@ -171,8 +171,6 @@ set(metadata_common_sources abi-details.h abi.c memory-manager.c - unsafe-accessor.h - unsafe-accessor.c icall-table.h ${icall_table_sources}) diff --git a/src/mono/mono/metadata/class-internals.h b/src/mono/mono/metadata/class-internals.h index 3863d3213fa40..68f83b16ab2fc 100644 --- a/src/mono/mono/metadata/class-internals.h +++ b/src/mono/mono/metadata/class-internals.h @@ -1421,9 +1421,6 @@ mono_method_has_no_body (MonoMethod *method); MONO_COMPONENT_API MonoMethodHeader* mono_method_get_header_internal (MonoMethod *method, MonoError *error); -gboolean -mono_method_metadata_has_header (MonoMethod *method); - MONO_COMPONENT_API void mono_method_get_param_names_internal (MonoMethod *method, const char **names); diff --git a/src/mono/mono/metadata/custom-attrs.c b/src/mono/mono/metadata/custom-attrs.c index 8fc9f47daf0af..31a0be630fa05 100644 --- a/src/mono/mono/metadata/custom-attrs.c +++ b/src/mono/mono/metadata/custom-attrs.c @@ -50,7 +50,6 @@ static gboolean type_is_reference (MonoType *type); static GENERATE_GET_CLASS_WITH_CACHE (custom_attribute_typed_argument, "System.Reflection", "CustomAttributeTypedArgument"); static GENERATE_GET_CLASS_WITH_CACHE (custom_attribute_named_argument, "System.Reflection", "CustomAttributeNamedArgument"); static GENERATE_TRY_GET_CLASS_WITH_CACHE (customattribute_data, "System.Reflection", "RuntimeCustomAttributeData"); -static GENERATE_TRY_GET_CLASS_WITH_CACHE (unsafe_accessor_attribute, "System.Runtime.CompilerServices", "UnsafeAccessorAttribute"); static MonoCustomAttrInfo* mono_custom_attrs_from_builders_handle (MonoImage *alloc_img, MonoImage *image, MonoArrayHandle cattrs, gboolean respect_cattr_visibility); @@ -2057,62 +2056,6 @@ mono_custom_attrs_from_method_checked (MonoMethod *method, MonoError *error) return mono_custom_attrs_from_index_checked (m_class_get_image (method->klass), idx, FALSE, error); } -gboolean -mono_method_get_unsafe_accessor_attr_data (MonoMethod *method, int *accessor_kind, char **member_name, MonoError *error) -{ - MonoCustomAttrInfo *cinfo = mono_custom_attrs_from_method_checked (method, error); - - if (!cinfo) - return FALSE; - - MonoClass *unsafeAccessor = mono_class_try_get_unsafe_accessor_attribute_class (); - MonoCustomAttrEntry *attr = NULL; - - for (int idx = 0; idx < cinfo->num_attrs; ++idx) { - MonoClass *ctor_class = cinfo->attrs [idx].ctor->klass; - if (ctor_class == unsafeAccessor) { - attr = &cinfo->attrs [idx]; - break; - } - } - - if (!attr){ - if (!cinfo->cached) - mono_custom_attrs_free(cinfo); - return FALSE; - } - - MonoDecodeCustomAttr *decoded_args = mono_reflection_create_custom_attr_data_args_noalloc (m_class_get_image (attr->ctor->klass), attr->ctor, attr->data, attr->data_size, error); - - if (!is_ok (error)) { - mono_error_cleanup (error); - mono_reflection_free_custom_attr_data_args_noalloc (decoded_args); - if (!cinfo->cached) - mono_custom_attrs_free(cinfo); - return FALSE; - } - - g_assert (decoded_args->typed_args_num == 1); - *accessor_kind = *(int*)decoded_args->typed_args [0]->value.primitive; - - for (int i = 0; i < decoded_args->named_args_num; ++i) { - if (decoded_args->named_args_info [i].prop && !strcmp (decoded_args->named_args_info [i].prop->name, "Name")) { - const char *ptr = (const char*)decoded_args->named_args [i]->value.primitive; - uint32_t len = mono_metadata_decode_value (ptr, &ptr); - char *name = m_method_alloc0 (method, len + 1); - memcpy (name, ptr, len); - name[len] = 0; - *member_name = (char*)name; - } - } - - mono_reflection_free_custom_attr_data_args_noalloc (decoded_args); - if (!cinfo->cached) - mono_custom_attrs_free(cinfo); - - return TRUE; -} - /** * mono_custom_attrs_from_class: */ diff --git a/src/mono/mono/metadata/loader-internals.h b/src/mono/mono/metadata/loader-internals.h index 994d7d96c2642..18fdb4dcbaabe 100644 --- a/src/mono/mono/metadata/loader-internals.h +++ b/src/mono/mono/metadata/loader-internals.h @@ -88,7 +88,6 @@ typedef struct { GHashTable *cominterop_invoke_cache; GHashTable *cominterop_wrapper_cache; /* LOCKING: marshal lock */ GHashTable *thunk_invoke_cache; - GHashTable *unsafe_accessor_cache; } MonoWrapperCaches; /* Lock-free allocator */ diff --git a/src/mono/mono/metadata/loader.c b/src/mono/mono/metadata/loader.c index 31b5d751bed7f..81209134e6444 100644 --- a/src/mono/mono/metadata/loader.c +++ b/src/mono/mono/metadata/loader.c @@ -2076,8 +2076,8 @@ mono_method_get_header_internal (MonoMethod *method, MonoError *error) g_assert (mono_metadata_token_table (method->token) == MONO_TABLE_METHOD); idx = mono_metadata_token_index (method->token); - if (G_UNLIKELY (img->has_updates)) - loc = mono_metadata_update_get_updated_method_rva (img, idx); + if (G_UNLIKELY (img->has_updates)) + loc = mono_metadata_update_get_updated_method_rva (img, idx); if (!loc) { rva = mono_metadata_decode_row_col (&img->tables [MONO_TABLE_METHOD], idx - 1, MONO_METHOD_RVA); @@ -2100,44 +2100,6 @@ mono_method_get_header_internal (MonoMethod *method, MonoError *error) return mono_metadata_parse_mh_full (img, container, (const char *)loc, error); } -gboolean -mono_method_metadata_has_header (MonoMethod *method) -{ - int idx; - guint32 rva; - MonoImage* img; - gpointer loc = NULL; - - img = m_class_get_image (method->klass); - - if (mono_method_has_no_body (method)) { - return FALSE; - } - - if (method->is_inflated) { - MonoMethodInflated *imethod = (MonoMethodInflated *) method; - return mono_method_metadata_has_header (imethod->declaring); - } - - if (method->wrapper_type != MONO_WRAPPER_NONE || method->sre_method) { - MonoMethodWrapper *mw = (MonoMethodWrapper *)method; - return mw->header != NULL; - } - - g_assert (mono_metadata_token_table (method->token) == MONO_TABLE_METHOD); - idx = mono_metadata_token_index (method->token); - - if (G_UNLIKELY (img->has_updates)) - loc = mono_metadata_update_get_updated_method_rva (img, idx); - - if (!loc) { - rva = mono_metadata_decode_row_col (&img->tables [MONO_TABLE_METHOD], idx - 1, MONO_METHOD_RVA); - loc = mono_image_rva_map (img, rva); - } - - return loc != NULL; -} - MonoMethodHeader* mono_method_get_header_checked (MonoMethod *method, MonoError *error) // Public function that must initialize MonoError for compatibility. diff --git a/src/mono/mono/metadata/marshal-lightweight.c b/src/mono/mono/metadata/marshal-lightweight.c index b4d18d8e0580d..dda7462ca1df3 100644 --- a/src/mono/mono/metadata/marshal-lightweight.c +++ b/src/mono/mono/metadata/marshal-lightweight.c @@ -39,7 +39,6 @@ #include "mono/metadata/handle.h" #include "mono/metadata/custom-attrs-internals.h" #include "mono/metadata/icall-internals.h" -#include "mono/metadata/unsafe-accessor.h" #include "mono/utils/mono-tls.h" #include "mono/utils/mono-memory-model.h" #include "mono/utils/atomic.h" @@ -2320,79 +2319,6 @@ emit_array_accessor_wrapper_ilgen (MonoMethodBuilder *mb, MonoMethod *method, Mo mono_mb_emit_byte (mb, CEE_RET); } -static void -emit_unsafe_accessor_field_wrapper (MonoMethodBuilder *mb, MonoMethod *accessor_method, MonoMethodSignature *sig, MonoGenericContext *ctx, MonoUnsafeAccessorKind kind, const char *member_name) -{ - // Field access requires a single argument for target type and a return type. - g_assert (kind == MONO_UNSAFE_ACCESSOR_FIELD || kind == MONO_UNSAFE_ACCESSOR_STATIC_FIELD); - g_assert (member_name != NULL); - - MonoType *target_type = sig->params[0]; // params[0] is the field's parent - MonoType *ret_type = sig->ret; - if (sig->param_count != 1 || target_type == NULL || sig->ret->type == MONO_TYPE_VOID) { - mono_mb_emit_exception_full (mb, "System", "BadImageFormatException", "Invalid usage of UnsafeAccessorAttribute."); - return; - } - - MonoClass *target_class = mono_class_from_mono_type_internal (target_type); - gboolean target_byref = m_type_is_byref (target_type); - gboolean target_valuetype = m_class_is_valuetype (target_class); - gboolean ret_byref = m_type_is_byref (ret_type); - if (!ret_byref || (kind == MONO_UNSAFE_ACCESSOR_FIELD && target_valuetype && !target_byref)) { - mono_mb_emit_exception_full (mb, "System", "BadImageFormatException", "Invalid usage of UnsafeAccessorAttribute."); - return; - } - - MonoClassField *target_field = mono_class_get_field_from_name_full (target_class, member_name, NULL); - if (target_field == NULL || !mono_metadata_type_equal_full (target_field->type, m_class_get_byval_arg (mono_class_from_mono_type_internal (ret_type)), TRUE)) { - mono_mb_emit_exception_full (mb, "System", "MissingFieldException", - g_strdup_printf("No '%s' in '%s'. Or the type of '%s' doesn't match", member_name, m_class_get_name (target_class), member_name)); - return; - } - gboolean is_field_static = !!(target_field->type->attrs & FIELD_ATTRIBUTE_STATIC); - if ((kind == MONO_UNSAFE_ACCESSOR_FIELD && is_field_static) || (kind == MONO_UNSAFE_ACCESSOR_STATIC_FIELD && !is_field_static)) { - mono_mb_emit_exception_full (mb, "System", "MissingFieldException", g_strdup_printf("UnsafeAccessorKind does not match expected static modifier on field '%s' in '%s'", member_name, m_class_get_name (target_class))); - return; - } - - if (kind == MONO_UNSAFE_ACCESSOR_FIELD) - mono_mb_emit_ldarg (mb, 0); - mono_mb_emit_op (mb, kind == MONO_UNSAFE_ACCESSOR_FIELD ? CEE_LDFLDA : CEE_LDSFLDA, target_field); - mono_mb_emit_byte (mb, CEE_RET); -} - -static void -emit_unsafe_accessor_wrapper_ilgen (MonoMethodBuilder *mb, MonoMethod *accessor_method, MonoMethodSignature *sig, MonoGenericContext *ctx, MonoUnsafeAccessorKind kind, const char *member_name) -{ - if (accessor_method->is_generic) { - mono_mb_emit_exception_full (mb, "System", "NotImplementedException", "UnsafeAccessor_Generics"); - return; - } - - if (!m_method_is_static (accessor_method)) { - mono_mb_emit_exception_full (mb, "System", "BadImageFormatException", "UnsafeAccessor_NonStatic"); - return; - } - - switch (kind) { - case MONO_UNSAFE_ACCESSOR_FIELD: - case MONO_UNSAFE_ACCESSOR_STATIC_FIELD: - emit_unsafe_accessor_field_wrapper (mb, accessor_method, sig, ctx, kind, member_name); - return; - case MONO_UNSAFE_ACCESSOR_CTOR: - // TODO - mono_mb_emit_exception_full (mb, "System", "NotImplementedException", "UnsafeAccessor"); - return; - case MONO_UNSAFE_ACCESSOR_METHOD: - case MONO_UNSAFE_ACCESSOR_STATIC_METHOD: - // TODO - mono_mb_emit_exception_full (mb, "System", "NotImplementedException", "UnsafeAccessor"); - return; - default: - g_assert_not_reached(); // some unknown wrapper kind - } -} - static void emit_generic_array_helper_ilgen (MonoMethodBuilder *mb, MonoMethod *method, MonoMethodSignature *csig) { @@ -3232,7 +3158,6 @@ mono_marshal_lightweight_init (void) cb.emit_synchronized_wrapper = emit_synchronized_wrapper_ilgen; cb.emit_unbox_wrapper = emit_unbox_wrapper_ilgen; cb.emit_array_accessor_wrapper = emit_array_accessor_wrapper_ilgen; - cb.emit_unsafe_accessor_wrapper = emit_unsafe_accessor_wrapper_ilgen; cb.emit_generic_array_helper = emit_generic_array_helper_ilgen; cb.emit_thunk_invoke_wrapper = emit_thunk_invoke_wrapper_ilgen; cb.emit_create_string_hack = emit_create_string_hack_ilgen; diff --git a/src/mono/mono/metadata/marshal.c b/src/mono/mono/metadata/marshal.c index 0e48c3d024664..0307dc16a515a 100644 --- a/src/mono/mono/metadata/marshal.c +++ b/src/mono/mono/metadata/marshal.c @@ -5094,96 +5094,6 @@ mono_marshal_get_array_accessor_wrapper (MonoMethod *method) return res; } -/* - * mono_marshal_get_unsafe_accessor_wrapper: - * - * Return a wrapper for an extern [UnsafeAccessor] method that accesses a member of some class. - * - * member_name can be NULL in which case the name of the member is the same as the name of the accessor method - * - * If the kind is Field or StaticField the accessor_method must have a signature like: - * ref FieldType AccessorMethod (TargetClassOrStruct @this); - * or - * ref FieldType AccessorMethod (ref TargetStruct @this); - * - * If the kind is Method or StaticMethod, the accessor_method must have a signature like: - * ReturnType AccessorMethod (TargetClassOrStruct @this[, FirstArg arg1[, SecondArg arg2[, ...]]]) - * - * where the member method is - * - * class TargetClassOrStruct { - * ReturnType MemberName ([FirstArg arg1[, SecondArg arg2[, ...]]]); - * } - * - * - * or - * ReturnType AccessorMethod (ref TargetStruct @this[, FirstArg arg1[, SecondArg arg2[, ...]]]) - * - * where the member method is - * - * struct TargetStruct { - * ReturnType MemberName ([FirstArg arg1[, SecondArg arg2[, ...]]]); - * } - * - * - * If the kind is Constructor, the accessor_method must have a signature like: - * TargetClass AccessorMethod ([FirstArg arg1[, SecondArg arg2[, ...]]]); - */ -MonoMethod * -mono_marshal_get_unsafe_accessor_wrapper (MonoMethod *accessor_method, MonoUnsafeAccessorKind kind, const char *member_name) -{ - MonoMethodSignature *sig; - MonoMethodBuilder *mb; - MonoMethod *res; - GHashTable *cache; - MonoGenericContext *ctx = NULL; - MonoMethod *orig_method = NULL; - WrapperInfo *info; - - if (member_name == NULL) - member_name = accessor_method->name; - - /* - * Check cache - */ - if (ctx) { - cache = NULL; - g_assert_not_reached (); - } else { - cache = get_cache (&mono_method_get_wrapper_cache (accessor_method)->unsafe_accessor_cache, mono_aligned_addr_hash, NULL); - if ((res = mono_marshal_find_in_cache (cache, accessor_method))) - return res; - } - - sig = mono_metadata_signature_dup_full (get_method_image (accessor_method), mono_method_signature_internal (accessor_method)); - sig->pinvoke = 0; - - mb = mono_mb_new (accessor_method->klass, accessor_method->name, MONO_WRAPPER_OTHER); - - get_marshal_cb ()->mb_skip_visibility (mb); - - get_marshal_cb ()->emit_unsafe_accessor_wrapper (mb, accessor_method, sig, ctx, kind, member_name); - - info = mono_wrapper_info_create (mb, WRAPPER_SUBTYPE_UNSAFE_ACCESSOR); - info->d.unsafe_accessor.method = accessor_method; - info->d.unsafe_accessor.kind = kind; - info->d.unsafe_accessor.member_name = member_name; - - if (ctx) { - MonoMethod *def; - def = mono_mb_create_and_cache_full (cache, accessor_method, mb, sig, sig->param_count + 16, info, NULL); - res = cache_generic_wrapper (cache, orig_method, def, ctx, orig_method); - } else { - res = mono_mb_create_and_cache_full (cache, accessor_method, mb, sig, sig->param_count + 16, info, NULL); - } - mono_mb_free (mb); - - // TODO: remove before merging - mono_method_print_code (res); - - return res; -} - #ifdef HOST_WIN32 static void* @@ -6488,5 +6398,4 @@ mono_wrapper_caches_free (MonoWrapperCaches *cache) free_hash (cache->cominterop_invoke_cache); free_hash (cache->cominterop_wrapper_cache); free_hash (cache->thunk_invoke_cache); - free_hash (cache->unsafe_accessor_cache); } diff --git a/src/mono/mono/metadata/marshal.h b/src/mono/mono/metadata/marshal.h index f78962313783c..9f261cf01a7fc 100644 --- a/src/mono/mono/metadata/marshal.h +++ b/src/mono/mono/metadata/marshal.h @@ -19,7 +19,6 @@ #include #include #include -#include #include #include @@ -136,8 +135,7 @@ typedef enum { WRAPPER_SUBTYPE_INTERP_IN, WRAPPER_SUBTYPE_INTERP_LMF, WRAPPER_SUBTYPE_AOT_INIT, - WRAPPER_SUBTYPE_LLVM_FUNC, - WRAPPER_SUBTYPE_UNSAFE_ACCESSOR, + WRAPPER_SUBTYPE_LLVM_FUNC } WrapperSubtype; typedef struct { @@ -241,12 +239,6 @@ typedef struct { MonoMethodSignature *sig; } NativeFuncWrapperInfo; -typedef struct { - MonoMethod *method; - MonoUnsafeAccessorKind kind; - const char *member_name; /* the member we're accessing */ -} UnsafeAccessorWrapperInfo; - /* * This structure contains additional information to uniquely identify a given wrapper * method. It can be retrieved by mono_marshal_get_wrapper_info () for certain types @@ -293,8 +285,6 @@ typedef struct { LLVMFuncWrapperInfo llvm_func; /* NATIVE_FUNC_INDIRECT */ NativeFuncWrapperInfo native_func; - /* UNSAFE_ACCESSOR */ - UnsafeAccessorWrapperInfo unsafe_accessor; } d; } WrapperInfo; @@ -342,7 +332,6 @@ typedef struct { void (*emit_synchronized_wrapper) (MonoMethodBuilder *mb, MonoMethod *method, MonoGenericContext *ctx, MonoGenericContainer *container, MonoMethod *enter_method, MonoMethod *exit_method, MonoMethod *gettypefromhandle_method); void (*emit_unbox_wrapper) (MonoMethodBuilder *mb, MonoMethod *method); void (*emit_array_accessor_wrapper) (MonoMethodBuilder *mb, MonoMethod *method, MonoMethodSignature *sig, MonoGenericContext *ctx); - void (*emit_unsafe_accessor_wrapper) (MonoMethodBuilder *mb, MonoMethod *accessor_method, MonoMethodSignature *sig, MonoGenericContext *ctx, MonoUnsafeAccessorKind kind, const char *member_name); void (*emit_generic_array_helper) (MonoMethodBuilder *mb, MonoMethod *method, MonoMethodSignature *csig); void (*emit_thunk_invoke_wrapper) (MonoMethodBuilder *mb, MonoMethod *method, MonoMethodSignature *csig); void (*emit_create_string_hack) (MonoMethodBuilder *mb, MonoMethodSignature *csig, MonoMethod *res); @@ -599,9 +588,6 @@ mono_marshal_get_gsharedvt_in_wrapper (void); MonoMethod* mono_marshal_get_gsharedvt_out_wrapper (void); -MonoMethod* -mono_marshal_get_unsafe_accessor_wrapper (MonoMethod *accessor_method, MonoUnsafeAccessorKind kind, const char *member_name); - void mono_marshal_free_dynamic_wrappers (MonoMethod *method); diff --git a/src/mono/mono/metadata/reflection-internals.h b/src/mono/mono/metadata/reflection-internals.h index 01e3d136e0aab..cb8d87a85038c 100644 --- a/src/mono/mono/metadata/reflection-internals.h +++ b/src/mono/mono/metadata/reflection-internals.h @@ -65,8 +65,6 @@ MonoCustomAttrInfo* mono_custom_attrs_from_index_checked (MonoImage *image, uint32_t idx, gboolean ignore_missing, MonoError *error); MONO_COMPONENT_API MonoCustomAttrInfo* mono_custom_attrs_from_method_checked (MonoMethod *method, MonoError *error); -gboolean -mono_method_get_unsafe_accessor_attr_data (MonoMethod *method, int *accessor_kind, char **member_name, MonoError *error); MONO_COMPONENT_API MonoCustomAttrInfo* mono_custom_attrs_from_class_checked (MonoClass *klass, MonoError *error); MONO_COMPONENT_API MonoCustomAttrInfo* diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index ca41c34b4c3ac..c7e2141171c75 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -3841,14 +3841,6 @@ encode_method_ref (MonoAotCompile *acfg, MonoMethod *method, guint8 *buf, guint8 encode_method_ref (acfg, info->d.synchronized_inner.method, p, &p); else if (info->subtype == WRAPPER_SUBTYPE_ARRAY_ACCESSOR) encode_method_ref (acfg, info->d.array_accessor.method, p, &p); - else if (info->subtype == WRAPPER_SUBTYPE_UNSAFE_ACCESSOR) { - encode_method_ref (acfg, info->d.unsafe_accessor.method, p, &p); - encode_value (info->d.unsafe_accessor.kind, p, &p); - /* WISH: is there some kind of string heap token we could use here? */ - uint32_t len = (uint32_t) strlen (info->d.unsafe_accessor.member_name); - encode_value (len, p, &p); - encode_string (info->d.unsafe_accessor.member_name, p, &p); - } else if (info->subtype == WRAPPER_SUBTYPE_INTERP_IN) encode_signature (acfg, info->d.interp_in.sig, p, &p); else if (info->subtype == WRAPPER_SUBTYPE_GSHAREDVT_IN_SIG) @@ -5244,25 +5236,6 @@ add_full_aot_wrappers (MonoAotCompile *acfg) add_method (acfg, mono_marshal_get_ptr_to_struct (klass)); } } - - /* unsafe accessor wrappers */ - rows = table_info_get_rows (&acfg->image->tables [MONO_TABLE_METHOD]); - for (int i = 0; i < rows; ++i) { - ERROR_DECL (error); - token = MONO_TOKEN_METHOD_DEF | (i + 1); - method = mono_get_method_checked (acfg->image, token, NULL, NULL, error); - report_loader_error (acfg, error, TRUE, "Failed to load method token 0x%x due to %s\n", i, mono_error_get_message (error)); - - if (G_LIKELY (mono_method_metadata_has_header (method))) - continue; - - char *member_name = NULL; - int accessor_kind = -1; - if (mono_method_get_unsafe_accessor_attr_data (method, &accessor_kind, &member_name, error)) { - add_extra_method (acfg, mono_marshal_get_unsafe_accessor_wrapper (method, (MonoUnsafeAccessorKind)accessor_kind, member_name)); - } - } - } static void @@ -10181,9 +10154,6 @@ append_mangled_wrapper_subtype (GString *s, WrapperSubtype subtype) case WRAPPER_SUBTYPE_ARRAY_ACCESSOR: label = "array_acc"; break; - case WRAPPER_SUBTYPE_UNSAFE_ACCESSOR: - label = "unsafe_acc"; - break; case WRAPPER_SUBTYPE_GENERIC_ARRAY_HELPER: label = "generic_arry_help"; break; @@ -10350,8 +10320,6 @@ append_mangled_wrapper (GString *s, MonoMethod *method) success = success && append_mangled_method (s, info->d.synchronized_inner.method); else if (info->subtype == WRAPPER_SUBTYPE_ARRAY_ACCESSOR) success = success && append_mangled_method (s, info->d.array_accessor.method); - else if (info->subtype == WRAPPER_SUBTYPE_UNSAFE_ACCESSOR) - success = success && append_mangled_method (s, info->d.unsafe_accessor.method); else if (info->subtype == WRAPPER_SUBTYPE_INTERP_IN) append_mangled_signature (s, info->d.interp_in.sig); else if (info->subtype == WRAPPER_SUBTYPE_GSHAREDVT_IN_SIG) { diff --git a/src/mono/mono/mini/aot-runtime.c b/src/mono/mono/mini/aot-runtime.c index 86c70dba38862..e6c0904e65b79 100644 --- a/src/mono/mono/mini/aot-runtime.c +++ b/src/mono/mono/mini/aot-runtime.c @@ -1066,15 +1066,6 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod if (!m) return FALSE; ref->method = mono_marshal_get_array_accessor_wrapper (m); - } else if (subtype == WRAPPER_SUBTYPE_UNSAFE_ACCESSOR) { - MonoMethod *m = decode_resolve_method_ref (module, p, &p, error); - if (!m) - return FALSE; - MonoUnsafeAccessorKind kind = (MonoUnsafeAccessorKind) decode_value (p, &p); - uint32_t name_len = decode_value (p, &p); - const char *member_name = (const char*)p; - p += name_len + 1; - ref->method = mono_marshal_get_unsafe_accessor_wrapper (m, kind, member_name); } else if (subtype == WRAPPER_SUBTYPE_GSHAREDVT_IN) { ref->method = mono_marshal_get_gsharedvt_in_wrapper (); } else if (subtype == WRAPPER_SUBTYPE_GSHAREDVT_OUT) { diff --git a/src/mono/mono/mini/interp/transform.c b/src/mono/mono/mini/interp/transform.c index bc52e37f2dd21..32c9b2e3468a8 100644 --- a/src/mono/mono/mini/interp/transform.c +++ b/src/mono/mono/mini/interp/transform.c @@ -11419,13 +11419,6 @@ mono_interp_transform_method (InterpMethod *imethod, ThreadContext *context, Mon return_if_nok (error); } - int accessor_kind = -1; - char *member_name = NULL; - if (!header && mono_method_get_unsafe_accessor_attr_data (method, &accessor_kind, &member_name, error)) { - method = mono_marshal_get_unsafe_accessor_wrapper (method, (MonoUnsafeAccessorKind)accessor_kind, member_name); - g_assert (method); - } - if (!header) { header = mono_method_get_header_checked (method, error); return_if_nok (error); diff --git a/src/mono/mono/mini/mini-runtime.c b/src/mono/mono/mini/mini-runtime.c index 1d01a77fb3c14..933b6f8b48db6 100644 --- a/src/mono/mono/mini/mini-runtime.c +++ b/src/mono/mono/mini/mini-runtime.c @@ -2649,22 +2649,6 @@ compile_special (MonoMethod *method, MonoError *error) } } - gboolean has_header = mono_method_metadata_has_header (method); - if (G_UNLIKELY (!has_header)) { - char *member_name = NULL; - int accessor_kind = -1; - if (mono_method_get_unsafe_accessor_attr_data (method, &accessor_kind, &member_name, error)) { - MonoMethod *wrapper = mono_marshal_get_unsafe_accessor_wrapper (method, (MonoUnsafeAccessorKind)accessor_kind, member_name); - gpointer compiled_wrapper = mono_jit_compile_method_jit_only (wrapper, error); - return_val_if_nok (error, NULL); - code = mono_get_addr_from_ftnptr (compiled_wrapper); - jinfo = mini_jit_info_table_find (code); - if (jinfo) - MONO_PROFILER_RAISE (jit_done, (method, jinfo)); - return code; - } - } - return NULL; } diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index 44b2f3bdf7895..f54f37b7e0778 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -239,8 +239,6 @@ $(TargetOS)-$(TargetArchitecture) HelloiOS true + $(OutputPath)/publish static true @@ -46,7 +47,8 @@ - $(CoreCLRCrossILCompilerDir) + $([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'coreclr', '$(TargetOS).$(TargetArchitecture).$(CoreCLRConfiguration)', '$(BuildArchitecture)' ,'ilc')) + $(IlcPath) $(CoreCLRAotSdkDir) $(LibrariesAllBinArtifactsPath) $(LibrariesAllBinArtifactsPath) @@ -58,7 +60,7 @@ DependsOnTargets="IlcCompile;CopyFilesToPublishDirectory"> - $(MSBuildThisFileDirectory)$(OutputPath)\Bundle + $(MSBuildThisFileDirectory)$(PublishDir)\app True false adhoc @@ -89,7 +91,7 @@ InvariantGlobalization="$(InvariantGlobalization)" EnableAppSandbox="$(EnableAppSandbox)" StripSymbolTable="$(StripDebugSymbols)" - AppDir="$(MSBuildThisFileDirectory)$(OutputPath)" + AppDir="$(MSBuildThisFileDirectory)$(PublishDir)" ExtraLinkerArguments="@(ExtraLinkerArguments)" > diff --git a/src/mono/sample/iOS/Makefile b/src/mono/sample/iOS/Makefile index a11c280d58ccc..93d015549db20 100644 --- a/src/mono/sample/iOS/Makefile +++ b/src/mono/sample/iOS/Makefile @@ -53,7 +53,6 @@ run-sim: clean appbuilder /p:TargetOS=iossimulator \ /p:TargetArchitecture=$(MONO_ARCH) \ /p:MonoEnableLLVM=$(USE_LLVM) \ - /p:MonoForceInterpreter=false \ /p:DeployAndRun=$(DEPLOY_AND_RUN) \ /p:RuntimeComponents="$(RUNTIME_COMPONENTS)" \ /p:DiagnosticPorts="$(DIAGNOSTIC_PORTS)" \ @@ -77,7 +76,6 @@ run-catalyst: clean appbuilder /p:TargetOS=maccatalyst \ /p:TargetArchitecture=$(MONO_ARCH) \ /p:MonoEnableLLVM=false \ - /p:MonoForceInterpreter=false \ /p:DeployAndRun=$(DEPLOY_AND_RUN) \ /p:EnableAppSandbox=$(APP_SANDBOX) \ /bl @@ -87,7 +85,7 @@ run-catalyst-interp: clean appbuilder -c $(MONO_CONFIG) \ /p:TargetOS=maccatalyst \ /p:TargetArchitecture=$(MONO_ARCH) \ - /p:MonoEnableLLVM=false \ + /p:MonoEnableLLVM=False \ /p:MonoForceInterpreter=true \ /p:DeployAndRun=$(DEPLOY_AND_RUN) \ /p:EnableAppSandbox=$(APP_SANDBOX) \ diff --git a/src/mono/sample/wasm/browser-webpack/Wasm.Browser.WebPack.Sample.csproj b/src/mono/sample/wasm/browser-webpack/Wasm.Browser.WebPack.Sample.csproj index 10a01beae6eda..0459f5119b71e 100644 --- a/src/mono/sample/wasm/browser-webpack/Wasm.Browser.WebPack.Sample.csproj +++ b/src/mono/sample/wasm/browser-webpack/Wasm.Browser.WebPack.Sample.csproj @@ -1,7 +1,6 @@ false - ./ @@ -10,18 +9,18 @@ - - - - - + + + + diff --git a/src/mono/sample/wasm/browser-webpack/package-lock.json b/src/mono/sample/wasm/browser-webpack/package-lock.json index 462faf67c8fac..30385f0b26c8b 100644 --- a/src/mono/sample/wasm/browser-webpack/package-lock.json +++ b/src/mono/sample/wasm/browser-webpack/package-lock.json @@ -11,175 +11,547 @@ "underscore": "1.13.2" }, "devDependencies": { - "webpack": "5.88.1", - "webpack-cli": "5.1.4" + "webpack": "5.76.0", + "webpack-cli": "4.9.1" } }, - "bin/dotnet-runtime": { + "../../../../../artifacts/bin/microsoft.netcore.app.runtime.browser-wasm/Debug/runtimes/browser-wasm/native": { "name": "@microsoft/dotnet-runtime", - "version": "8.0.0-dev", + "version": "7.0.0-dev", + "extraneous": true, "license": "MIT", "devDependencies": { - "@rollup/plugin-terser": "0.4.3", - "@rollup/plugin-typescript": "11.1.2", - "@rollup/plugin-virtual": "3.0.1", - "@typescript-eslint/eslint-plugin": "5.59.1", - "@typescript-eslint/parser": "5.59.1", - "eslint": "8.44.0", - "fast-glob": "3.3.0", - "git-commit-info": "2.0.2", - "magic-string": "0.30.1", - "rollup": "3.26.2", - "rollup-plugin-dts": "5.3.0", - "terser": "5.19.0", - "tslib": "2.6.0", - "typescript": "5.1.6" - } - }, - "bin/dotnet-runtime/node_modules/rollup-plugin-dts": { - "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-dts/-/rollup-plugin-dts-5.3.0.tgz", - "integrity": "sha1-gKlZiAAvGI43b22zt+L1NnkWiVc=", - "dev": true, - "license": "LGPL-3.0", + "@rollup/plugin-typescript": "8.2.5", + "@typescript-eslint/eslint-plugin": "4.31.2", + "@typescript-eslint/parser": "4.31.2", + "eslint": "7.32.0", + "rollup": "2.56.3", + "rollup-plugin-consts": "1.0.2", + "rollup-plugin-dts": "4.0.0", + "rollup-plugin-terser": "7.0.2", + "tslib": "2.3.1", + "typescript": "4.4.3" + } + }, + "bin/dotnet-runtime": { + "name": "@microsoft/dotnet-runtime", + "version": "0.0.1", "dependencies": { - "magic-string": "^0.30.0" + "@rollup/plugin-typescript": "8.3.3", + "@typescript-eslint/eslint-plugin": "5.30.7", + "@typescript-eslint/parser": "5.30.7", + "eslint": "8.20.0", + "fast-glob": "3.2.11", + "rollup": "2.77.0", + "rollup-plugin-consts": "1.1.0", + "rollup-plugin-dts": "4.2.2", + "rollup-plugin-terser": "7.0.2", + "terser": "5.14.2", + "tslib": "2.4.0", + "typescript": "4.7.4" + } + }, + "bin/dotnet-runtime/node_modules/@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha1-KfksMLs+dx5KIEjJX6aFU5LfrE8=", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "bin/dotnet-runtime/node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha1-LLr5qJRg2iS1ymUxuLv8I+HfUMc=", + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "bin/dotnet-runtime/node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.7.tgz", + "integrity": "sha1-FiHavBrkCEMQ4Z6e/IDf27l+dJM=", + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/type-utils": "5.30.7", + "@typescript-eslint/utils": "5.30.7", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=v14" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/Swatinem" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, - "optionalDependencies": { - "@babel/code-frame": "^7.18.6" + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "bin/dotnet-runtime/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.30.7.tgz", + "integrity": "sha1-VpPcPbbzE/MCdkKC1hTP28ip/P0=", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "5.30.7", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "rollup": "^3.0.0", - "typescript": "^4.1 || ^5.0" + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha1-vZFUrsmYP3ezoDTsqgFcLkIB9s8=", - "dev": true, + "bin/dotnet-runtime/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.30.7.tgz", + "integrity": "sha1-cTW+BwNJ6ffKomKwylnclhIzUbs=", "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha1-HVcr+74Ut3BOC6Dzm3SBW4SHDXA=", - "dev": true, + "bin/dotnet-runtime/node_modules/@typescript-eslint/parser": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.30.7.tgz", + "integrity": "sha1-mdCXKTkq7J5ksd5FzWPLgaTd2YA=", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "bin/dotnet-runtime/node_modules/@typescript-eslint/scope-manager": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.30.7.tgz", + "integrity": "sha1-gmmpMe8eWuaLXrgHQ8xRXE/+Pdc=", "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7" + }, "engines": { - "node": ">=10.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha1-ojUU6Pua8SadX3eIqlVnmNYca1k=", - "dev": true, + "bin/dotnet-runtime/node_modules/@typescript-eslint/types": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.30.7.tgz", + "integrity": "sha1-GDMUh8yS0PH7Gm9YDI7IMlKAedA=", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "bin/dotnet-runtime/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.7.tgz", + "integrity": "sha1-BdqfGygZhb/tz2I0mEf40WjuzAc=", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "bin/dotnet-runtime/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.7.tgz", + "integrity": "sha1-wJOrrnW0/YIr+62fwzfzinoUkJo=", "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "5.30.7", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "bin/dotnet-runtime/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", + "license": "Python-2.0" + }, + "bin/dotnet-runtime/node_modules/eslint": { + "version": "8.20.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.20.0.tgz", + "integrity": "sha1-BIrFaqGFKZZ9qDVKR4vk7AoryBs=", + "license": "MIT", + "dependencies": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "bin/dotnet-runtime/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha1-9kgPprHzDv4tGWiqisdFuGJGmCY=", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "bin/dotnet-runtime/node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha1-//NIlML2XlIm0wQaxIC0UToWNkI=", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "bin/dotnet-runtime/node_modules/espree": { + "version": "9.3.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.3.3.tgz", + "integrity": "sha1-LdN8QWK7BfQzrTwaUt34pJ3Ajp0=", + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "bin/dotnet-runtime/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "bin/dotnet-runtime/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "bin/dotnet-runtime/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha1-bTusj6f+DUXZ+b57rC/CeVd+NFo=", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "bin/dotnet-runtime/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "node": ">=4" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha1-zdNdzk+hqJpP1CsVmes1s69AiIQ=", + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.6", "dev": true, "license": "MIT", "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=10.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha1-giVvFkzJ4LWWae/BnVf4CScGhB0=", - "dev": true, - "license": "MIT", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "peer": true, "dependencies": { "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.44.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha1-lhpZA8dBOTkEeL3ICLzeP8Rat68=", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha1-Wj/+MsyTBjZfs/1XJZbNYC1eEtI=", - "dev": true, - "license": "Apache-2.0", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "peer": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", - "minimatch": "^3.0.5" + "minimatch": "^3.0.4" }, "engines": { "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", - "dev": true, - "license": "BSD-3-Clause" + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha1-fgLm6135AartsIUUIDsJZhQCQJg=", - "dev": true, + "version": "0.3.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha1-wa7cYehT8rufXf5tRELTtWWyU7k=", "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", @@ -194,7 +566,6 @@ "version": "3.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha1-IgOxGMFXchrd/mnUe3BGVGMGbXg=", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -204,17 +575,15 @@ "version": "1.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha1-fGz5mNbSC5FMClWpGuko/yWWXnI=", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha1-o7tNXGglqrDSgSaPR/atWFNDHpE=", - "dev": true, + "version": "0.3.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha1-9FNRqu1FJ6KYUS7HL4EEDJmFgPs=", "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -225,18 +594,16 @@ "version": "1.4.14", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", "integrity": "sha1-rdTJjTQUcqKJGQtCTvvbCWmRuyQ=", - "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha1-JXg7IIba9v8dy1PJJJrkgOTdTNY=", - "dev": true, + "version": "0.3.14", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha1-sjGggdj2Z5bkda1Yih70cxEnAe0=", "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "node_modules/@microsoft/dotnet-runtime": { @@ -245,10 +612,8 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -259,20 +624,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -281,101 +642,54 @@ "node": ">= 8" } }, - "node_modules/@rollup/plugin-terser": { - "version": "0.4.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-terser/-/plugin-terser-0.4.3.tgz", - "integrity": "sha1-wr3i/jqF5F+mikVNSPTnPlf5izA=", - "dev": true, - "license": "MIT", - "dependencies": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^2.x || ^3.x" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, "node_modules/@rollup/plugin-typescript": { - "version": "11.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-typescript/-/plugin-typescript-11.1.2.tgz", - "integrity": "sha1-CetWkKZQuwM0v4QSW86avSlkQuQ=", - "dev": true, + "version": "8.3.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", + "integrity": "sha1-7uftq5z8Bk8c/RZXBJJpPPFDIhU=", "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "resolve": "^1.22.1" + "@rollup/pluginutils": "^3.1.0", + "resolve": "^1.17.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=8.0.0" }, "peerDependencies": { - "rollup": "^2.14.0||^3.0.0", + "rollup": "^2.14.0", "tslib": "*", "typescript": ">=3.7.0" }, "peerDependenciesMeta": { - "rollup": { - "optional": true - }, "tslib": { "optional": true } } }, - "node_modules/@rollup/plugin-virtual": { - "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz", - "integrity": "sha1-zqfkiUgcwMqRUWwEf4xTwc+xrfY=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, "node_modules/@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha1-ASuPU8ceT2+csxfjEd8UBPVuejM=", - "dev": true, - "license": "MIT", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" }, "engines": { - "node": ">=14.0.0" + "node": ">= 8.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } + "rollup": "^1.20.0||^2.0.0" } }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, "node_modules/@types/eslint": { - "version": "8.44.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha1-VYGOq7N24icvd/v1yWxDE3w8HlM=", + "version": "8.21.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/eslint/-/eslint-8.21.2.tgz", + "integrity": "sha1-K2G0OosOZgBoVqKkyOUfb3c+rSc=", "dev": true, "license": "MIT", "dependencies": { @@ -386,306 +700,81 @@ "node_modules/@types/eslint-scope": { "version": "3.7.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha1-N/wSI/B4bDlicGihLpTW5vxh3hY=", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha1-qiJ1CWLzvw5511PTzAZ/AQyV8ZQ=", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha1-1w+rpwOdX8pUyDx9urQQUdK29ss=", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.4.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/node/-/node-20.4.2.tgz", - "integrity": "sha1-EpzJrmn5OCT5L6xlPuv7SBKrSvk=", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha1-WRwc46cCxF7hX0ekKt5ywv14l4o=", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", - "integrity": "sha1-mwnuFUG/8dLOvcuH585KQAOs3gg=", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/type-utils": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.59.1.tgz", - "integrity": "sha1-c8LBISfFwRgtLltxqPoqhdIVy7Q=", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", - "integrity": "sha1-iiAiJxnOvFGYYYpdRBE3BbUf1/4=", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", - "integrity": "sha1-Y5gdYWhP0k7aL58IwKR+ywAKIRE=", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.59.1.tgz", - "integrity": "sha1-A/P+3RwETLM268NMx4VfEhmR9B0=", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", - "integrity": "sha1-SqVG0n/Q1HfGGPDKALSD8OyExDw=", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.59.1.tgz", - "integrity": "sha1-2J/HWK0j0hV8+uU/C0Kb3xXblHM=", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", - "integrity": "sha1-DZbDbvtlYNf7jrhd4QRCwQ2PYFg=", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.1", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "integrity": "sha1-N/wSI/B4bDlicGihLpTW5vxh3hY=", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" } }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha1-z9cJJKJaP9MrIY5eQg5ol+GsT0A=", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "17.0.5", + "license": "MIT" + }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha1-2wRlVdPEE/iWbKUKlRdqDixkLiQ=", + "version": "1.11.1", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha1-2svLla/xNcgmD3f6O0xf6mAKZDE=", + "version": "1.11.1", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha1-YTL2jErNWdzRQcRLGMvrvZ8vp2g=", + "version": "1.11.1", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha1-tm1zxD4pb9XogAbxhST+sPLHwJM=", + "version": "1.11.1", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha1-y85efgwb0yz0kFrkRO9kzqkZ8bU=", + "version": "1.11.1", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha1-uy69s7g6om2bqtTEbUMVKDrNUek=", + "version": "1.11.1", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha1-/5fzhjxV7n9YD9XEGjgene9KpXc=", + "version": "1.11.1", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha1-u2ZckdCxT//OsOOCmMMprwQ8bjo=", + "version": "1.11.1", "dev": true, "license": "MIT", "dependencies": { @@ -693,9 +782,7 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha1-cOYOXoL5rIERi8JTgaCyg4kyQNc=", + "version": "1.11.1", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -703,122 +790,96 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha1-kPi8NMVhWV/hVmA75yU8280Pq1o=", + "version": "1.11.1", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha1-xy+oIgUkybQWJJ89lMKVjf5wzqs=", + "version": "1.11.1", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha1-+1KD4Oi0VRzE6cPA1xhKZfr3wmg=", + "version": "1.11.1", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha1-2aItZRJIQiykmLCaoyMqgQQUh8I=", + "version": "1.11.1", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha1-u4U3jFJ9+CQASBK723hO6lORdKE=", + "version": "1.11.1", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha1-p7+N1+NirrFmj/Q/NcuEnxiO/yA=", + "version": "1.11.1", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha1-Oy+FLpHaxuO4X7KjFPuL70bZRkY=", + "version": "1.1.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=14.15.0" - }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha1-zD+/Iu/riP9iMQz4hcWwn0SuD90=", + "version": "1.4.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=14.15.0" + "dependencies": { + "envinfo": "^7.7.3" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack-cli": "4.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha1-Ml20I5XNSf5sFAV/mpAOQn34gQ4=", + "version": "1.6.0", "dev": true, "license": "MIT", - "engines": { - "node": ">=14.15.0" - }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "webpack-cli": "4.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -828,23 +889,18 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", "dev": true, "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", "dev": true, "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha1-i+WzkHpnIhqBqyPHiJxMVSa2LsU=", - "dev": true, + "version": "8.8.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha1-iMAYdiBDXH9gFYA/VTna4Fqdvqg=", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -854,9 +910,7 @@ } }, "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha1-UHJ2JJ1oR5fITgc074SGAzTPsaw=", + "version": "1.8.0", "dev": true, "license": "MIT", "peerDependencies": { @@ -865,19 +919,14 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -892,30 +941,33 @@ }, "node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", "dev": true, "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, @@ -927,35 +979,40 @@ } }, "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", - "dev": true, - "license": "Python-2.0" + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "peer": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "peer": true, "engines": { "node": ">=8" } }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -963,10 +1020,8 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/braces/-/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dependencies": { "fill-range": "^7.0.1" }, @@ -975,82 +1030,52 @@ } }, "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha1-4RvdPDE9fiqeh+i0sMeHKxOJdjU=", + "version": "4.19.1", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" } }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=", - "dev": true, "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001515", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", - "integrity": "sha1-QYrv7tnQJM0xKb+uDMx4LUy48Ss=", + "version": "1.0.30001292", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" + "license": "CC-BY-4.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1064,10 +1089,8 @@ }, "node_modules/chalk/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { "has-flag": "^4.0.0" }, @@ -1077,8 +1100,6 @@ }, "node_modules/chrome-trace-event": { "version": "1.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", "dev": true, "license": "MIT", "engines": { @@ -1087,8 +1108,6 @@ }, "node_modules/clone-deep": { "version": "4.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", "dev": true, "license": "MIT", "dependencies": { @@ -1102,10 +1121,8 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, @@ -1115,37 +1132,25 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha1-nreT5oMwZ/cjWQL807CZF6AAqVo=", + "version": "2.0.16", "dev": true, "license": "MIT" }, "node_modules/commander": { "version": "2.20.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/commander/-/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true, "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/cross-spawn": { "version": "7.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -1160,7 +1165,6 @@ "version": "4.3.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz", "integrity": "sha1-Exn2V5NX8jONMzfSzdSRS7XcyGU=", - "dev": true, "license": "MIT", "dependencies": { "ms": "2.1.2" @@ -1176,17 +1180,13 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dependencies": { "path-type": "^4.0.0" }, @@ -1196,10 +1196,8 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", - "dev": true, - "license": "Apache-2.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dependencies": { "esutils": "^2.0.2" }, @@ -1208,26 +1206,20 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.460", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/electron-to-chromium/-/electron-to-chromium-1.4.460.tgz", - "integrity": "sha1-82ClBZwDnEpftN+ploCtgSndn4Q=", + "version": "1.4.28", "dev": true, "license": "ISC" }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "peer": true }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha1-GvlGx9k2A+uI6Yls7kkE3AEunDU=", + "version": "5.12.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha1-MA4ckCKPW1cMTTW6vyY/bacVVjQ=", "dev": true, "license": "MIT", "dependencies": { @@ -1238,10 +1230,20 @@ "node": ">=10.13.0" } }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "peer": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/envinfo": { - "version": "7.10.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha1-VRRuOQnMX+Y8Itpj+xWwWurDWxM=", + "version": "7.8.1", "dev": true, "license": "MIT", "bin": { @@ -1252,16 +1254,12 @@ } }, "node_modules/es-module-lexer": { - "version": "1.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha1-a+nJ4LRUOmDNFm/2+LTp2uCwwW8=", + "version": "0.9.3", "dev": true, "license": "MIT" }, "node_modules/escalade": { "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", "dev": true, "license": "MIT", "engines": { @@ -1270,10 +1268,8 @@ }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "engines": { "node": ">=10" }, @@ -1282,57 +1278,57 @@ } }, "node_modules/eslint": { - "version": "8.44.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha1-USRuOImyWbvNHX1zagwQrdTw5QA=", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "peer": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.3.2", + "debug": "^4.0.1", "doctrine": "^3.0.0", + "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", - "esquery": "^1.4.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.0.4", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^10.12.0 || >=12.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1340,9 +1336,6 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -1352,135 +1345,107 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha1-wixI9IlC0IyoJMxSYhGuQAR4qZQ=", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha1-8h69r9oCNS8QNjS5bdR9n4HKEXs=", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "eslint-visitor-keys": "^2.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", - "dev": true, - "license": "BSD-2-Clause", + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "engines": { - "node": ">=4.0" + "node": ">=10" } }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", - "dev": true, - "license": "MIT", + "node_modules/eslint/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "peer": true, "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, + "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "peer": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/eslint/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", - "dev": true, - "license": "MIT", + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "peer": true, "dependencies": { - "yocto-queue": "^0.1.0" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "peer": true, + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.4.0" } }, - "node_modules/espree": { - "version": "9.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.0.tgz", - "integrity": "sha1-gIaXVLHGVg8y47aSkZSj/gfFuC8=", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, - "funding": { - "url": "https://opencollective.com/eslint" + "engines": { + "node": ">=4" } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha1-bOF3ON6Fd2lO3XNhxXGCrIyw2ws=", - "dev": true, - "license": "BSD-3-Clause", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dependencies": { "estraverse": "^5.1.0" }, @@ -1490,19 +1455,14 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", - "dev": true, - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -1513,9 +1473,6 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -1523,35 +1480,26 @@ }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=", - "dev": true, - "license": "MIT" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "dev": true, - "license": "BSD-2-Clause", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "engines": { "node": ">=0.10.0" } }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/events/-/events-3.3.0.tgz", - "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", "dev": true, "license": "MIT", "engines": { @@ -1559,20 +1507,18 @@ } }, "node_modules/execa": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/execa/-/execa-4.1.0.tgz", - "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", + "version": "5.1.1", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" }, "engines": { @@ -1584,16 +1530,12 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true, "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha1-fEDLSR4eLtVmR0noe/tRbb6HJ8A=", - "dev": true, + "version": "3.2.11", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha1-oRcq2VzrihbiDKpcXlZIDlEpwdk=", "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1606,59 +1548,32 @@ "node": ">=8.6.0" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha1-IQ5htv8YHekeqbPRuE/e3UfgNOU=", + "version": "1.0.12", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } + "license": "MIT" }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha1-0E0HxqKmj+RZn+qNLhA6k3+uazo=", - "dev": true, - "license": "ISC", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dependencies": { "flat-cache": "^3.0.4" }, @@ -1668,10 +1583,8 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1681,8 +1594,6 @@ }, "node_modules/find-up": { "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "dev": true, "license": "MIT", "dependencies": { @@ -1695,10 +1606,8 @@ }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -1708,25 +1617,20 @@ } }, "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha1-YJ85IHy2FLidB2W0d8stQ3+/l4c=", - "dev": true, - "license": "ISC" + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==" }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { "version": "2.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -1737,50 +1641,33 @@ }, "node_modules/function-bind": { "version": "1.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true, "license": "MIT" }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "version": "6.0.1", "dev": true, "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/git-commit-info": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/git-commit-info/-/git-commit-info-2.0.2.tgz", - "integrity": "sha1-XrAre34zk+zq+6KsIH3l2ceMzxs=", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^4.0.3", - "is-git-repository": "^1.1.1", - "path-is-absolute": "^1.0.1" - } - }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob/-/glob-7.2.3.tgz", - "integrity": "sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=", - "dev": true, - "license": "ISC", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -1792,16 +1679,14 @@ } }, "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", - "dev": true, - "license": "ISC", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dependencies": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 6" } }, "node_modules/glob-to-regexp": { @@ -1812,10 +1697,9 @@ "license": "BSD-2-Clause" }, "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.20.0.tgz", - "integrity": "sha1-6idqHlCP/U8WEoiPnRutHicXv4I=", - "dev": true, + "version": "13.17.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.17.0.tgz", + "integrity": "sha1-kC6x5oCkHak5Ra29y1qfNhumm9Q=", "license": "MIT", "dependencies": { "type-fest": "^0.20.2" @@ -1831,7 +1715,6 @@ "version": "11.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globby/-/globby-11.1.0.tgz", "integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=", - "dev": true, "license": "MIT", "dependencies": { "array-union": "^2.1.0", @@ -1848,32 +1731,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globby/node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=", + "version": "4.2.10", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha1-FH06AG2kyjzhRyjHrvwofDZ9emw=", "dev": true, "license": "ISC" }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha1-nPOmZcYkdHmJaDSvNc8du0QAdn4=", - "dev": true, - "license": "MIT" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha1-+y8dVeDjoYSa7/yQxPoN1ToOZsY=", - "dev": true, - "license": "MIT" - }, "node_modules/has": { "version": "1.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has/-/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1" @@ -1884,40 +1758,32 @@ }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/human-signals": { - "version": "1.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "version": "2.1.0", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=8.12.0" + "node": ">=10.17.0" } }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha1-opHAxheP8blgvv5H/N7DAWdKYyQ=", - "dev": true, - "license": "MIT", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "peer": true, "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -1931,18 +1797,14 @@ }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "engines": { "node": ">=4" } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha1-tEed+KX9RPbNziQHBnVnYGPJXLQ=", + "version": "3.0.3", "dev": true, "license": "MIT", "dependencies": { @@ -1954,27 +1816,20 @@ }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1982,26 +1837,19 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha1-W+DO7WfKecbEvFzw1+6EPc6hEMQ=", + "version": "2.2.0", "dev": true, "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">= 0.10" } }, "node_modules/is-core-module": { - "version": "2.12.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha1-DAtohbb4ABHHFUHOFcjWbPWk+f0=", - "dev": true, + "version": "2.8.0", "license": "MIT", "dependencies": { "has": "^1.0.3" @@ -2012,159 +1860,25 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-git-repository": { - "version": "1.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-git-repository/-/is-git-repository-1.1.1.tgz", - "integrity": "sha1-xo5LeoBkIjSarsSIlzqQVY1+m+A=", - "dev": true, - "license": "MIT", - "dependencies": { - "execa": "^0.6.1", - "path-is-absolute": "^1.0.1" - } - }, - "node_modules/is-git-repository/node_modules/cross-spawn": { - "version": "5.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "license": "MIT", - "dependencies": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "node_modules/is-git-repository/node_modules/execa": { - "version": "0.6.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/execa/-/execa-0.6.3.tgz", - "integrity": "sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4=", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-git-repository/node_modules/get-stream": { + "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-git-repository/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-git-repository/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", - "dev": true, - "license": "ISC", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/is-git-repository/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-git-repository/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/is-git-repository/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-git-repository/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-git-repository/node_modules/which": { - "version": "1.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" + "node": ">=8" } }, - "node_modules/is-git-repository/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true, - "license": "ISC" - }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { "is-extglob": "^2.1.1" }, @@ -2174,28 +1888,14 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { "node": ">=0.12.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "license": "MIT", "dependencies": { @@ -2207,8 +1907,6 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", "dev": true, "license": "MIT", "engines": { @@ -2220,15 +1918,10 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true, "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "license": "MIT", "engines": { @@ -2236,9 +1929,7 @@ } }, "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha1-jRRvCQDolzsQa29zzB6ajLhvjbA=", + "version": "27.4.5", "dev": true, "license": "MIT", "dependencies": { @@ -2250,14 +1941,19 @@ "node": ">= 10.13.0" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", - "dev": true, - "license": "MIT", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, "dependencies": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -2272,22 +1968,15 @@ }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "node_modules/kind-of": { "version": "6.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", "dev": true, "license": "MIT", "engines": { @@ -2296,10 +1985,8 @@ }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/levn/-/levn-0.4.1.tgz", - "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -2309,9 +1996,7 @@ } }, "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha1-wbShY7mfYUgwNTsWdV5xSawjFOE=", + "version": "4.2.0", "dev": true, "license": "MIT", "engines": { @@ -2320,8 +2005,6 @@ }, "node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", "dev": true, "license": "MIT", "dependencies": { @@ -2333,17 +2016,19 @@ }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "peer": true }, "node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "dev": true, - "license": "ISC", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dependencies": { "yallist": "^4.0.0" }, @@ -2352,60 +2037,43 @@ } }, "node_modules/magic-string": { - "version": "0.30.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/magic-string/-/magic-string-0.30.1.tgz", - "integrity": "sha1-zlzUsKgaXQMr1pqrRSIpmyFmKE0=", - "dev": true, + "version": "0.26.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha1-UzFwDkFYzWvv2nOLtrDHuTwNRDI=", "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "sourcemap-codec": "^1.4.8" }, "engines": { "node": ">=12" } }, - "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha1-18bmdVx4VnqVHgSrUu8P0m3lnzI=", - "dev": true, - "license": "MIT" - }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", - "dev": true, "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha1-vImZp8u/d83InxMvbkZwUbSQkMY=", - "dev": true, - "license": "MIT", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "braces": "^3.0.1", + "picomatch": "^2.2.3" }, "engines": { "node": ">=8.6" } }, "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha1-u6vNwChZ9JhzAchW4zh85exDv3A=", + "version": "1.51.0", "dev": true, "license": "MIT", "engines": { @@ -2413,13 +2081,11 @@ } }, "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha1-OBqHG2KnNEUGYK497uRIE/cNlZo=", + "version": "2.1.34", "dev": true, "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "1.51.0" }, "engines": { "node": ">= 0.6" @@ -2427,8 +2093,6 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", "dev": true, "license": "MIT", "engines": { @@ -2439,7 +2103,6 @@ "version": "3.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -2450,43 +2113,26 @@ }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true, - "license": "MIT" - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha1-F7CVgZiJef3a/gIB6TG6kzyWy7Q=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", "dev": true, "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha1-1e0WJ8I+NGHoGbAuV7deSJmxyB0=", + "version": "2.0.1", "dev": true, "license": "MIT" }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", "dev": true, "license": "MIT", "dependencies": { @@ -2498,18 +2144,14 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", "dev": true, "license": "MIT", "dependencies": { @@ -2523,37 +2165,23 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha1-AHOX1E7Rhy/cbtMTYBkPgYFOLGQ=", - "dev": true, - "license": "MIT", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", "dev": true, "license": "MIT", "dependencies": { @@ -2568,8 +2196,6 @@ }, "node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", "dev": true, "license": "MIT", "dependencies": { @@ -2581,8 +2207,6 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", "dev": true, "license": "MIT", "engines": { @@ -2591,10 +2215,8 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dependencies": { "callsites": "^3.0.0" }, @@ -2604,8 +2226,6 @@ }, "node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", "dev": true, "license": "MIT", "engines": { @@ -2614,19 +2234,14 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2634,34 +2249,25 @@ }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", - "dev": true, "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "engines": { "node": ">=8" } }, "node_modules/picocolors": { "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha1-O6ODNzNkbZ0+SZWUbBNlpn+wekI=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "engines": { "node": ">=8.6" }, @@ -2671,8 +2277,6 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", "dev": true, "license": "MIT", "dependencies": { @@ -2684,37 +2288,23 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "engines": { "node": ">= 0.8.0" } }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true, - "license": "ISC" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pump/-/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "peer": true, + "engines": { + "node": ">=0.4.0" } }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha1-9n+mfJTaj00M//mBruQRgGQZm48=", - "dev": true, + "node_modules/punycode": { + "version": "2.1.1", "license": "MIT", "engines": { "node": ">=6" @@ -2722,9 +2312,8 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", - "dev": true, + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "funding": [ { "type": "github", @@ -2738,45 +2327,52 @@ "type": "consulting", "url": "https://feross.org/support" } - ], - "license": "MIT" + ] }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha1-Sfhm4NMhRhQto62PDv81KzIV/yI=", + "version": "0.7.1", "dev": true, "license": "MIT", "dependencies": { - "resolve": "^1.20.0" + "resolve": "^1.9.0" }, "engines": { - "node": ">= 10.13.0" + "node": ">= 0.10" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "peer": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha1-DtCUPU4wGGeVV2bJ8+GubQHGhF8=", - "dev": true, + "version": "1.20.0", "license": "MIT", "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2784,8 +2380,6 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha1-DwB18bslRHZs9zumpuKt/ryxPy0=", "dev": true, "license": "MIT", "dependencies": { @@ -2797,8 +2391,6 @@ }, "node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", "dev": true, "license": "MIT", "engines": { @@ -2807,10 +2399,8 @@ }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -2818,10 +2408,8 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "dev": true, - "license": "ISC", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dependencies": { "glob": "^7.1.3" }, @@ -2833,27 +2421,113 @@ } }, "node_modules/rollup": { - "version": "3.26.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup/-/rollup-3.26.2.tgz", - "integrity": "sha1-LnajdgbLUj/J/vQ+b1nJP4bZXnw=", - "dev": true, + "version": "2.77.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup/-/rollup-2.77.0.tgz", + "integrity": "sha1-dJ6qWsCba6pSrMB2vEZhPt39U/Q=", "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" + "node": ">=10.0.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-consts": { + "version": "1.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-consts/-/rollup-plugin-consts-1.1.0.tgz", + "integrity": "sha1-EL2UBh1+LW4G0BWAaIYLo8E3W7w=", + "license": "Apache-2.0", + "peerDependencies": { + "rollup": ">=1.15.0 <3" + } + }, + "node_modules/rollup-plugin-dts": { + "version": "4.2.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", + "integrity": "sha1-godrh4QhOvKbAs8mC0XkBP+DXOE=", + "license": "LGPL-3.0", + "dependencies": { + "magic-string": "^0.26.1" + }, + "engines": { + "node": ">=v12.22.11" + }, + "funding": { + "url": "https://github.com/sponsors/Swatinem" + }, + "optionalDependencies": { + "@babel/code-frame": "^7.16.7" + }, + "peerDependencies": { + "rollup": "^2.55", + "typescript": "^4.1" + } + }, + "node_modules/rollup-plugin-dts/node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "optional": true, + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", - "dev": true, + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "funding": [ { "type": "github", @@ -2868,16 +2542,12 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-buffer": { "version": "5.2.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true, "funding": [ { "type": "github", @@ -2895,9 +2565,7 @@ "license": "MIT" }, "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha1-9QqIh3w8AWUqFbYirp6Xld96YP4=", + "version": "3.1.1", "dev": true, "license": "MIT", "dependencies": { @@ -2914,10 +2582,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.5.4.tgz", - "integrity": "sha1-SDmG7E7TjhxsSMNIlKkYLb/2im4=", - "dev": true, + "version": "7.3.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.3.7.tgz", + "integrity": "sha1-EsW2Sa/b+QSXB3luIqQCiBTOUj8=", "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -2930,9 +2597,7 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha1-sgbvsnw9oLCra1L0jRcLeZZFjlw=", + "version": "6.0.0", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -2941,8 +2606,6 @@ }, "node_modules/shallow-clone": { "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", "dev": true, "license": "MIT", "dependencies": { @@ -2954,9 +2617,6 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -2967,43 +2627,43 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha1-qaF2f4r4QVURTqq9c/mSc8j1mtk=", + "version": "3.0.6", "dev": true, "license": "ISC" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/slash/-/slash-3.0.0.tgz", - "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "engines": { "node": ">=8" } }, - "node_modules/smob": { - "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/smob/-/smob-1.4.0.tgz", - "integrity": "sha1-rJdR/lSx/B/IKGpijU5/gkJzuVo=", - "dev": true, - "license": "MIT" + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -3011,42 +2671,51 @@ }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha1-BP58f54e0tZiIzwoyys1ufY/bk8=", - "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, - "license": "MIT", + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=", + "license": "MIT" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "peer": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, "dependencies": { - "ansi-regex": "^5.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "license": "MIT", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", "dev": true, "license": "MIT", "engines": { @@ -3055,10 +2724,8 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "engines": { "node": ">=8" }, @@ -3068,8 +2735,6 @@ }, "node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", "dev": true, "license": "MIT", "dependencies": { @@ -3082,19 +2747,44 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha1-btpL00SjyUrqN21MwxvHcxEDngk=", - "dev": true, - "license": "MIT", + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "peer": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">= 0.4" + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tapable/-/tapable-2.2.1.tgz", @@ -3106,14 +2796,13 @@ } }, "node_modules/terser": { - "version": "5.19.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser/-/terser-5.19.0.tgz", - "integrity": "sha1-ezE3sBImvdF5l4IHucgUh1Sm2pw=", - "dev": true, + "version": "5.14.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser/-/terser-5.14.2.tgz", + "integrity": "sha1-msnyKwaZTXNhdPQJGqNo24lvHBA=", "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -3125,17 +2814,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha1-gyU2mZxRtG1GgGf543Zio7lq3+E=", + "version": "5.3.0", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", + "jest-worker": "^27.4.1", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" }, "engines": { "node": ">= 10.13.0" @@ -3161,17 +2848,13 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dependencies": { "is-number": "^7.0.0" }, @@ -3180,18 +2863,15 @@ } }, "node_modules/tslib": { - "version": "2.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha1-spWFRoTb2hZOGB0lmiLNd53Ne8M=", - "dev": true, + "version": "2.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha1-fOyqfwc85oCgWEeqd76UEJjzbcM=", "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dependencies": { "tslib": "^1.8.1" }, @@ -3204,17 +2884,13 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", - "dev": true, - "license": "0BSD" + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", - "dev": true, - "license": "MIT", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -3224,10 +2900,8 @@ }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", - "dev": true, - "license": "(MIT OR CC0-1.0)", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "engines": { "node": ">=10" }, @@ -3236,66 +2910,35 @@ } }, "node_modules/typescript": { - "version": "5.1.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha1-AvisICttrSwN1eCRN0W0ejeZgnQ=", - "dev": true, + "version": "4.7.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha1-GohZbRz0fVlQehvN+1ud/k1IgjU=", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=14.17" + "node": ">=4.2.0" } }, "node_modules/underscore": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", - "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==", - "license": "MIT" - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha1-mipkGtKQeuezYWUG9Ll3hR21uUA=", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/watchpack/-/watchpack-2.4.0.tgz", @@ -3311,23 +2954,23 @@ } }, "node_modules/webpack": { - "version": "5.88.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack/-/webpack-5.88.1.tgz", - "integrity": "sha1-IeugHoG9Xt/xlorqcm4vv9VX0/g=", + "version": "5.76.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack/-/webpack-5.76.0.tgz", + "integrity": "sha1-+fufuMSn29zQ1WqY5WuKlC7iaSw=", "dev": true, "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -3336,9 +2979,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^3.1.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", + "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -3359,43 +3002,39 @@ } }, "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha1-yOBGun6q5JEdfnHislt3b8w1dZs=", + "version": "4.9.1", "dev": true, "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", + "@webpack-cli/configtest": "^1.1.0", + "@webpack-cli/info": "^1.4.0", + "@webpack-cli/serve": "^1.6.0", "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", + "commander": "^7.0.0", + "execa": "^5.0.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", "webpack-merge": "^5.7.3" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" + "node": ">=10.13.0" }, "peerDependencies": { - "webpack": "5.x.x" + "webpack": "4.x.x || 5.x.x" }, "peerDependenciesMeta": { "@webpack-cli/generators": { "optional": true }, + "@webpack-cli/migrate": { + "optional": true + }, "webpack-bundle-analyzer": { "optional": true }, @@ -3405,19 +3044,15 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/commander/-/commander-10.0.1.tgz", - "integrity": "sha1-iB7ka0930cHczFgjQzqjmwIsvgY=", + "version": "7.2.0", "dev": true, "license": "MIT", "engines": { - "node": ">=14" + "node": ">= 10" } }, "node_modules/webpack-merge": { - "version": "5.9.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-merge/-/webpack-merge-5.9.0.tgz", - "integrity": "sha1-3BYKHEz1Es7KUVzCMWaendsTOCY=", + "version": "5.8.0", "dev": true, "license": "MIT", "dependencies": { @@ -3430,19 +3065,15 @@ }, "node_modules/webpack-sources": { "version": "3.2.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha1-LU2quEUf1LJAzCcFX/agwszqDN4=", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -3455,119 +3086,145 @@ } }, "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha1-WrENAkhxmJVINrY0n3T/+WHhD2c=", + "version": "2.0.0", "dev": true, "license": "MIT" }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "license": "ISC" + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/yallist": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true, - "license": "ISC" - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } }, "dependencies": { - "@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha1-vZFUrsmYP3ezoDTsqgFcLkIB9s8=", - "dev": true + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "requires": { + "@babel/highlight": "^7.10.4" + } }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha1-HVcr+74Ut3BOC6Dzm3SBW4SHDXA=", - "dev": true + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha1-ojUU6Pua8SadX3eIqlVnmNYca1k=", - "dev": true, + "@babel/highlight": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", + "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", "requires": { - "eslint-visitor-keys": "^3.3.0" + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } } }, - "@eslint-community/regexpp": { - "version": "4.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", - "integrity": "sha1-zdNdzk+hqJpP1CsVmes1s69AiIQ=", + "@discoveryjs/json-ext": { + "version": "0.5.6", "dev": true }, "@eslint/eslintrc": { - "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", - "integrity": "sha1-giVvFkzJ4LWWae/BnVf4CScGhB0=", - "dev": true, + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "peer": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } }, - "@eslint/js": { - "version": "8.44.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.44.0.tgz", - "integrity": "sha1-lhpZA8dBOTkEeL3ICLzeP8Rat68=", - "dev": true - }, "@humanwhocodes/config-array": { - "version": "0.11.10", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", - "integrity": "sha1-Wj/+MsyTBjZfs/1XJZbNYC1eEtI=", - "dev": true, + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "peer": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", - "minimatch": "^3.0.5" + "minimatch": "^3.0.4" } }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=", - "dev": true - }, "@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", - "dev": true + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" }, "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha1-fgLm6135AartsIUUIDsJZhQCQJg=", - "dev": true, + "version": "0.3.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha1-wa7cYehT8rufXf5tRELTtWWyU7k=", "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3577,20 +3234,17 @@ "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha1-IgOxGMFXchrd/mnUe3BGVGMGbXg=", - "dev": true + "integrity": "sha1-IgOxGMFXchrd/mnUe3BGVGMGbXg=" }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha1-fGz5mNbSC5FMClWpGuko/yWWXnI=", - "dev": true + "integrity": "sha1-fGz5mNbSC5FMClWpGuko/yWWXnI=" }, "@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha1-o7tNXGglqrDSgSaPR/atWFNDHpE=", - "dev": true, + "version": "0.3.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha1-9FNRqu1FJ6KYUS7HL4EEDJmFgPs=", "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -3599,55 +3253,254 @@ "@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha1-rdTJjTQUcqKJGQtCTvvbCWmRuyQ=", - "dev": true + "integrity": "sha1-rdTJjTQUcqKJGQtCTvvbCWmRuyQ=" }, "@jridgewell/trace-mapping": { - "version": "0.3.18", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", - "integrity": "sha1-JXg7IIba9v8dy1PJJJrkgOTdTNY=", - "dev": true, + "version": "0.3.14", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha1-sjGggdj2Z5bkda1Yih70cxEnAe0=", "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@microsoft/dotnet-runtime": { "version": "file:bin/dotnet-runtime", "requires": { - "@rollup/plugin-terser": "0.4.3", - "@rollup/plugin-typescript": "11.1.2", - "@rollup/plugin-virtual": "3.0.1", - "@typescript-eslint/eslint-plugin": "5.59.1", - "@typescript-eslint/parser": "5.59.1", - "eslint": "8.44.0", - "fast-glob": "3.3.0", - "git-commit-info": "2.0.2", - "magic-string": "0.30.1", - "rollup": "3.26.2", - "rollup-plugin-dts": "5.3.0", - "terser": "5.19.0", - "tslib": "2.6.0", - "typescript": "5.1.6" - }, - "dependencies": { - "rollup-plugin-dts": { + "@rollup/plugin-typescript": "8.3.3", + "@typescript-eslint/eslint-plugin": "5.30.7", + "@typescript-eslint/parser": "5.30.7", + "eslint": "8.20.0", + "fast-glob": "3.2.11", + "rollup": "2.77.0", + "rollup-plugin-consts": "1.1.0", + "rollup-plugin-dts": "4.2.2", + "rollup-plugin-terser": "7.0.2", + "terser": "5.14.2", + "tslib": "2.4.0", + "typescript": "4.7.4" + }, + "dependencies": { + "@eslint/eslintrc": { + "version": "1.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha1-KfksMLs+dx5KIEjJX6aFU5LfrE8=", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha1-LLr5qJRg2iS1ymUxuLv8I+HfUMc=", + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.7.tgz", + "integrity": "sha1-FiHavBrkCEMQ4Z6e/IDf27l+dJM=", + "requires": { + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/type-utils": "5.30.7", + "@typescript-eslint/utils": "5.30.7", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "@typescript-eslint/type-utils": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.30.7.tgz", + "integrity": "sha1-VpPcPbbzE/MCdkKC1hTP28ip/P0=", + "requires": { + "@typescript-eslint/utils": "5.30.7", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.30.7.tgz", + "integrity": "sha1-cTW+BwNJ6ffKomKwylnclhIzUbs=", + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + } + } + }, + "@typescript-eslint/parser": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.30.7.tgz", + "integrity": "sha1-mdCXKTkq7J5ksd5FzWPLgaTd2YA=", + "requires": { + "@typescript-eslint/scope-manager": "5.30.7", + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/typescript-estree": "5.30.7", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.30.7.tgz", + "integrity": "sha1-gmmpMe8eWuaLXrgHQ8xRXE/+Pdc=", + "requires": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7" + } + }, + "@typescript-eslint/types": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.30.7.tgz", + "integrity": "sha1-GDMUh8yS0PH7Gm9YDI7IMlKAedA=" + }, + "@typescript-eslint/typescript-estree": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.7.tgz", + "integrity": "sha1-BdqfGygZhb/tz2I0mEf40WjuzAc=", + "requires": { + "@typescript-eslint/types": "5.30.7", + "@typescript-eslint/visitor-keys": "5.30.7", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.30.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.7.tgz", + "integrity": "sha1-wJOrrnW0/YIr+62fwzfzinoUkJo=", + "requires": { + "@typescript-eslint/types": "5.30.7", + "eslint-visitor-keys": "^3.3.0" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=" + }, + "eslint": { + "version": "8.20.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.20.0.tgz", + "integrity": "sha1-BIrFaqGFKZZ9qDVKR4vk7AoryBs=", + "requires": { + "@eslint/eslintrc": "^1.3.0", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha1-//NIlML2XlIm0wQaxIC0UToWNkI=", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha1-9kgPprHzDv4tGWiqisdFuGJGmCY=" + }, + "espree": { + "version": "9.3.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.3.3.tgz", + "integrity": "sha1-LdN8QWK7BfQzrTwaUt34pJ3Ajp0=", + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "estraverse": { "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-dts/-/rollup-plugin-dts-5.3.0.tgz", - "integrity": "sha1-gKlZiAAvGI43b22zt+L1NnkWiVc=", - "dev": true, + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=" + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", + "requires": { + "is-glob": "^4.0.3" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha1-bTusj6f+DUXZ+b57rC/CeVd+NFo=" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", "requires": { - "@babel/code-frame": "^7.18.6", - "magic-string": "^0.30.0" + "argparse": "^2.0.1" } } } }, "@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", - "dev": true, + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3655,63 +3508,48 @@ }, "@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", - "dev": true + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" }, "@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", - "dev": true, + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, - "@rollup/plugin-terser": { - "version": "0.4.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-terser/-/plugin-terser-0.4.3.tgz", - "integrity": "sha1-wr3i/jqF5F+mikVNSPTnPlf5izA=", - "dev": true, - "requires": { - "serialize-javascript": "^6.0.1", - "smob": "^1.0.0", - "terser": "^5.17.4" - } - }, "@rollup/plugin-typescript": { - "version": "11.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-typescript/-/plugin-typescript-11.1.2.tgz", - "integrity": "sha1-CetWkKZQuwM0v4QSW86avSlkQuQ=", - "dev": true, + "version": "8.3.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", + "integrity": "sha1-7uftq5z8Bk8c/RZXBJJpPPFDIhU=", "requires": { - "@rollup/pluginutils": "^5.0.1", - "resolve": "^1.22.1" + "@rollup/pluginutils": "^3.1.0", + "resolve": "^1.17.0" } }, - "@rollup/plugin-virtual": { - "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz", - "integrity": "sha1-zqfkiUgcwMqRUWwEf4xTwc+xrfY=", - "dev": true, - "requires": {} - }, "@rollup/pluginutils": { - "version": "5.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", - "integrity": "sha1-ASuPU8ceT2+csxfjEd8UBPVuejM=", - "dev": true, + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", "requires": { - "@types/estree": "^1.0.0", - "estree-walker": "^2.0.2", - "picomatch": "^2.3.1" + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + } } }, "@types/eslint": { - "version": "8.44.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha1-VYGOq7N24icvd/v1yWxDE3w8HlM=", + "version": "8.21.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/eslint/-/eslint-8.21.2.tgz", + "integrity": "sha1-K2G0OosOZgBoVqKkyOUfb3c+rSc=", "dev": true, "requires": { "@types/estree": "*", @@ -3729,332 +3567,176 @@ } }, "@types/estree": { - "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha1-qiJ1CWLzvw5511PTzAZ/AQyV8ZQ=", + "version": "0.0.51", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha1-z9cJJKJaP9MrIY5eQg5ol+GsT0A=", "dev": true }, "@types/json-schema": { - "version": "7.0.12", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha1-1w+rpwOdX8pUyDx9urQQUdK29ss=", - "dev": true + "version": "7.0.9" }, "@types/node": { - "version": "20.4.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/node/-/node-20.4.2.tgz", - "integrity": "sha1-EpzJrmn5OCT5L6xlPuv7SBKrSvk=", - "dev": true - }, - "@types/semver": { - "version": "7.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha1-WRwc46cCxF7hX0ekKt5ywv14l4o=", - "dev": true - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", - "integrity": "sha1-mwnuFUG/8dLOvcuH585KQAOs3gg=", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/type-utils": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.59.1.tgz", - "integrity": "sha1-c8LBISfFwRgtLltxqPoqhdIVy7Q=", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", - "integrity": "sha1-iiAiJxnOvFGYYYpdRBE3BbUf1/4=", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", - "integrity": "sha1-Y5gdYWhP0k7aL58IwKR+ywAKIRE=", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.59.1.tgz", - "integrity": "sha1-A/P+3RwETLM268NMx4VfEhmR9B0=", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", - "integrity": "sha1-SqVG0n/Q1HfGGPDKALSD8OyExDw=", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.59.1.tgz", - "integrity": "sha1-2J/HWK0j0hV8+uU/C0Kb3xXblHM=", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", - "integrity": "sha1-DZbDbvtlYNf7jrhd4QRCwQ2PYFg=", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.1", - "eslint-visitor-keys": "^3.3.0" - } + "version": "17.0.5" }, "@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha1-2wRlVdPEE/iWbKUKlRdqDixkLiQ=", + "version": "1.11.1", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha1-2svLla/xNcgmD3f6O0xf6mAKZDE=", + "version": "1.11.1", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha1-YTL2jErNWdzRQcRLGMvrvZ8vp2g=", + "version": "1.11.1", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha1-tm1zxD4pb9XogAbxhST+sPLHwJM=", + "version": "1.11.1", "dev": true }, "@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha1-y85efgwb0yz0kFrkRO9kzqkZ8bU=", + "version": "1.11.1", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha1-uy69s7g6om2bqtTEbUMVKDrNUek=", + "version": "1.11.1", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha1-/5fzhjxV7n9YD9XEGjgene9KpXc=", + "version": "1.11.1", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, "@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha1-u2ZckdCxT//OsOOCmMMprwQ8bjo=", + "version": "1.11.1", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha1-cOYOXoL5rIERi8JTgaCyg4kyQNc=", + "version": "1.11.1", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha1-kPi8NMVhWV/hVmA75yU8280Pq1o=", + "version": "1.11.1", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha1-xy+oIgUkybQWJJ89lMKVjf5wzqs=", + "version": "1.11.1", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha1-+1KD4Oi0VRzE6cPA1xhKZfr3wmg=", + "version": "1.11.1", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha1-2aItZRJIQiykmLCaoyMqgQQUh8I=", + "version": "1.11.1", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha1-u4U3jFJ9+CQASBK723hO6lORdKE=", + "version": "1.11.1", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, "@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha1-p7+N1+NirrFmj/Q/NcuEnxiO/yA=", + "version": "1.11.1", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, "@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha1-Oy+FLpHaxuO4X7KjFPuL70bZRkY=", + "version": "1.1.0", "dev": true, "requires": {} }, "@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha1-zD+/Iu/riP9iMQz4hcWwn0SuD90=", + "version": "1.4.0", "dev": true, - "requires": {} + "requires": { + "envinfo": "^7.7.3" + } }, "@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha1-Ml20I5XNSf5sFAV/mpAOQn34gQ4=", + "version": "1.6.0", "dev": true, "requires": {} }, "@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", "dev": true }, "@xtuc/long": { "version": "4.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", "dev": true }, "acorn": { - "version": "8.10.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha1-i+WzkHpnIhqBqyPHiJxMVSa2LsU=", - "dev": true + "version": "8.8.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha1-iMAYdiBDXH9gFYA/VTna4Fqdvqg=" }, "acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha1-UHJ2JJ1oR5fITgc074SGAzTPsaw=", + "version": "1.8.0", "dev": true, "requires": {} }, "acorn-jsx": { "version": "5.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", - "dev": true, + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "requires": {} }, "ajv": { "version": "6.12.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", - "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4064,49 +3746,57 @@ }, "ajv-keywords": { "version": "3.5.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", "dev": true, "requires": {} }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "peer": true + }, "ansi-regex": { "version": "5.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", - "dev": true + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", - "dev": true, + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "requires": { "color-convert": "^2.0.1" } }, "argparse": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", - "dev": true + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "peer": true, + "requires": { + "sprintf-js": "~1.0.2" + } }, "array-union": { "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", - "dev": true + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "peer": true }, "balanced-match": { "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", - "dev": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", - "dev": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4114,48 +3804,39 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/braces/-/braces-3.0.2.tgz", - "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", - "dev": true, + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { "fill-range": "^7.0.1" } }, "browserslist": { - "version": "4.21.9", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha1-4RvdPDE9fiqeh+i0sMeHKxOJdjU=", + "version": "4.19.1", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001286", + "electron-to-chromium": "^1.4.17", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" } }, "buffer-from": { - "version": "1.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=", - "dev": true + "version": "1.1.2" }, "callsites": { "version": "3.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", - "dev": true + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "caniuse-lite": { - "version": "1.0.30001515", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", - "integrity": "sha1-QYrv7tnQJM0xKb+uDMx4LUy48Ss=", + "version": "1.0.30001292", "dev": true }, "chalk": { "version": "4.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", - "dev": true, + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4163,9 +3844,8 @@ "dependencies": { "supports-color": { "version": "7.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", - "dev": true, + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "requires": { "has-flag": "^4.0.0" } @@ -4174,14 +3854,10 @@ }, "chrome-trace-event": { "version": "1.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", "dev": true }, "clone-deep": { "version": "4.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", "dev": true, "requires": { "is-plain-object": "^2.0.4", @@ -4191,42 +3867,31 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", - "dev": true, + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", - "dev": true + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colorette": { - "version": "2.0.20", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha1-nreT5oMwZ/cjWQL807CZF6AAqVo=", + "version": "2.0.16", "dev": true }, "commander": { - "version": "2.20.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/commander/-/commander-2.20.3.tgz", - "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", - "dev": true + "version": "2.20.3" }, "concat-map": { "version": "0.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "cross-spawn": { "version": "7.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", - "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4237,367 +3902,306 @@ "version": "4.3.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz", "integrity": "sha1-Exn2V5NX8jONMzfSzdSRS7XcyGU=", - "dev": true, "requires": { "ms": "2.1.2" } }, "deep-is": { "version": "0.1.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", - "dev": true + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" }, "dir-glob": { "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", - "dev": true, + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "requires": { "path-type": "^4.0.0" } }, "doctrine": { "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", - "dev": true, + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "requires": { "esutils": "^2.0.2" } }, "electron-to-chromium": { - "version": "1.4.460", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/electron-to-chromium/-/electron-to-chromium-1.4.460.tgz", - "integrity": "sha1-82ClBZwDnEpftN+ploCtgSndn4Q=", + "version": "1.4.28", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", - "dev": true, - "requires": { - "once": "^1.4.0" - } + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "peer": true }, "enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha1-GvlGx9k2A+uI6Yls7kkE3AEunDU=", + "version": "5.12.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha1-MA4ckCKPW1cMTTW6vyY/bacVVjQ=", "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "peer": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, "envinfo": { - "version": "7.10.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/envinfo/-/envinfo-7.10.0.tgz", - "integrity": "sha1-VRRuOQnMX+Y8Itpj+xWwWurDWxM=", + "version": "7.8.1", "dev": true }, "es-module-lexer": { - "version": "1.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/es-module-lexer/-/es-module-lexer-1.3.0.tgz", - "integrity": "sha1-a+nJ4LRUOmDNFm/2+LTp2uCwwW8=", + "version": "0.9.3", "dev": true }, "escalade": { "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", "dev": true }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", - "dev": true + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, "eslint": { - "version": "8.44.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.44.0.tgz", - "integrity": "sha1-USRuOImyWbvNHX1zagwQrdTw5QA=", - "dev": true, + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "peer": true, "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.1.0", - "@eslint/js": "8.44.0", - "@humanwhocodes/config-array": "^0.11.10", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.3.2", + "debug": "^4.0.1", "doctrine": "^3.0.0", + "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.6.0", - "esquery": "^1.4.2", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", + "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", + "minimatch": "^3.0.4", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { - "eslint-scope": { - "version": "7.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha1-8h69r9oCNS8QNjS5bdR9n4HKEXs=", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", - "dev": true - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", - "dev": true, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "peer": true, "requires": { - "p-limit": "^3.0.2" + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "peer": true + } } } } }, "eslint-scope": { "version": "5.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", - "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, "eslint-visitor-keys": { - "version": "3.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", - "integrity": "sha1-wixI9IlC0IyoJMxSYhGuQAR4qZQ=", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" }, "espree": { - "version": "9.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.0.tgz", - "integrity": "sha1-gIaXVLHGVg8y47aSkZSj/gfFuC8=", - "dev": true, + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "peer": true, "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "peer": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "peer": true + } } }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "peer": true + }, "esquery": { - "version": "1.5.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha1-bOF3ON6Fd2lO3XNhxXGCrIyw2ws=", - "dev": true, + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", - "dev": true + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" } } }, "esrecurse": { "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", - "dev": true, "requires": { "estraverse": "^5.2.0" }, "dependencies": { "estraverse": { - "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", - "dev": true + "version": "5.3.0" } } }, "estraverse": { - "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", - "dev": true + "version": "4.3.0" }, "estree-walker": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=", - "dev": true + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" }, "esutils": { "version": "2.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", - "dev": true + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "events": { "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/events/-/events-3.3.0.tgz", - "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", "dev": true }, "execa": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/execa/-/execa-4.1.0.tgz", - "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", + "version": "5.1.1", "dev": true, "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" } }, "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", - "dev": true + "version": "3.1.3" }, "fast-glob": { - "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.0.tgz", - "integrity": "sha1-fEDLSR4eLtVmR0noe/tRbb6HJ8A=", - "dev": true, + "version": "3.2.11", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha1-oRcq2VzrihbiDKpcXlZIDlEpwdk=", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } } }, "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", - "dev": true + "version": "2.1.0" }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha1-IQ5htv8YHekeqbPRuE/e3UfgNOU=", + "version": "1.0.12", "dev": true }, "fastq": { - "version": "1.15.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha1-0E0HxqKmj+RZn+qNLhA6k3+uazo=", - "dev": true, + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "requires": { "reusify": "^1.0.4" } }, "file-entry-cache": { "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", - "dev": true, + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "requires": { "flat-cache": "^3.0.4" } }, "fill-range": { "version": "7.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", - "dev": true, + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { "to-regex-range": "^5.0.1" } }, "find-up": { "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -4606,80 +4210,60 @@ }, "flat-cache": { "version": "3.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", - "dev": true, + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" } }, "flatted": { - "version": "3.2.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha1-YJ85IHy2FLidB2W0d8stQ3+/l4c=", - "dev": true + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==" }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", - "dev": true, + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", - "dev": true - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", - "dev": true, - "requires": { - "pump": "^3.0.0" - } + "version": "1.1.1" }, - "git-commit-info": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/git-commit-info/-/git-commit-info-2.0.2.tgz", - "integrity": "sha1-XrAre34zk+zq+6KsIH3l2ceMzxs=", - "dev": true, - "requires": { - "execa": "^4.0.3", - "is-git-repository": "^1.1.1", - "path-is-absolute": "^1.0.1" - } + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "get-stream": { + "version": "6.0.1", + "dev": true }, "glob": { - "version": "7.2.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob/-/glob-7.2.3.tgz", - "integrity": "sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=", - "dev": true, + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { - "version": "6.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", - "dev": true, + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" } }, "glob-to-regexp": { @@ -4689,10 +4273,9 @@ "dev": true }, "globals": { - "version": "13.20.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.20.0.tgz", - "integrity": "sha1-6idqHlCP/U8WEoiPnRutHicXv4I=", - "dev": true, + "version": "13.17.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.17.0.tgz", + "integrity": "sha1-kC6x5oCkHak5Ra29y1qfNhumm9Q=", "requires": { "type-fest": "^0.20.2" } @@ -4701,7 +4284,6 @@ "version": "11.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globby/-/globby-11.1.0.tgz", "integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=", - "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -4709,58 +4291,44 @@ "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" + }, + "dependencies": { + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + } } }, "graceful-fs": { - "version": "4.2.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha1-nPOmZcYkdHmJaDSvNc8du0QAdn4=", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha1-+y8dVeDjoYSa7/yQxPoN1ToOZsY=", + "version": "4.2.10", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha1-FH06AG2kyjzhRyjHrvwofDZ9emw=", "dev": true }, "has": { "version": "1.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has/-/has-1.0.3.tgz", - "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", - "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-flag": { - "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", - "dev": true + "version": "4.0.0" }, "human-signals": { - "version": "1.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "version": "2.1.0", "dev": true }, "ignore": { - "version": "5.2.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha1-opHAxheP8blgvv5H/N7DAWdKYyQ=", - "dev": true + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "peer": true }, "import-fresh": { "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", - "dev": true, + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -4768,16 +4336,13 @@ "dependencies": { "resolve-from": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", - "dev": true + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" } } }, "import-local": { - "version": "3.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha1-tEed+KX9RPbNziQHBnVnYGPJXLQ=", + "version": "3.0.3", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -4786,15 +4351,13 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" }, "inflight": { "version": "1.0.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -4802,161 +4365,45 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", - "dev": true + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "interpret": { - "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha1-W+DO7WfKecbEvFzw1+6EPc6hEMQ=", + "version": "2.2.0", "dev": true }, "is-core-module": { - "version": "2.12.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha1-DAtohbb4ABHHFUHOFcjWbPWk+f0=", - "dev": true, + "version": "2.8.0", "requires": { "has": "^1.0.3" } }, "is-extglob": { "version": "2.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, - "is-git-repository": { - "version": "1.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-git-repository/-/is-git-repository-1.1.1.tgz", - "integrity": "sha1-xo5LeoBkIjSarsSIlzqQVY1+m+A=", - "dev": true, - "requires": { - "execa": "^0.6.1", - "path-is-absolute": "^1.0.1" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.6.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/execa/-/execa-0.6.3.tgz", - "integrity": "sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-1.3.1.tgz", - "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "peer": true }, "is-glob": { "version": "4.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", - "dev": true, + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "requires": { "is-extglob": "^2.1.1" } }, "is-number": { "version": "7.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", - "dev": true + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-plain-object": { "version": "2.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { "isobject": "^3.0.1" @@ -4964,26 +4411,17 @@ }, "is-stream": { "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", "dev": true }, "isexe": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "version": "2.0.0" }, "isobject": { "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "jest-worker": { - "version": "27.5.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha1-jRRvCQDolzsQa29zzB6ajLhvjbA=", + "version": "27.4.5", "dev": true, "requires": { "@types/node": "*", @@ -4991,13 +4429,19 @@ "supports-color": "^8.0.0" } }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, "js-yaml": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", - "dev": true, + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "peer": true, "requires": { - "argparse": "^2.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "json-parse-even-better-errors": { @@ -5007,43 +4451,32 @@ "dev": true }, "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", - "dev": true + "version": "0.4.1" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" }, "kind-of": { "version": "6.0.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", "dev": true }, "levn": { "version": "0.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/levn/-/levn-0.4.1.tgz", - "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", - "dev": true, + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "loader-runner": { - "version": "4.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha1-wbShY7mfYUgwNTsWdV5xSawjFOE=", + "version": "4.2.0", "dev": true }, "locate-path": { "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", "dev": true, "requires": { "p-locate": "^4.1.0" @@ -5051,122 +4484,91 @@ }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", - "dev": true + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "peer": true }, "lru-cache": { "version": "6.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", - "dev": true, + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { "yallist": "^4.0.0" } }, "magic-string": { - "version": "0.30.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/magic-string/-/magic-string-0.30.1.tgz", - "integrity": "sha1-zlzUsKgaXQMr1pqrRSIpmyFmKE0=", - "dev": true, + "version": "0.26.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha1-UzFwDkFYzWvv2nOLtrDHuTwNRDI=", "requires": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha1-18bmdVx4VnqVHgSrUu8P0m3lnzI=", - "dev": true - } + "sourcemap-codec": "^1.4.8" } }, "merge-stream": { - "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", - "dev": true + "version": "2.0.0" }, "merge2": { "version": "1.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", - "dev": true + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "micromatch": { - "version": "4.0.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha1-vImZp8u/d83InxMvbkZwUbSQkMY=", - "dev": true, + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "braces": "^3.0.1", + "picomatch": "^2.2.3" } }, "mime-db": { - "version": "1.52.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha1-u6vNwChZ9JhzAchW4zh85exDv3A=", + "version": "1.51.0", "dev": true }, "mime-types": { - "version": "2.1.35", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha1-OBqHG2KnNEUGYK497uRIE/cNlZo=", + "version": "2.1.34", "dev": true, "requires": { - "mime-db": "1.52.0" + "mime-db": "1.51.0" } }, "mimic-fn": { "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", "dev": true }, "minimatch": { "version": "3.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "ms": { "version": "2.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz", - "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", - "dev": true + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "natural-compare": { "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha1-F7CVgZiJef3a/gIB6TG6kzyWy7Q=", - "dev": true + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" }, "neo-async": { "version": "2.6.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", "dev": true }, "node-releases": { - "version": "2.0.13", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha1-1e0WJ8I+NGHoGbAuV7deSJmxyB0=", + "version": "2.0.1", "dev": true }, "npm-run-path": { "version": "4.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", "dev": true, "requires": { "path-key": "^3.0.0" @@ -5174,46 +4576,34 @@ }, "once": { "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/once/-/once-1.4.0.tgz", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } }, "onetime": { "version": "5.1.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "optionator": { - "version": "0.9.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha1-AHOX1E7Rhy/cbtMTYBkPgYFOLGQ=", - "dev": true, + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "requires": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" } }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, "p-limit": { "version": "2.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", "dev": true, "requires": { "p-try": "^2.0.0" @@ -5221,8 +4611,6 @@ }, "p-locate": { "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", "dev": true, "requires": { "p-limit": "^2.2.0" @@ -5230,65 +4618,47 @@ }, "p-try": { "version": "2.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", "dev": true }, "parent-module": { "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", - "dev": true, + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "requires": { "callsites": "^3.0.0" } }, "path-exists": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { - "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", - "dev": true + "version": "3.1.1" }, "path-parse": { - "version": "1.0.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", - "dev": true + "version": "1.0.7" }, "path-type": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", - "dev": true + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "picocolors": { "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=", "dev": true }, "picomatch": { "version": "2.3.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha1-O6ODNzNkbZ0+SZWUbBNlpn+wekI=", - "dev": true + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, "pkg-dir": { "version": "4.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", "dev": true, "requires": { "find-up": "^4.0.0" @@ -5296,71 +4666,56 @@ }, "prelude-ls": { "version": "1.2.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" }, - "pump": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pump/-/pump-3.0.0.tgz", - "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "peer": true }, "punycode": { - "version": "2.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha1-9n+mfJTaj00M//mBruQRgGQZm48=", - "dev": true + "version": "2.1.1" }, "queue-microtask": { "version": "1.2.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", - "dev": true + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" }, "randombytes": { "version": "2.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", - "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, "rechoir": { - "version": "0.8.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha1-Sfhm4NMhRhQto62PDv81KzIV/yI=", + "version": "0.7.1", "dev": true, "requires": { - "resolve": "^1.20.0" + "resolve": "^1.9.0" } }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "peer": true + }, "resolve": { - "version": "1.22.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha1-DtCUPU4wGGeVV2bJ8+GubQHGhF8=", - "dev": true, + "version": "1.20.0", "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" } }, "resolve-cwd": { "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha1-DwB18bslRHZs9zumpuKt/ryxPy0=", "dev": true, "requires": { "resolve-from": "^5.0.0" @@ -5368,53 +4723,107 @@ }, "resolve-from": { "version": "5.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", "dev": true }, "reusify": { "version": "1.0.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", - "dev": true + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" }, "rimraf": { "version": "3.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", - "dev": true, + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "requires": { "glob": "^7.1.3" } }, "rollup": { - "version": "3.26.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup/-/rollup-3.26.2.tgz", - "integrity": "sha1-LnajdgbLUj/J/vQ+b1nJP4bZXnw=", - "dev": true, + "version": "2.77.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup/-/rollup-2.77.0.tgz", + "integrity": "sha1-dJ6qWsCba6pSrMB2vEZhPt39U/Q=", "requires": { "fsevents": "~2.3.2" } }, + "rollup-plugin-consts": { + "version": "1.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-consts/-/rollup-plugin-consts-1.1.0.tgz", + "integrity": "sha1-EL2UBh1+LW4G0BWAaIYLo8E3W7w=", + "requires": {} + }, + "rollup-plugin-dts": { + "version": "4.2.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", + "integrity": "sha1-godrh4QhOvKbAs8mC0XkBP+DXOE=", + "requires": { + "@babel/code-frame": "^7.16.7", + "magic-string": "^0.26.1" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "optional": true, + "requires": { + "@babel/highlight": "^7.16.7" + } + } + } + }, + "rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "dependencies": { + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "run-parallel": { "version": "1.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", - "dev": true, + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "requires": { "queue-microtask": "^1.2.2" } }, "safe-buffer": { - "version": "5.2.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", - "dev": true + "version": "5.2.1" }, "schema-utils": { - "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha1-9QqIh3w8AWUqFbYirp6Xld96YP4=", + "version": "3.1.1", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -5423,18 +4832,15 @@ } }, "semver": { - "version": "7.5.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.5.4.tgz", - "integrity": "sha1-SDmG7E7TjhxsSMNIlKkYLb/2im4=", - "dev": true, + "version": "7.3.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.3.7.tgz", + "integrity": "sha1-EsW2Sa/b+QSXB3luIqQCiBTOUj8=", "requires": { "lru-cache": "^6.0.0" } }, "serialize-javascript": { - "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha1-sgbvsnw9oLCra1L0jRcLeZZFjlw=", + "version": "6.0.0", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -5442,8 +4848,6 @@ }, "shallow-clone": { "version": "3.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", "dev": true, "requires": { "kind-of": "^6.0.2" @@ -5451,94 +4855,121 @@ }, "shebang-command": { "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", - "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", - "dev": true + "version": "3.0.0" }, "signal-exit": { - "version": "3.0.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha1-qaF2f4r4QVURTqq9c/mSc8j1mtk=", + "version": "3.0.6", "dev": true }, "slash": { "version": "3.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/slash/-/slash-3.0.0.tgz", - "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", - "dev": true + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, - "smob": { - "version": "1.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/smob/-/smob-1.4.0.tgz", - "integrity": "sha1-rJdR/lSx/B/IKGpijU5/gkJzuVo=", - "dev": true + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "peer": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } }, "source-map": { - "version": "0.6.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", - "dev": true + "version": "0.6.1" }, "source-map-support": { "version": "0.5.21", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha1-BP58f54e0tZiIzwoyys1ufY/bk8=", - "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "peer": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "peer": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", - "dev": true, + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "requires": { "ansi-regex": "^5.0.1" } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, "strip-final-newline": { "version": "2.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", "dev": true }, "strip-json-comments": { "version": "3.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", - "dev": true + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" }, "supports-color": { "version": "8.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", "dev": true, "requires": { "has-flag": "^4.0.0" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha1-btpL00SjyUrqN21MwxvHcxEDngk=", - "dev": true + "table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "peer": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "peer": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "peer": true + } + } }, "tapable": { "version": "2.2.1", @@ -5547,113 +4978,94 @@ "dev": true }, "terser": { - "version": "5.19.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser/-/terser-5.19.0.tgz", - "integrity": "sha1-ezE3sBImvdF5l4IHucgUh1Sm2pw=", - "dev": true, + "version": "5.14.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser/-/terser-5.14.2.tgz", + "integrity": "sha1-msnyKwaZTXNhdPQJGqNo24lvHBA=", "requires": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" } }, "terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha1-gyU2mZxRtG1GgGf543Zio7lq3+E=", + "version": "5.3.0", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.17", - "jest-worker": "^27.4.5", + "jest-worker": "^27.4.1", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" } }, "text-table": { "version": "0.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", - "dev": true, + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "requires": { "is-number": "^7.0.0" } }, "tslib": { - "version": "2.6.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.6.0.tgz", - "integrity": "sha1-spWFRoTb2hZOGB0lmiLNd53Ne8M=", - "dev": true + "version": "2.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha1-fOyqfwc85oCgWEeqd76UEJjzbcM=" }, "tsutils": { "version": "3.21.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=", - "dev": true, + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "requires": { "tslib": "^1.8.1" }, "dependencies": { "tslib": { "version": "1.14.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", - "dev": true + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, "type-check": { "version": "0.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", - "dev": true, + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "requires": { "prelude-ls": "^1.2.1" } }, "type-fest": { "version": "0.20.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", - "dev": true + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" }, "typescript": { - "version": "5.1.6", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-5.1.6.tgz", - "integrity": "sha1-AvisICttrSwN1eCRN0W0ejeZgnQ=", - "dev": true + "version": "4.7.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha1-GohZbRz0fVlQehvN+1ud/k1IgjU=" }, "underscore": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" }, - "update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha1-mipkGtKQeuezYWUG9Ll3hR21uUA=", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, "uri-js": { "version": "4.4.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", - "dev": true, "requires": { "punycode": "^2.1.0" } }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, "watchpack": { "version": "2.4.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/watchpack/-/watchpack-2.4.0.tgz", @@ -5665,22 +5077,22 @@ } }, "webpack": { - "version": "5.88.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack/-/webpack-5.88.1.tgz", - "integrity": "sha1-IeugHoG9Xt/xlorqcm4vv9VX0/g=", + "version": "5.76.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack/-/webpack-5.76.0.tgz", + "integrity": "sha1-+fufuMSn29zQ1WqY5WuKlC7iaSw=", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -5689,46 +5101,39 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", + "schema-utils": "^3.1.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", + "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" } }, "webpack-cli": { - "version": "5.1.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha1-yOBGun6q5JEdfnHislt3b8w1dZs=", + "version": "4.9.1", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", + "@webpack-cli/configtest": "^1.1.0", + "@webpack-cli/info": "^1.4.0", + "@webpack-cli/serve": "^1.6.0", "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", + "commander": "^7.0.0", + "execa": "^5.0.0", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", "webpack-merge": "^5.7.3" }, "dependencies": { "commander": { - "version": "10.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/commander/-/commander-10.0.1.tgz", - "integrity": "sha1-iB7ka0930cHczFgjQzqjmwIsvgY=", + "version": "7.2.0", "dev": true } } }, "webpack-merge": { - "version": "5.9.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-merge/-/webpack-merge-5.9.0.tgz", - "integrity": "sha1-3BYKHEz1Es7KUVzCMWaendsTOCY=", + "version": "5.8.0", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -5737,42 +5142,34 @@ }, "webpack-sources": { "version": "3.2.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha1-LU2quEUf1LJAzCcFX/agwszqDN4=", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true }, "which": { "version": "2.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-2.0.2.tgz", - "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", - "dev": true, "requires": { "isexe": "^2.0.0" } }, "wildcard": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha1-WrENAkhxmJVINrY0n3T/+WHhD2c=", + "version": "2.0.0", "dev": true }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, "wrappy": { "version": "1.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "yallist": { "version": "4.0.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", - "dev": true + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } } diff --git a/src/mono/sample/wasm/browser-webpack/package.json b/src/mono/sample/wasm/browser-webpack/package.json index eb9f06edf05ef..42391519b8c68 100644 --- a/src/mono/sample/wasm/browser-webpack/package.json +++ b/src/mono/sample/wasm/browser-webpack/package.json @@ -8,8 +8,8 @@ "webpack": "webpack" }, "devDependencies": { - "webpack": "5.88.1", - "webpack-cli": "5.1.4" + "webpack": "5.76.0", + "webpack-cli": "4.9.1" }, "dependencies": { "@microsoft/dotnet-runtime": "file:bin/dotnet-runtime", diff --git a/src/mono/sample/wasm/console-node-ts/Wasm.Console.Node.TS.Sample.csproj b/src/mono/sample/wasm/console-node-ts/Wasm.Console.Node.TS.Sample.csproj index 97375d88fd50f..4228528a9aa29 100644 --- a/src/mono/sample/wasm/console-node-ts/Wasm.Console.Node.TS.Sample.csproj +++ b/src/mono/sample/wasm/console-node-ts/Wasm.Console.Node.TS.Sample.csproj @@ -1,7 +1,6 @@ false - ./ - - - $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) - $([System.IO.Path]::GetFileName($(CategoryPath))) - $(CategoryName)/$([System.String]::Copy('$(_CMDDIR)').Replace("$(CategoryPath)/","")) - $([System.IO.Path]::GetFileName($(_CMDDIR))) - $([System.String]::Copy('$(TestRelativePath)').Replace('/','_')) - $(IntermediateOutputPath)\iOSApps\$(AppName) - $(XUnitTestBinBase)$(TestRelativePath)\$(AppName).app - - - - $(IntermediateOutputPath)\..\$(TestRelativePath)\$(TestName)\native\$(TestName).o - - - true - true - $(AppDir) - false - false - - - - <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> - - - - - - - - - - - - - - - - - - - - - - - - @@ -533,17 +475,10 @@ - - + Condition="'@(TestDirectories)' != ''" + /> diff --git a/src/tests/issues.targets b/src/tests/issues.targets index a97866b950e27..4c6f7cb1b0040 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -1251,9 +1251,6 @@ - - https://github.com/dotnet/runtime/issues/88775 - https://github.com/dotnet/runtime/issues/88689 diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs index 9452d8700e714..2617cb57320db 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs @@ -51,12 +51,7 @@ public static int Run() result = Fail; } - // ActiveIssue https://github.com/dotnet/runtime/issues/87924 - if (!OperatingSystem.IsIOS() && !OperatingSystem.IsTvOS() && !OperatingSystem.IsMacCatalyst()) - { - TestLinqExpressions.Run(); - } - + TestLinqExpressions.Run(); TestDefaultInterfaceMethods.Run(); return result; diff --git a/src/tests/tracing/eventpipe/diagnosticport/diagnosticport.cs b/src/tests/tracing/eventpipe/diagnosticport/diagnosticport.cs index 7e2edfc3896fe..a1c08d4f1b9f5 100644 --- a/src/tests/tracing/eventpipe/diagnosticport/diagnosticport.cs +++ b/src/tests/tracing/eventpipe/diagnosticport/diagnosticport.cs @@ -403,9 +403,10 @@ public static async Task TEST_CanGetProcessInfo2WhileSuspended() } else if (TestLibrary.Utilities.IsNativeAot) { - string expectedName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; - Utils.Assert(expectedName.Equals(processInfo2.ManagedEntrypointAssemblyName), - $"ManagedEntrypointAssemblyName must match. Expected: {expectedName}, Received: {processInfo2.ManagedEntrypointAssemblyName}"); + // shipping criteria: no EVENTPIPE-NATIVEAOT-TODO left in the codebase + // https://github.com/dotnet/runtime/issues/83051 + // NativeAOT currently always returns empty string + Utils.Assert(processInfo2.ManagedEntrypointAssemblyName == string.Empty); } else { diff --git a/src/tests/tracing/eventpipe/processinfo/processinfo.cs b/src/tests/tracing/eventpipe/processinfo/processinfo.cs index 4f0d6133cf1db..a62865bf2dff8 100644 --- a/src/tests/tracing/eventpipe/processinfo/processinfo.cs +++ b/src/tests/tracing/eventpipe/processinfo/processinfo.cs @@ -149,9 +149,7 @@ public static int Main() // /path/to/corerun /path/to/processinfo.dll // or // "C:\path\to\CoreRun.exe" C:\path\to\processinfo.dll - string currentProcessCommandLine = TestLibrary.Utilities.IsSingleFile - ? currentProcess.MainModule.FileName - : $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; + string currentProcessCommandLine = $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; string receivedCommandLine = NormalizeCommandLine(commandLine); Utils.Assert(currentProcessCommandLine.Equals(receivedCommandLine, StringComparison.OrdinalIgnoreCase), $"CommandLine must match current process. Expected: {currentProcessCommandLine}, Received: {receivedCommandLine} (original: {commandLine})"); } diff --git a/src/tests/tracing/eventpipe/processinfo/processinfo.csproj b/src/tests/tracing/eventpipe/processinfo/processinfo.csproj index 2c913f467d9e2..d4947c794dceb 100644 --- a/src/tests/tracing/eventpipe/processinfo/processinfo.csproj +++ b/src/tests/tracing/eventpipe/processinfo/processinfo.csproj @@ -15,6 +15,5 @@ - diff --git a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs index 589af8d1aa49f..0c04dd3caef87 100644 --- a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs +++ b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs @@ -150,9 +150,7 @@ public static int Main() // /path/to/corerun /path/to/processinfo.dll // or // "C:\path\to\CoreRun.exe" C:\path\to\processinfo.dll - string currentProcessCommandLine = TestLibrary.Utilities.IsSingleFile - ? currentProcess.MainModule.FileName - : $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; + string currentProcessCommandLine = $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; string receivedCommandLine = NormalizeCommandLine(commandLine); Utils.Assert(currentProcessCommandLine.Equals(receivedCommandLine, StringComparison.OrdinalIgnoreCase), $"CommandLine must match current process. Expected: {currentProcessCommandLine}, Received: {receivedCommandLine} (original: {commandLine})"); } diff --git a/src/tests/tracing/eventpipe/processinfo2/processinfo2.csproj b/src/tests/tracing/eventpipe/processinfo2/processinfo2.csproj index 2c913f467d9e2..d4947c794dceb 100644 --- a/src/tests/tracing/eventpipe/processinfo2/processinfo2.csproj +++ b/src/tests/tracing/eventpipe/processinfo2/processinfo2.csproj @@ -15,6 +15,5 @@ - diff --git a/src/tools/illink/src/tlens/TLens.Analyzers/UnnecessaryFieldsAssignmentAnalyzer.cs b/src/tools/illink/src/tlens/TLens.Analyzers/UnnecessaryFieldsAssignmentAnalyzer.cs index 812a874bd9e36..bf88c682542e0 100644 --- a/src/tools/illink/src/tlens/TLens.Analyzers/UnnecessaryFieldsAssignmentAnalyzer.cs +++ b/src/tools/illink/src/tlens/TLens.Analyzers/UnnecessaryFieldsAssignmentAnalyzer.cs @@ -72,7 +72,9 @@ protected override void ProcessMethod (MethodDefinition method) methods.Add (method); } - if (!fields.TryAdd (field, access)) + if (!fields.ContainsKey (field)) + fields.Add (field, access); + else fields[field] |= access; } } diff --git a/src/tools/illink/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs b/src/tools/illink/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs index 790db571d1370..9f8fa1208060b 100644 --- a/src/tools/illink/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs +++ b/src/tools/illink/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs @@ -1,10 +1,6 @@ using System.Diagnostics.CodeAnalysis; using Mono.Linker.Tests.Cases.Expectations.Assertions; -#if NATIVEAOT -using Mono.Linker.Tests.Cases.Expectations.Helpers; -#endif - namespace Mono.Linker.Tests.Cases.DynamicDependencies { class DynamicDependencyMethod From 0a532adbb0a22987b27bc249e196f753fe950c0d Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Tue, 18 Jul 2023 11:17:08 -0700 Subject: [PATCH 06/20] Revert "Update dependencies from https://github.com/dotnet/roslyn build 20230716.1 (#89077)" This reverts commit 09e724f305c476afedc1cc8f60a63f6ffcc3a4af. --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2c05b42bdfba8..b5e175c5aa4b7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -354,18 +354,18 @@ https://github.com/dotnet/runtime-assets 7333879999019e28e47f58879180cba54f5e1843 - + https://github.com/dotnet/roslyn - dad7898acd6372d4380612b9f225db0c2cbfa1e9 + 91c9c05370d84a902010c9e1f80aebcc3a467792 - + https://github.com/dotnet/roslyn - dad7898acd6372d4380612b9f225db0c2cbfa1e9 + 91c9c05370d84a902010c9e1f80aebcc3a467792 - + https://github.com/dotnet/roslyn - dad7898acd6372d4380612b9f225db0c2cbfa1e9 + 91c9c05370d84a902010c9e1f80aebcc3a467792 https://github.com/dotnet/roslyn-analyzers diff --git a/eng/Versions.props b/eng/Versions.props index 7d345135a87ae..544078dae32d4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -40,9 +40,9 @@ Any tools that contribute to the design-time experience should use the MicrosoftCodeAnalysisVersion_LatestVS property above to ensure they do not break the local dev experience. --> - 4.7.0-3.23366.1 - 4.7.0-3.23366.1 - 4.7.0-3.23366.1 + 4.7.0-3.23361.9 + 4.7.0-3.23361.9 + 4.7.0-3.23361.9 - 4.7.0-3.23361.9 - 4.7.0-3.23361.9 - 4.7.0-3.23361.9 + 4.7.0-3.23366.1 + 4.7.0-3.23366.1 + 4.7.0-3.23366.1 - false + diff --git a/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.cs b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.cs index 1d0703dc51c02..c54ded37c10e9 100644 --- a/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.cs +++ b/src/coreclr/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.cs @@ -292,35 +292,6 @@ public override bool IsDefined(Type attributeType, bool inherit) return m_typeBuilder.IsDefined(attributeType, inherit); } - /***************************************************** - * - * private/protected functions - * - */ - - public override Type MakePointerType() - { - return SymbolType.FormCompoundType("*", this, 0)!; - } - - public override Type MakeByRefType() - { - return SymbolType.FormCompoundType("&", this, 0)!; - } - - [RequiresDynamicCode("The code for an array of the specified type might not be available.")] - public override Type MakeArrayType() - { - return SymbolType.FormCompoundType("[]", this, 0)!; - } - - [RequiresDynamicCode("The code for an array of the specified type might not be available.")] - public override Type MakeArrayType(int rank) - { - string s = GetRankString(rank); - return SymbolType.FormCompoundType(s, this, 0)!; - } - // Constructs a EnumBuilder. // EnumBuilder can only be a top-level (not nested) enum type. [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2064:UnrecognizedReflectionPattern", diff --git a/src/coreclr/debug/daccess/task.cpp b/src/coreclr/debug/daccess/task.cpp index d0187b33c2d99..ea351e3a047b8 100644 --- a/src/coreclr/debug/daccess/task.cpp +++ b/src/coreclr/debug/daccess/task.cpp @@ -5225,7 +5225,7 @@ EnumMethodInstances::Next(ClrDataAccess* dac, } } - if (!m_methodIter.Current()->HasNativeCode()) + if (!m_methodIter.Current()->HasNativeCodeReJITAware()) { goto NextMethod; } @@ -5243,7 +5243,7 @@ EnumMethodInstances::CdStart(MethodDesc* methodDesc, CLRDATA_ENUM* handle) { if (!methodDesc->HasClassOrMethodInstantiation() && - !methodDesc->HasNativeCode()) + !methodDesc->HasNativeCodeReJITAware()) { *handle = 0; return S_FALSE; diff --git a/src/coreclr/debug/di/rsfunction.cpp b/src/coreclr/debug/di/rsfunction.cpp index 597b7ce2f7536..87a6594bff842 100644 --- a/src/coreclr/debug/di/rsfunction.cpp +++ b/src/coreclr/debug/di/rsfunction.cpp @@ -136,6 +136,10 @@ HRESULT CordbFunction::QueryInterface(REFIID id, void **pInterface) { *pInterface = static_cast(this); } + else if (id == IID_ICorDebugFunction5) + { + *pInterface = static_cast(this); + } else if (id == IID_IUnknown) { *pInterface = static_cast(static_cast(this)); @@ -606,6 +610,92 @@ HRESULT CordbFunction::CreateNativeBreakpoint(ICorDebugFunctionBreakpoint **ppBr return hr; } +//----------------------------------------------------------------------------- +// CordbFunction::DisableOptimizations +// Public method for ICorDebugFunction5::DisableOptimizations. +// Triggers a new JIT so the next time the function is called, it will be unoptimized. +// +// Parameters +// +// +// Returns: +// S_OK on success. +//----------------------------------------------------------------------------- +HRESULT CordbFunction::DisableOptimizations() +{ + PUBLIC_API_ENTRY(this); + FAIL_IF_NEUTERED(this); + ATT_REQUIRE_STOPPED_MAY_FAIL(GetProcess()); + + HRESULT hr = S_OK; + + CordbProcess * pProcess = GetProcess(); + RSLockHolder lockHolder(pProcess->GetProcessLock()); + + DebuggerIPCEvent event; + CordbAppDomain * pAppDomain = GetAppDomain(); + _ASSERTE (pAppDomain != NULL); + + pProcess->InitIPCEvent(&event, DB_IPCE_DISABLE_OPTS, true, pAppDomain->GetADToken()); + event.DisableOptData.funcMetadataToken = m_MDToken; + event.DisableOptData.pModule = m_pModule->GetRuntimeModule(); + + lockHolder.Release(); + hr = pProcess->m_cordb->SendIPCEvent(pProcess, &event, sizeof(DebuggerIPCEvent)); + lockHolder.Acquire(); + + _ASSERTE(event.type == DB_IPCE_DISABLE_OPTS_RESULT); + + return event.hr; +} + +//----------------------------------------------------------------------------- +// CordbFunction::AreOptimizationsDisabled +// Public method for ICorDebugFunction5::AreOptimizationsDisabled. +// Indicates whether this method had optimizations disabled already. +// +// Parameters: +// BOOL *pOptimizationsDisabled +// +// +// Returns: +// S_OK on success. +//----------------------------------------------------------------------------- +HRESULT CordbFunction::AreOptimizationsDisabled(BOOL *pOptimizationsDisabled) +{ + PUBLIC_API_ENTRY(this); + FAIL_IF_NEUTERED(this); + ATT_REQUIRE_STOPPED_MAY_FAIL(GetProcess()); + + HRESULT hr = S_OK; + + if (pOptimizationsDisabled == NULL) + { + return E_INVALIDARG; + } + + CordbProcess * pProcess = GetProcess(); + RSLockHolder lockHolder(pProcess->GetProcessLock()); + + DebuggerIPCEvent event; + CordbAppDomain * pAppDomain = GetAppDomain(); + _ASSERTE (pAppDomain != NULL); + + pProcess->InitIPCEvent(&event, DB_IPCE_IS_OPTS_DISABLED, true, pAppDomain->GetADToken()); + event.DisableOptData.funcMetadataToken = m_MDToken; + event.DisableOptData.pModule = m_pModule->GetRuntimeModule(); + + lockHolder.Release(); + hr = pProcess->m_cordb->SendIPCEvent(pProcess, &event, sizeof(DebuggerIPCEvent)); + lockHolder.Acquire(); + + _ASSERTE(event.type == DB_IPCE_IS_OPTS_DISABLED_RESULT); + + *pOptimizationsDisabled = event.IsOptsDisabledData.value; + + return event.hr;; +} + // determine whether we have a native-only implementation // Arguments: // Input: none (we use information in various data members of this instance of CordbFunction: m_isNativeImpl, diff --git a/src/coreclr/debug/di/rspriv.h b/src/coreclr/debug/di/rspriv.h index 8ead72b678d57..4f55cea3ee3b8 100644 --- a/src/coreclr/debug/di/rspriv.h +++ b/src/coreclr/debug/di/rspriv.h @@ -5349,7 +5349,8 @@ class CordbFunction : public CordbBase, public ICorDebugFunction, public ICorDebugFunction2, public ICorDebugFunction3, - public ICorDebugFunction4 + public ICorDebugFunction4, + public ICorDebugFunction5 { public: //----------------------------------------------------------- @@ -5412,6 +5413,12 @@ class CordbFunction : public CordbBase, //----------------------------------------------------------- COM_METHOD CreateNativeBreakpoint(ICorDebugFunctionBreakpoint **ppBreakpoint); + //----------------------------------------------------------- + // ICorDebugFunction5 + //----------------------------------------------------------- + COM_METHOD AreOptimizationsDisabled(BOOL *pOptimizationsDisabled); + COM_METHOD DisableOptimizations(); + //----------------------------------------------------------- // Internal members //----------------------------------------------------------- diff --git a/src/coreclr/debug/ee/debugger.cpp b/src/coreclr/debug/ee/debugger.cpp index b94e3258e1b23..d0610e1ac91bf 100644 --- a/src/coreclr/debug/ee/debugger.cpp +++ b/src/coreclr/debug/ee/debugger.cpp @@ -10442,6 +10442,60 @@ bool Debugger::HandleIPCEvent(DebuggerIPCEvent * pEvent) break; } + case DB_IPCE_DISABLE_OPTS: + { + Module *pModule = pEvent->DisableOptData.pModule.GetRawPtr(); + mdToken methodDef = pEvent->DisableOptData.funcMetadataToken; + _ASSERTE(TypeFromToken(methodDef) == mdtMethodDef); + + HRESULT hr = E_INVALIDARG; + EX_TRY + { + hr = DeoptimizeMethod(pModule, methodDef); + } + EX_CATCH_HRESULT(hr); + + DebuggerIPCEvent * pIPCResult = m_pRCThread->GetIPCEventReceiveBuffer(); + + InitIPCEvent(pIPCResult, + DB_IPCE_DISABLE_OPTS_RESULT, + g_pEEInterface->GetThread(), + pEvent->vmAppDomain); + + pIPCResult->hr = hr; + + m_pRCThread->SendIPCReply(); + } + break; + + case DB_IPCE_IS_OPTS_DISABLED: + { + Module *pModule = pEvent->DisableOptData.pModule.GetRawPtr(); + mdToken methodDef = pEvent->DisableOptData.funcMetadataToken; + _ASSERTE(TypeFromToken(methodDef) == mdtMethodDef); + + HRESULT hr = E_INVALIDARG; + BOOL deoptimized = FALSE; + EX_TRY + { + hr = IsMethodDeoptimized(pModule, methodDef, &deoptimized); + } + EX_CATCH_HRESULT(hr); + + DebuggerIPCEvent * pIPCResult = m_pRCThread->GetIPCEventReceiveBuffer(); + + InitIPCEvent(pIPCResult, + DB_IPCE_IS_OPTS_DISABLED_RESULT, + g_pEEInterface->GetThread(), + pEvent->vmAppDomain); + + pIPCResult->IsOptsDisabledData.value = deoptimized; + pIPCResult->hr = hr; + + m_pRCThread->SendIPCReply(); + } + break; + case DB_IPCE_BREAKPOINT_ADD: { @@ -12211,6 +12265,151 @@ HRESULT Debugger::ReleaseRemoteBuffer(void *pBuffer, bool removeFromBlobList) return S_OK; } +#ifndef DACCESS_COMPILE +HRESULT Debugger::DeoptimizeMethodHelper(Module* pModule, mdMethodDef methodDef) +{ + CONTRACTL + { + THROWS; + CAN_TAKE_LOCK; + GC_NOTRIGGER; + } + CONTRACTL_END; + + _ASSERTE(!CodeVersionManager::IsLockOwnedByCurrentThread()); + HRESULT hr = S_OK; + ILCodeVersion ilCodeVersion; + CodeVersionManager *pCodeVersionManager = pModule->GetCodeVersionManager(); + + { + CodeVersionManager::LockHolder codeVersioningLockHolder; + if (FAILED(hr = pCodeVersionManager->AddILCodeVersion(pModule, methodDef, &ilCodeVersion, TRUE))) + { + LOG((LF_TIEREDCOMPILATION, LL_INFO100, "TieredCompilationManager::DeOptimizeMethodHelper Module=0x%x Method=0x%x, AddILCodeVersion returned hr 0x%x\n", + pModule, methodDef, + hr)); + return hr; + } + + // We are using the profiler ReJIT infrastructure to trigger a new jit. We don't want to modify the IL or + // call back in to anything so set it all here to match the original IL and debug codegen flags + ilCodeVersion.SetIL(ILCodeVersion(pModule, methodDef).GetIL()); + ilCodeVersion.SetJitFlags(COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS | COR_PRF_CODEGEN_DEBUG_INFO); + ilCodeVersion.SetRejitState(ILCodeVersion::kStateActive); + ilCodeVersion.SetEnableReJITCallback(false); + } + + _ASSERTE(!ilCodeVersion.IsNull()); + { + if (FAILED(hr = pCodeVersionManager->SetActiveILCodeVersions(&ilCodeVersion, 1, NULL))) + { + LOG((LF_TIEREDCOMPILATION, LL_INFO100, "TieredCompilationManager::DeOptimizeMethodHelper Module=0x%x Method=0x%x, SetActiveILCodeVersions returned hr 0x%x\n", + pModule, methodDef, + hr)); + return hr; + } + } + + return hr; +} + +HRESULT Debugger::DeoptimizeMethod(Module* pModule, mdMethodDef methodDef) +{ + CONTRACTL + { + THROWS; + GC_NOTRIGGER; + } + CONTRACTL_END; + + // First deoptimize the method itself + HRESULT hr = DeoptimizeMethodHelper(pModule, methodDef); + if (FAILED(hr)) + { + LOG((LF_TIEREDCOMPILATION, LL_INFO100, "TieredCompilationManager::DeOptimizeMethod Module=0x%x Method=0x%x,, initial ReJIT returned hr 0x%x, aborting\n", + pModule, methodDef, hr)); + return hr; + } + + // Now deoptimize anything that has inlined it in a R2R method + AppDomain::AssemblyIterator domainAssemblyIterator = SystemDomain::System()->DefaultDomain()->IterateAssembliesEx((AssemblyIterationFlags) (kIncludeLoaded | kIncludeExecution)); + CollectibleAssemblyHolder pDomainAssembly; + NativeImageInliningIterator inlinerIter; + while (domainAssemblyIterator.Next(pDomainAssembly.This())) + { + Module *pCandidateModule = pDomainAssembly->GetModule(); + if (pCandidateModule->HasReadyToRunInlineTrackingMap()) + { + inlinerIter.Reset(pCandidateModule, MethodInModule(pModule, methodDef)); + + while (inlinerIter.Next()) + { + MethodInModule inliner = inlinerIter.GetMethod(); + _ASSERTE(TypeFromToken(inliner.m_methodDef) == mdtMethodDef); + DeoptimizeMethodHelper(inliner.m_module, inliner.m_methodDef); + } + } + } + + // Next any JIT methods + MethodDesc *pMethodDesc = pModule->LookupMethodDef(methodDef); + if (pMethodDesc != NULL && pModule->HasJitInlineTrackingMap()) + { + InlineSArray inliners; + auto lambda = [&inliners](MethodDesc *inliner, MethodDesc *inlinee) + { + _ASSERTE(!inliner->IsNoMetadata()); + + if (inliner->IsIL()) + { + inliners.Append(inliner); + } + + // Keep going + return true; + }; + + JITInlineTrackingMap *pMap = pModule->GetJitInlineTrackingMap(); + pMap->VisitInliners(pMethodDesc, lambda); + + for (auto it = inliners.Begin(); it != inliners.End(); ++it) + { + Module *inlinerModule = (*it)->GetModule(); + mdMethodDef inlinerMethodDef = (*it)->GetMemberDef(); + _ASSERTE(TypeFromToken(inlinerMethodDef) == mdtMethodDef); + DeoptimizeMethodHelper(inlinerModule, inlinerMethodDef); + } + } + + return hr; +} +#endif //DACCESS_COMPILE + +HRESULT Debugger::IsMethodDeoptimized(Module *pModule, mdMethodDef methodDef, BOOL *pResult) +{ + CONTRACTL + { + NOTHROW; + CAN_TAKE_LOCK; + GC_NOTRIGGER; + } + CONTRACTL_END; + + if (pModule == NULL || pResult == NULL || TypeFromToken(methodDef) != mdtMethodDef) + { + return E_INVALIDARG; + } + + { + CodeVersionManager::LockHolder codeVersioningLockHolder; + CodeVersionManager *pCodeVersionManager = pModule->GetCodeVersionManager(); + ILCodeVersion activeILVersion = pCodeVersionManager->GetActiveILCodeVersion(pModule, methodDef); + *pResult = activeILVersion.IsDeoptimized(); + } + + return S_OK; +} + // // UnrecoverableError causes the Left Side to enter a state where no more // debugging can occur and we leave around enough information for the diff --git a/src/coreclr/debug/ee/debugger.h b/src/coreclr/debug/ee/debugger.h index a116c802e1ae3..26edd26a96140 100644 --- a/src/coreclr/debug/ee/debugger.h +++ b/src/coreclr/debug/ee/debugger.h @@ -2212,6 +2212,15 @@ class Debugger : public DebugInterface return m_trappingRuntimeThreads; } +#ifndef DACCESS_COMPILE +private: + HRESULT DeoptimizeMethodHelper(Module* pModule, mdMethodDef methodDef); + +public: + HRESULT DeoptimizeMethod(Module* pModule, mdMethodDef methodDef); +#endif //DACCESS_COMPILE + HRESULT IsMethodDeoptimized(Module *pModule, mdMethodDef methodDef, BOOL *pResult); + // // The debugger mutex is used to protect any "global" Left Side // data structures. The RCThread takes it when handling a Right diff --git a/src/coreclr/debug/ee/functioninfo.cpp b/src/coreclr/debug/ee/functioninfo.cpp index 9621b00aaa398..76d4be3ab232f 100644 --- a/src/coreclr/debug/ee/functioninfo.cpp +++ b/src/coreclr/debug/ee/functioninfo.cpp @@ -1580,7 +1580,11 @@ DebuggerJitInfo *DebuggerMethodInfo::FindOrCreateInitAndAddJitInfo(MethodDesc* f startAddr = g_pEEInterface->GetFunctionAddress(fd); if (startAddr == NULL) { - return NULL; + startAddr = fd->GetNativeCodeReJITAware(); + if (startAddr == NULL) + { + return NULL; + } } } else diff --git a/src/coreclr/debug/inc/dbgipcevents.h b/src/coreclr/debug/inc/dbgipcevents.h index 8511d1a4b923c..4c56df797ab98 100644 --- a/src/coreclr/debug/inc/dbgipcevents.h +++ b/src/coreclr/debug/inc/dbgipcevents.h @@ -2013,6 +2013,17 @@ struct MSLAYOUT DebuggerIPCEvent LSPTR_METHODDESC nativeCodeMethodDescToken; // points to the MethodDesc if !isIL } BreakpointData; + struct MSLAYOUT + { + mdMethodDef funcMetadataToken; + VMPTR_Module pModule; + } DisableOptData; + + struct MSLAYOUT + { + BOOL value; + } IsOptsDisabledData; + struct MSLAYOUT { LSPTR_BREAKPOINT breakpointToken; diff --git a/src/coreclr/debug/inc/dbgipceventtypes.h b/src/coreclr/debug/inc/dbgipceventtypes.h index e538f63e4c2de..9e99e16d44b27 100644 --- a/src/coreclr/debug/inc/dbgipceventtypes.h +++ b/src/coreclr/debug/inc/dbgipceventtypes.h @@ -92,7 +92,9 @@ IPC_EVENT_TYPE1(DB_IPCE_RESOLVE_UPDATE_METADATA_2_RESULT,0x015F) IPC_EVENT_TYPE1(DB_IPCE_DATA_BREAKPOINT ,0x0160) IPC_EVENT_TYPE1(DB_IPCE_BEFORE_GARBAGE_COLLECTION ,0x0161) IPC_EVENT_TYPE1(DB_IPCE_AFTER_GARBAGE_COLLECTION ,0x0162) -IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_LAST ,0x0163) // The last event from runtime +IPC_EVENT_TYPE1(DB_IPCE_DISABLE_OPTS_RESULT ,0x0163) +IPC_EVENT_TYPE1(DB_IPCE_IS_OPTS_DISABLED_RESULT ,0x0164) +IPC_EVENT_TYPE0(DB_IPCE_RUNTIME_LAST ,0x0165) // The last event from runtime @@ -141,5 +143,7 @@ IPC_EVENT_TYPE2(DB_IPCE_DEBUGGER_INVALID ,0x0249) // An invalid ev IPC_EVENT_TYPE2(DB_IPCE_GET_GCHANDLE_INFO ,0x0251) IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_1 ,0x0256) IPC_EVENT_TYPE2(DB_IPCE_RESOLVE_UPDATE_METADATA_2 ,0x0257) -IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_LAST ,0x0258) // The last event from the debugger +IPC_EVENT_TYPE2(DB_IPCE_DISABLE_OPTS ,0x0258) +IPC_EVENT_TYPE2(DB_IPCE_IS_OPTS_DISABLED ,0x0259) +IPC_EVENT_TYPE0(DB_IPCE_DEBUGGER_LAST ,0x025A) // The last event from the debugger diff --git a/src/coreclr/debug/shared/dbgtransportsession.cpp b/src/coreclr/debug/shared/dbgtransportsession.cpp index b1b4cee234038..8c1ee39f99d0d 100644 --- a/src/coreclr/debug/shared/dbgtransportsession.cpp +++ b/src/coreclr/debug/shared/dbgtransportsession.cpp @@ -2202,8 +2202,10 @@ DWORD DbgTransportSession::GetEventSize(DebuggerIPCEvent *pEvent) case DB_IPCE_CONTROL_C_EVENT_RESULT: case DB_IPCE_BEFORE_GARBAGE_COLLECTION: case DB_IPCE_AFTER_GARBAGE_COLLECTION: + case DB_IPCE_DISABLE_OPTS_RESULT: cbAdditionalSize = 0; break; + case DB_IPCE_DATA_BREAKPOINT: cbAdditionalSize = sizeof(pEvent->DataBreakpointData); break; @@ -2496,6 +2498,15 @@ DWORD DbgTransportSession::GetEventSize(DebuggerIPCEvent *pEvent) cbAdditionalSize = sizeof(pEvent->CustomNotification); break; + case DB_IPCE_DISABLE_OPTS: + case DB_IPCE_IS_OPTS_DISABLED: + cbAdditionalSize = sizeof(pEvent->DisableOptData); + break; + + case DB_IPCE_IS_OPTS_DISABLED_RESULT: + cbAdditionalSize = sizeof(pEvent->IsOptsDisabledData); + break; + default: printf("Unknown debugger event type: 0x%x\n", (pEvent->type & DB_IPCE_TYPE_MASK)); _ASSERTE(!"Unknown debugger event type"); diff --git a/src/coreclr/gc/dac_gcheap_fields.h b/src/coreclr/gc/dac_gcheap_fields.h index 37b6389ff1ea1..39b2dca81008a 100644 --- a/src/coreclr/gc/dac_gcheap_fields.h +++ b/src/coreclr/gc/dac_gcheap_fields.h @@ -1,3 +1,7 @@ +// Whenever we add field here, we need to bear in mind that we have a scenario for a new clrgc +// is used in an old runtime. In that case, the old runtime's DAC will have to interpret the +// fields the way it was. So fields should only be added at the end of the struct. + DEFINE_FIELD (alloc_allocated, uint8_t*) DEFINE_DPTR_FIELD (ephemeral_heap_segment, dac_heap_segment) DEFINE_DPTR_FIELD (finalize_queue, dac_finalize_queue) @@ -16,8 +20,6 @@ DEFINE_FIELD (mark_array, uint32_t*) DEFINE_FIELD (next_sweep_obj, uint8_t*) DEFINE_FIELD (background_saved_lowest_address, uint8_t*) DEFINE_FIELD (background_saved_highest_address, uint8_t*) -DEFINE_DPTR_FIELD (freeable_soh_segment, dac_heap_segment) -DEFINE_DPTR_FIELD (freeable_uoh_segment, dac_heap_segment) #if defined(ALL_FIELDS) || !defined(USE_REGIONS) DEFINE_DPTR_FIELD (saved_sweep_ephemeral_seg, dac_heap_segment) DEFINE_FIELD (saved_sweep_ephemeral_start, uint8_t*) @@ -30,12 +32,23 @@ DEFINE_MISSING_FIELD(mark_array) DEFINE_MISSING_FIELD(next_sweep_obj) DEFINE_MISSING_FIELD(background_saved_lowest_address) DEFINE_MISSING_FIELD(background_saved_highest_address) -DEFINE_MISSING_FIELD(freeable_soh_segment) -DEFINE_MISSING_FIELD(freeable_uoh_segment) DEFINE_MISSING_FIELD(saved_sweep_ephemeral_seg) DEFINE_MISSING_FIELD(saved_sweep_ephemeral_start) #endif // defined(ALL_FIELDS) || defined(BACKGROUND_GC) +// This field is unused +DEFINE_FIELD(generation_table, void*) + +// Here is where v5.2 fields starts + +#if defined(ALL_FIELDS) || defined(BACKGROUND_GC) +DEFINE_DPTR_FIELD (freeable_soh_segment, dac_heap_segment) +DEFINE_DPTR_FIELD (freeable_uoh_segment, dac_heap_segment) +#else +DEFINE_MISSING_FIELD(freeable_soh_segment) +DEFINE_MISSING_FIELD(freeable_uoh_segment) +#endif // defined(ALL_FIELDS) || defined(BACKGROUND_GC) + #if defined(ALL_FIELDS) || defined(USE_REGIONS) DEFINE_ARRAY_FIELD (free_regions, dac_region_free_list, FREE_REGION_KINDS) #else diff --git a/src/coreclr/gc/gc.cpp b/src/coreclr/gc/gc.cpp index 14af5f3befaa8..2650339ceb97c 100644 --- a/src/coreclr/gc/gc.cpp +++ b/src/coreclr/gc/gc.cpp @@ -7317,7 +7317,7 @@ bool gc_heap::virtual_decommit (void* address, size_t size, int bucket, int h_nu assert(0 <= bucket && bucket < recorded_committed_bucket_counts); assert(bucket < total_oh_count || h_number == -1); - bool decommit_succeeded_p = GCToOSInterface::VirtualDecommit (address, size); + bool decommit_succeeded_p = ((bucket != recorded_committed_bookkeeping_bucket) && use_large_pages_p) ? true : GCToOSInterface::VirtualDecommit (address, size); dprintf(3, ("commit-accounting: decommit in %d [%p, %p) for heap %d", bucket, address, ((uint8_t*)address + size), h_number)); @@ -43607,32 +43607,31 @@ bool gc_heap::decommit_step (uint64_t step_milliseconds) size_t gc_heap::decommit_region (heap_segment* region, int bucket, int h_number) { uint8_t* page_start = align_lower_page (get_region_start (region)); - uint8_t* end = use_large_pages_p ? heap_segment_used (region) : heap_segment_committed (region); - size_t size = end - page_start; - bool decommit_succeeded_p = false; - if (!use_large_pages_p) - { - decommit_succeeded_p = virtual_decommit (page_start, size, bucket, h_number); - } + uint8_t* decommit_end = heap_segment_committed (region); + size_t decommit_size = decommit_end - page_start; + bool decommit_succeeded_p = virtual_decommit (page_start, decommit_size, bucket, h_number); + bool require_clearing_memory_p = !decommit_succeeded_p || use_large_pages_p; dprintf (REGIONS_LOG, ("decommitted region %p(%p-%p) (%zu bytes) - success: %d", region, page_start, - end, - size, + decommit_end, + decommit_size, decommit_succeeded_p)); - if (decommit_succeeded_p) - { - heap_segment_committed (region) = heap_segment_mem (region); - } - else + if (require_clearing_memory_p) { - memclr (page_start, size); + uint8_t* clear_end = use_large_pages_p ? heap_segment_used (region) : heap_segment_committed (region); + size_t clear_size = clear_end - page_start; + memclr (page_start, clear_size); heap_segment_used (region) = heap_segment_mem (region); dprintf(REGIONS_LOG, ("cleared region %p(%p-%p) (%zu bytes)", region, page_start, - end, - size)); + clear_end, + clear_size)); + } + else + { + heap_segment_committed (region) = heap_segment_mem (region); } // Under USE_REGIONS, mark array is never partially committed. So we are only checking for this @@ -43661,7 +43660,7 @@ size_t gc_heap::decommit_region (heap_segment* region, int bucket, int h_number) assert ((region->flags & heap_segment_flags_ma_committed) == 0); global_region_allocator.delete_region (get_region_start (region)); - return size; + return decommit_size; } #endif //USE_REGIONS @@ -47180,7 +47179,6 @@ void gc_heap::verify_regions (bool can_verify_gen_num, bool concurrent_p) dprintf(3, ("commit-accounting: checkpoint for %d for heap %d", oh, heap_number)); total_committed = 0; } - } #endif //USE_REGIONS } @@ -51916,6 +51914,7 @@ bool GCHeap::IsConcurrentGCEnabled() void PopulateDacVars(GcDacVars *gcDacVars) { + bool v2 = gcDacVars->minor_version_number >= 2; #define DEFINE_FIELD(field_name, field_type) offsetof(CLASS_NAME, field_name), #define DEFINE_DPTR_FIELD(field_name, field_type) offsetof(CLASS_NAME, field_name), @@ -51927,10 +51926,7 @@ void PopulateDacVars(GcDacVars *gcDacVars) #define CLASS_NAME gc_heap #include "dac_gcheap_fields.h" #undef CLASS_NAME - - offsetof(gc_heap, generation_table) }; - static_assert(sizeof(gc_heap_field_offsets) == (GENERATION_TABLE_FIELD_INDEX + 1) * sizeof(int), "GENERATION_TABLE_INDEX mismatch"); #endif //MULTIPLE_HEAPS static int generation_field_offsets[] = { @@ -51945,7 +51941,6 @@ void PopulateDacVars(GcDacVars *gcDacVars) }; assert(gcDacVars != nullptr); - *gcDacVars = {}; // Note: These version numbers do not need to be checked in the .Net dac/SOS because // we always match the compiled dac and GC to the version used. NativeAOT's SOS may // work differently than .Net SOS. When making breaking changes here you may need to @@ -51984,8 +51979,11 @@ void PopulateDacVars(GcDacVars *gcDacVars) gcDacVars->mark_array = &gc_heap::mark_array; gcDacVars->background_saved_lowest_address = &gc_heap::background_saved_lowest_address; gcDacVars->background_saved_highest_address = &gc_heap::background_saved_highest_address; - gcDacVars->freeable_soh_segment = reinterpret_cast(&gc_heap::freeable_soh_segment); - gcDacVars->freeable_uoh_segment = reinterpret_cast(&gc_heap::freeable_uoh_segment); + if (v2) + { + gcDacVars->freeable_soh_segment = reinterpret_cast(&gc_heap::freeable_soh_segment); + gcDacVars->freeable_uoh_segment = reinterpret_cast(&gc_heap::freeable_uoh_segment); + } gcDacVars->next_sweep_obj = &gc_heap::next_sweep_obj; #ifdef USE_REGIONS gcDacVars->saved_sweep_ephemeral_seg = 0; @@ -52026,7 +52024,10 @@ void PopulateDacVars(GcDacVars *gcDacVars) gcDacVars->gc_heap_field_offsets = reinterpret_cast(&gc_heap_field_offsets); #endif // MULTIPLE_HEAPS gcDacVars->generation_field_offsets = reinterpret_cast(&generation_field_offsets); - gcDacVars->bookkeeping_start = &gc_heap::bookkeeping_start; + if (v2) + { + gcDacVars->bookkeeping_start = &gc_heap::bookkeeping_start; + } } int GCHeap::RefreshMemoryLimit() diff --git a/src/coreclr/gc/gcinterface.dac.h b/src/coreclr/gc/gcinterface.dac.h index 3eb66a61a003a..b3be7b09cee60 100644 --- a/src/coreclr/gc/gcinterface.dac.h +++ b/src/coreclr/gc/gcinterface.dac.h @@ -190,22 +190,9 @@ class dac_gc_heap { #undef DEFINE_DPTR_FIELD #undef DEFINE_FIELD #undef ALL_FIELDS - - // The generation table must always be last, because the size of this array - // (stored inline in the gc_heap class) can vary. - // - // The size of the generation class is not part of the GC-DAC interface, - // despite being embedded by-value into the gc_heap class. The DAC variable - // "generation_size" stores the size of the generation class, so the DAC can - // use it and pointer arithmetic to calculate correct offsets into the generation - // table. (See "GenerationTableIndex" function in the DAC for details) - // - // Also note that this array has length 1 because the C++ standard doesn't allow - // for 0-length arrays, although every major compiler is willing to tolerate it. - dac_generation generation_table[1]; }; -#define GENERATION_TABLE_FIELD_INDEX 21 +#define GENERATION_TABLE_FIELD_INDEX 18 // Unlike other DACized structures, these types are loaded manually in the debugger. // To avoid misuse, pointers to them are explicitly casted to these unused type. @@ -242,13 +229,7 @@ struct unused_generation // this structure contains __DPtrs for every DAC variable that will marshal values // from the debugee process to the debugger process when dereferenced. struct GcDacVars { - uint8_t major_version_number; - uint8_t minor_version_number; - size_t generation_size; - size_t total_generation_count; - int total_bookkeeping_elements; - int count_free_region_kinds; - size_t card_table_info_size; +#define GC_DAC_VAL(type, name) type name; #ifdef DACCESS_COMPILE #define GC_DAC_VAR(type, name) DPTR(type) name; #define GC_DAC_PTR_VAR(type, name) DPTR(type*) name; @@ -257,6 +238,7 @@ struct GcDacVars { #define GC_DAC_VAR(type, name) type *name; #endif #include "gcinterface.dacvars.def" +#undef GC_DAC_VAL }; #endif // _GC_INTERFACE_DAC_H_ diff --git a/src/coreclr/gc/gcinterface.dacvars.def b/src/coreclr/gc/gcinterface.dacvars.def index f9e0eb4be7e3b..a78b9d720930c 100644 --- a/src/coreclr/gc/gcinterface.dacvars.def +++ b/src/coreclr/gc/gcinterface.dacvars.def @@ -19,6 +19,15 @@ // degraded debugging experience. // Major version mismatches are not tolerated by the DAC and will be rejected upon load. +// Whenever we add field here, we need to bear in mind that we have a scenario for a new clrgc +// is used in an old runtime. In that case, the old runtime's DAC will have to interpret the +// fields the way it was. So fields should only be added at the end of the struct, and their +// loading in PopulateDacVars need to be version checked against a bumped up minor version. + +#ifndef GC_DAC_VAL + #define GC_DAC_VAL(type, name) +#endif // GC_DAC_VAL + #ifndef GC_DAC_VAR #define GC_DAC_VAR(type, name) #endif // GC_DAC_VAR @@ -33,6 +42,10 @@ // This sequence of macros defines the specific variables that are exposed by the // GC to the DAC. +GC_DAC_VAL (uint8_t, major_version_number) +GC_DAC_VAL (uint8_t, minor_version_number) +GC_DAC_VAL (size_t, generation_size) +GC_DAC_VAL (size_t, total_generation_count) GC_DAC_VAR (uint8_t, build_variant) GC_DAC_VAR (bool, built_with_svr) GC_DAC_ARRAY_VAR (size_t, gc_global_mechanisms) @@ -42,8 +55,6 @@ GC_DAC_PTR_VAR (uint32_t, mark_array) GC_DAC_VAR (c_gc_state, current_c_gc_state) GC_DAC_PTR_VAR (dac_heap_segment, ephemeral_heap_segment) GC_DAC_PTR_VAR (dac_heap_segment, saved_sweep_ephemeral_seg) -GC_DAC_PTR_VAR (dac_heap_segment, freeable_soh_segment) -GC_DAC_PTR_VAR (dac_heap_segment, freeable_uoh_segment) GC_DAC_PTR_VAR (uint8_t, saved_sweep_ephemeral_start) GC_DAC_PTR_VAR (uint8_t, background_saved_lowest_address) GC_DAC_PTR_VAR (uint8_t, background_saved_highest_address) @@ -69,6 +80,14 @@ GC_DAC_ARRAY_VAR (dac_region_free_list, global_regions_to_decommit) GC_DAC_PTR_VAR (dac_region_free_list, global_free_huge_regions) GC_DAC_ARRAY_VAR (dac_region_free_list, free_regions) +// Here is where v5.2 fields starts + +GC_DAC_PTR_VAR (dac_heap_segment, freeable_soh_segment) +GC_DAC_PTR_VAR (dac_heap_segment, freeable_uoh_segment) +GC_DAC_VAL (int, total_bookkeeping_elements) +GC_DAC_VAL (int, count_free_region_kinds) +GC_DAC_VAL (size_t, card_table_info_size) + #undef GC_DAC_VAR #undef GC_DAC_ARRAY_VAR #undef GC_DAC_PTR_VAR diff --git a/src/coreclr/gc/gcinterface.h b/src/coreclr/gc/gcinterface.h index 5f779a3611d79..666bc45c621a7 100644 --- a/src/coreclr/gc/gcinterface.h +++ b/src/coreclr/gc/gcinterface.h @@ -11,7 +11,7 @@ // The minor version of the IGCHeap interface. Non-breaking changes are required // to bump the minor version number. GCs and EEs with minor version number // mismatches can still interoperate correctly, with some care. -#define GC_INTERFACE_MINOR_VERSION 1 +#define GC_INTERFACE_MINOR_VERSION 2 // The major version of the IGCToCLR interface. Breaking changes to this interface // require bumps in the major version number. diff --git a/src/coreclr/inc/CrstTypes.def b/src/coreclr/inc/CrstTypes.def index 9c92df1205d9e..3a1e81f84f868 100644 --- a/src/coreclr/inc/CrstTypes.def +++ b/src/coreclr/inc/CrstTypes.def @@ -159,6 +159,7 @@ End Crst DebuggerMutex AcquiredBefore AvailableParamTypes DynamicIL LoaderHeap ModuleLookupTable + MethodDescBackpatchInfoTracker JitInlineTrackingMap CodeVersioning // Disabled per bug 581892 // AcquiredBefore DebuggerController @@ -489,6 +490,7 @@ Crst ThreadStore DebuggerHeapLock DebuggerJitInfo DynamicIL ExecuteManRangeLock HandleTable IbcProfile JitGenericHandleCache JumpStubCache LoaderHeap ModuleLookupTable ProfilerGCRefDataFreeList SingleUseLock SyncBlockCache SystemDomainDelayedUnloadList ThreadIdDispenser DebuggerMutex + JitInlineTrackingMap End Crst TypeIDMap @@ -540,7 +542,7 @@ Crst InlineTrackingMap End Crst JitInlineTrackingMap - AcquiredBefore CodeVersioning ThreadStore MethodDescBackpatchInfoTracker + AcquiredBefore CodeVersioning MethodDescBackpatchInfoTracker End Crst EventPipe diff --git a/src/coreclr/inc/cordebug.idl b/src/coreclr/inc/cordebug.idl index 5d8c5e1fa0c6d..18a1865d5497a 100644 --- a/src/coreclr/inc/cordebug.idl +++ b/src/coreclr/inc/cordebug.idl @@ -286,7 +286,8 @@ interface ICorDebugDataTarget : IUnknown CORDB_PLATFORM_POSIX_X86, // Posix supporting OS on Intel x86 CORDB_PLATFORM_POSIX_ARM, // Posix supporting OS on ARM32 CORDB_PLATFORM_POSIX_ARM64, // Posix supporting OS on ARM64 - CORDB_PLATFORM_POSIX_LOONGARCH64 // Posix supporting OS on LoongArch64 + CORDB_PLATFORM_POSIX_LOONGARCH64, // Posix supporting OS on LoongArch64 + CORDB_PLATFORM_POSIX_RISCV64 // Posix supporting OS on RISC64 } CorDebugPlatform; HRESULT GetPlatform([out] CorDebugPlatform * pTargetPlatform); @@ -3985,6 +3986,72 @@ interface ICorDebugRegisterSet : IUnknown REGISTER_LOONGARCH64_F30, REGISTER_LOONGARCH64_F31, + REGISTER_RISCV64_PC = 0, + REGISTER_RISCV64_RA, + REGISTER_RISCV64_SP, + REGISTER_RISCV64_GP, + REGISTER_RISCV64_TP, + REGISTER_RISCV64_T0, + REGISTER_RISCV64_T1, + REGISTER_RISCV64_T2, + REGISTER_RISCV64_FP, + REGISTER_RISCV64_S1, + REGISTER_RISCV64_A0, + REGISTER_RISCV64_A1, + REGISTER_RISCV64_A2, + REGISTER_RISCV64_A3, + REGISTER_RISCV64_A4, + REGISTER_RISCV64_A5, + REGISTER_RISCV64_A6, + REGISTER_RISCV64_A7, + REGISTER_RISCV64_S2, + REGISTER_RISCV64_S3, + REGISTER_RISCV64_S4, + REGISTER_RISCV64_S5, + REGISTER_RISCV64_S6, + REGISTER_RISCV64_S7, + REGISTER_RISCV64_S8, + REGISTER_RISCV64_S9, + REGISTER_RISCV64_S10, + REGISTER_RISCV64_S11, + REGISTER_RISCV64_T3, + REGISTER_RISCV64_T4, + REGISTER_RISCV64_T5, + REGISTER_RISCV64_T6, + REGISTER_RISCV64_F0, + REGISTER_RISCV64_F1, + REGISTER_RISCV64_F2, + REGISTER_RISCV64_F3, + REGISTER_RISCV64_F4, + REGISTER_RISCV64_F5, + REGISTER_RISCV64_F6, + REGISTER_RISCV64_F7, + REGISTER_RISCV64_F8, + REGISTER_RISCV64_F9, + REGISTER_RISCV64_F10, + REGISTER_RISCV64_F11, + REGISTER_RISCV64_F12, + REGISTER_RISCV64_F13, + REGISTER_RISCV64_F14, + REGISTER_RISCV64_F15, + REGISTER_RISCV64_F16, + REGISTER_RISCV64_F17, + REGISTER_RISCV64_F18, + REGISTER_RISCV64_F19, + REGISTER_RISCV64_F20, + REGISTER_RISCV64_F21, + REGISTER_RISCV64_F22, + REGISTER_RISCV64_F23, + REGISTER_RISCV64_F24, + REGISTER_RISCV64_F25, + REGISTER_RISCV64_F26, + REGISTER_RISCV64_F27, + REGISTER_RISCV64_F28, + REGISTER_RISCV64_F29, + REGISTER_RISCV64_F30, + REGISTER_RISCV64_F31, + REGISTER_RISCV64_X0, // TODO-RISCV64-CQ: Add X0 for an use in debug. Need to check. + // other architectures here } CorDebugRegister; @@ -5706,6 +5773,29 @@ interface ICorDebugFunction4 : IUnknown HRESULT CreateNativeBreakpoint(ICorDebugFunctionBreakpoint **ppBreakpoint); }; +/* +ICorDebugFunction5 is a logical extension to ICorDebugFunction. +*/ +[ + object, + local, + uuid(9D4DAB7B-3401-4F37-BD08-CA09F3FDF10F), + pointer_default(unique) +] +interface ICorDebugFunction5 : IUnknown +{ + /* + * Triggers a new JIT so the next time the function is called, it will be unoptimized. Will + * trigger a JIT even for R2R code. + */ + HRESULT DisableOptimizations(); + + /* + * Indicates whether this method had optimizations disabled already. + */ + HRESULT AreOptimizationsDisabled(BOOL *pOptimizationsDisabled); +}; + /* ICorDebugCode represents an IL or native code blob. diff --git a/src/coreclr/inc/corinfo.h b/src/coreclr/inc/corinfo.h index ea1e0c10ec954..25634caea84e1 100644 --- a/src/coreclr/inc/corinfo.h +++ b/src/coreclr/inc/corinfo.h @@ -633,6 +633,7 @@ enum CorInfoHelpFunc CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED, // throw PlatformNotSupportedException CORINFO_HELP_THROW_TYPE_NOT_SUPPORTED, // throw TypeNotSupportedException CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION, // throw AmbiguousResolutionException for failed static virtual method resolution + CORINFO_HELP_THROW_ENTRYPOINT_NOT_FOUND_EXCEPTION, // throw EntryPointNotFoundException for failed static virtual method resolution CORINFO_HELP_JIT_PINVOKE_BEGIN, // Transition to preemptive mode before a P/Invoke, frame is the first argument CORINFO_HELP_JIT_PINVOKE_END, // Transition to cooperative mode after a P/Invoke, frame is the first argument diff --git a/src/coreclr/inc/corprof.idl b/src/coreclr/inc/corprof.idl index e2cbfb6a638f7..b88a21aa707f1 100644 --- a/src/coreclr/inc/corprof.idl +++ b/src/coreclr/inc/corprof.idl @@ -2648,6 +2648,7 @@ typedef enum { COR_PRF_CODEGEN_DISABLE_INLINING = 0x0001, COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x0002, + COR_PRF_CODEGEN_DEBUG_INFO = 0x0003, } COR_PRF_CODEGEN_FLAGS; diff --git a/src/coreclr/inc/crsttypes_generated.h b/src/coreclr/inc/crsttypes_generated.h index 630827961df30..9710f65afcd39 100644 --- a/src/coreclr/inc/crsttypes_generated.h +++ b/src/coreclr/inc/crsttypes_generated.h @@ -149,12 +149,12 @@ int g_rgCrstLevelMap[] = 10, // CrstAppDomainCache 3, // CrstArgBasedStubCache 3, // CrstAssemblyList - 12, // CrstAssemblyLoader + 14, // CrstAssemblyLoader 4, // CrstAvailableClass 5, // CrstAvailableParamTypes 7, // CrstBaseDomain -1, // CrstCCompRC - 13, // CrstClassFactInfoHash + 15, // CrstClassFactInfoHash 11, // CrstClassInit -1, // CrstClrNotification 6, // CrstCodeFragmentHeap @@ -170,13 +170,13 @@ int g_rgCrstLevelMap[] = 0, // CrstDebuggerHeapExecMemLock 0, // CrstDebuggerHeapLock 4, // CrstDebuggerJitInfo - 10, // CrstDebuggerMutex + 13, // CrstDebuggerMutex 0, // CrstDelegateToFPtrHash - 16, // CrstDomainLocalBlock + 18, // CrstDomainLocalBlock 0, // CrstDynamicIL 3, // CrstDynamicMT 0, // CrstEtwTypeLogHash - 18, // CrstEventPipe + 20, // CrstEventPipe 0, // CrstEventStore 0, // CrstException 0, // CrstExecutableAllocatorLock @@ -187,55 +187,55 @@ int g_rgCrstLevelMap[] = 7, // CrstFuncPtrStubs 10, // CrstFusionAppCtx 10, // CrstGCCover - 15, // CrstGlobalStrLiteralMap + 17, // CrstGlobalStrLiteralMap 1, // CrstHandleTable 0, // CrstIbcProfile 8, // CrstIJWFixupData 0, // CrstIJWHash 7, // CrstILStubGen 3, // CrstInlineTrackingMap - 17, // CrstInstMethodHashTable - 20, // CrstInterop + 19, // CrstInstMethodHashTable + 22, // CrstInterop 10, // CrstInteropData 0, // CrstIsJMCMethod 7, // CrstISymUnmanagedReader 11, // CrstJit 0, // CrstJitGenericHandleCache - 13, // CrstJitInlineTrackingMap + 12, // CrstJitInlineTrackingMap 4, // CrstJitPatchpoint -1, // CrstJitPerf 6, // CrstJumpStubCache 0, // CrstLeafLock -1, // CrstListLock - 15, // CrstLoaderAllocator - 16, // CrstLoaderAllocatorReferences + 17, // CrstLoaderAllocator + 18, // CrstLoaderAllocatorReferences 3, // CrstLoaderHeap 3, // CrstManagedObjectWrapperMap 10, // CrstMethodDescBackpatchInfoTracker -1, // CrstMethodTableExposedObject 5, // CrstModule - 16, // CrstModuleFixup + 18, // CrstModuleFixup 4, // CrstModuleLookupTable 0, // CrstMulticoreJitHash - 13, // CrstMulticoreJitManager + 15, // CrstMulticoreJitManager 3, // CrstNativeImageEagerFixups 0, // CrstNativeImageLoad 0, // CrstNls 0, // CrstNotifyGdb 2, // CrstObjectList 5, // CrstPEImage - 19, // CrstPendingTypeLoadEntry + 21, // CrstPendingTypeLoadEntry 0, // CrstPerfMap 4, // CrstPgoData 0, // CrstPinnedByrefValidation - 14, // CrstPinnedHeapHandleTable + 16, // CrstPinnedHeapHandleTable 0, // CrstProfilerGCRefDataFreeList - 13, // CrstProfilingAPIStatus + 15, // CrstProfilingAPIStatus 4, // CrstRCWCache 0, // CrstRCWCleanupList 10, // CrstReadyToRunEntryPointToMethodDescMap 8, // CrstReflection - 14, // CrstReJITGlobalRequest + 16, // CrstReJITGlobalRequest 4, // CrstRetThunkCache 3, // CrstSavedExceptionInfo 0, // CrstSaveModuleProfileData @@ -244,7 +244,7 @@ int g_rgCrstLevelMap[] = 5, // CrstSingleUseLock 0, // CrstSpecialStatics 0, // CrstStackSampler - 13, // CrstStaticBoxInit + 15, // CrstStaticBoxInit -1, // CrstStressLog 5, // CrstStubCache 0, // CrstStubDispatchCache @@ -252,10 +252,10 @@ int g_rgCrstLevelMap[] = 3, // CrstSyncBlockCache 0, // CrstSyncHashLock 5, // CrstSystemBaseDomain - 13, // CrstSystemDomain + 15, // CrstSystemDomain 0, // CrstSystemDomainDelayedUnloadList 0, // CrstThreadIdDispenser - 12, // CrstThreadStore + 14, // CrstThreadStore 8, // CrstTieredCompilation 4, // CrstTypeEquivalenceMap 10, // CrstTypeIDMap diff --git a/src/coreclr/inc/jiteeversionguid.h b/src/coreclr/inc/jiteeversionguid.h index 6c6f7e8283c01..bcd85a573d69b 100644 --- a/src/coreclr/inc/jiteeversionguid.h +++ b/src/coreclr/inc/jiteeversionguid.h @@ -43,11 +43,11 @@ typedef const GUID *LPCGUID; #define GUID_DEFINED #endif // !GUID_DEFINED -constexpr GUID JITEEVersionIdentifier = { /* 02e334af-4e6e-4a68-9feb-308d3d2661bc */ - 0x2e334af, - 0x4e6e, - 0x4a68, - {0x9f, 0xeb, 0x30, 0x8d, 0x3d, 0x26, 0x61, 0xbc} +constexpr GUID JITEEVersionIdentifier = { /* cef79bc8-29bf-4f7b-9d05-9fc06832098c */ + 0xcef79bc8, + 0x29bf, + 0x4f7b, + {0x9d, 0x05, 0x9f, 0xc0, 0x68, 0x32, 0x09, 0x8c} }; ////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/coreclr/inc/jithelpers.h b/src/coreclr/inc/jithelpers.h index 1913a428da942..d34696ac1c983 100644 --- a/src/coreclr/inc/jithelpers.h +++ b/src/coreclr/inc/jithelpers.h @@ -317,6 +317,7 @@ JITHELPER(CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED, JIT_ThrowPlatformNotSupportedException, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_THROW_TYPE_NOT_SUPPORTED, JIT_ThrowTypeNotSupportedException, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION, JIT_ThrowAmbiguousResolutionException, CORINFO_HELP_SIG_REG_ONLY) + JITHELPER(CORINFO_HELP_THROW_ENTRYPOINT_NOT_FOUND_EXCEPTION, JIT_ThrowEntryPointNotFoundException, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_JIT_PINVOKE_BEGIN, JIT_PInvokeBegin, CORINFO_HELP_SIG_REG_ONLY) JITHELPER(CORINFO_HELP_JIT_PINVOKE_END, JIT_PInvokeEnd, CORINFO_HELP_SIG_REG_ONLY) diff --git a/src/coreclr/inc/stresslog.h b/src/coreclr/inc/stresslog.h index 73151773e0aea..cdc4b58ab9a4b 100644 --- a/src/coreclr/inc/stresslog.h +++ b/src/coreclr/inc/stresslog.h @@ -372,7 +372,9 @@ class StressLog { { size_t headerSize; // size of this header including size field and moduleImage uint32_t magic; // must be 'STRL' - uint32_t version; // must be 0x00010001 + uint32_t version; // must be >=0x00010001. + // 0x00010001 is the legacy short-offset format. + // 0x00010002 is the large-module-offset format introduced in .NET 8. uint8_t* memoryBase; // base address of the memory mapped file uint8_t* memoryCur; // highest address currently used uint8_t* memoryLimit; // limit that can be used diff --git a/src/coreclr/jit/codegencommon.cpp b/src/coreclr/jit/codegencommon.cpp index b25b8da4b606c..7509ddc74f2f9 100644 --- a/src/coreclr/jit/codegencommon.cpp +++ b/src/coreclr/jit/codegencommon.cpp @@ -1966,6 +1966,11 @@ void CodeGen::genEmitMachineCode() trackedStackPtrsContig = !compiler->opts.compDbgEnC; #endif + if (compiler->opts.disAsm) + { + printf("; BEGIN METHOD %s\n", compiler->eeGetMethodFullName(compiler->info.compMethodHnd)); + } + codeSize = GetEmitter()->emitEndCodeGen(compiler, trackedStackPtrsContig, GetInterruptible(), IsFullPtrRegMapRequired(), compiler->compHndBBtabCount, &prologSize, &epilogSize, codePtr, &coldCodePtr, &consPtr DEBUGARG(&instrCount)); @@ -1985,6 +1990,11 @@ void CodeGen::genEmitMachineCode() ((double)compiler->info.compTotalColdCodeSize * (double)PERFSCORE_CODESIZE_COST_COLD); #endif // DEBUG || LATE_DISASM + if (compiler->opts.disAsm) + { + printf("; END METHOD %s\n", compiler->eeGetMethodFullName(compiler->info.compMethodHnd)); + } + #ifdef DEBUG if (compiler->opts.disAsm || verbose) { diff --git a/src/coreclr/jit/fginline.cpp b/src/coreclr/jit/fginline.cpp index 82c3a3328b93f..fb55a115d8ca2 100644 --- a/src/coreclr/jit/fginline.cpp +++ b/src/coreclr/jit/fginline.cpp @@ -42,7 +42,7 @@ unsigned Compiler::fgCheckInlineDepthAndRecursion(InlineInfo* inlineInfo) assert(inlineContext->GetCode() != nullptr); depth++; - if ((inlineContext->GetCode() == candidateCode) && (inlineContext->GetCallee() == inlineInfo->fncHandle) && + if ((inlineContext->GetCallee() == inlineInfo->fncHandle) && (inlineContext->GetRuntimeContext() == inlineInfo->inlineCandidateInfo->exactContextHnd)) { // This is a recursive inline diff --git a/src/coreclr/jit/promotion.cpp b/src/coreclr/jit/promotion.cpp index 11743cf7d3e5e..e2c4e797a3c9d 100644 --- a/src/coreclr/jit/promotion.cpp +++ b/src/coreclr/jit/promotion.cpp @@ -2404,6 +2404,14 @@ void ReplaceVisitor::ReplaceLocal(GenTree** use, GenTree* user) { lcl->gtFlags |= GTF_VAR_DEATH; CheckForwardSubForLastUse(lclNum); + + // Relying on the values in the struct local after this struct use + // would effectively introduce another use of the struct, so + // indicate that no replacements are up to date. + for (Replacement& rep : replacements) + { + SetNeedsWriteBack(rep); + } } return; } diff --git a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets index 8b1846092059a..d8cd01c2e2501 100644 --- a/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets +++ b/src/coreclr/nativeaot/BuildIntegration/Microsoft.NETCore.Native.Publish.targets @@ -49,7 +49,7 @@ - + @@ -106,7 +106,7 @@ + Condition="Exists('$(NativeOutputPath)$(TargetName)$(_symbolExt)') and '$(CopyOutputSymbolsToPublishDirectory)' == 'true'" /> diff --git a/src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/ThunkPool.cs b/src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/ThunkPool.cs index 7204c3fa9d011..d8f9d7c31cb59 100644 --- a/src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/ThunkPool.cs +++ b/src/coreclr/nativeaot/Runtime.Base/src/System/Runtime/ThunkPool.cs @@ -25,7 +25,7 @@ // // With FEATURE_RX_THUNKS, thunks are created by allocating new virtual memory space, where the first half of // that space is filled with thunk stubs, and gets RX permissions, and the second half is for the thunks data, -// and gets RW permissions. The thunk stubs and data blocks are not in groupped in pairs: +// and gets RW permissions. The thunk stubs and data blocks are not grouped in pairs: // all the thunk stubs blocks are groupped at the beginning of the allocated virtual memory space, and all the // thunk data blocks are groupped in the second half of the virtual space. // @@ -40,20 +40,12 @@ namespace System.Runtime { internal static class Constants { -#if TARGET_ARM64 && (TARGET_OSX || TARGET_MACCATALYST || TARGET_IOS || TARGET_TVOS) - public const uint PageSize = 0x4000; // 16k - public const nuint PageSizeMask = 0x3FFF; -#else - public const uint PageSize = 0x1000; // 4k - public const nuint PageSizeMask = 0xFFF; -#endif - public const uint AllocationGranularity = 0x10000; // 64k - public const nuint AllocationGranularityMask = 0xFFFF; - public static readonly int ThunkDataSize = 2 * IntPtr.Size; public static readonly int ThunkCodeSize = InternalCalls.RhpGetThunkSize(); public static readonly int NumThunksPerBlock = InternalCalls.RhpGetNumThunksPerBlock(); public static readonly int NumThunkBlocksPerMapping = InternalCalls.RhpGetNumThunkBlocksPerMapping(); + public static readonly uint ThunkBlockSize = (uint)InternalCalls.RhpGetThunkBlockSize(); + public static readonly nuint ThunkBlockSizeMask = ThunkBlockSize - 1; } internal class ThunksHeap @@ -105,11 +97,11 @@ private unsafe ThunksHeap(IntPtr commonStubAddress) IntPtr thunkDataBlock = InternalCalls.RhpGetThunkDataBlockAddress(thunkStubsBlock); // Address of the first thunk data cell should be at the beginning of the thunks data block (page-aligned) - Debug.Assert(((nuint)(nint)thunkDataBlock % Constants.PageSize) == 0); + Debug.Assert(((nuint)(nint)thunkDataBlock % Constants.ThunkBlockSize) == 0); // Update the last pointer value in the thunks data section with the value of the common stub address - *(IntPtr*)(thunkDataBlock + (int)(Constants.PageSize - IntPtr.Size)) = commonStubAddress; - Debug.Assert(*(IntPtr*)(thunkDataBlock + (int)(Constants.PageSize - IntPtr.Size)) == commonStubAddress); + *(IntPtr*)(thunkDataBlock + (int)(Constants.ThunkBlockSize - IntPtr.Size)) = commonStubAddress; + Debug.Assert(*(IntPtr*)(thunkDataBlock + (int)(Constants.ThunkBlockSize - IntPtr.Size)) == commonStubAddress); // Set the head and end of the linked list _nextAvailableThunkPtr = thunkDataBlock; @@ -161,11 +153,11 @@ private unsafe bool ExpandHeap() IntPtr thunkDataBlock = InternalCalls.RhpGetThunkDataBlockAddress(thunkStubsBlock); // Address of the first thunk data cell should be at the beginning of the thunks data block (page-aligned) - Debug.Assert(((nuint)(nint)thunkDataBlock % Constants.PageSize) == 0); + Debug.Assert(((nuint)(nint)thunkDataBlock % Constants.ThunkBlockSize) == 0); // Update the last pointer value in the thunks data section with the value of the common stub address - *(IntPtr*)(thunkDataBlock + (int)(Constants.PageSize - IntPtr.Size)) = _commonStubAddress; - Debug.Assert(*(IntPtr*)(thunkDataBlock + (int)(Constants.PageSize - IntPtr.Size)) == _commonStubAddress); + *(IntPtr*)(thunkDataBlock + (int)(Constants.ThunkBlockSize - IntPtr.Size)) = _commonStubAddress; + Debug.Assert(*(IntPtr*)(thunkDataBlock + (int)(Constants.ThunkBlockSize - IntPtr.Size)) == _commonStubAddress); // Link the last entry in the old list to the first entry in the new list *((IntPtr*)_lastThunkPtr) = thunkDataBlock; @@ -220,7 +212,7 @@ public unsafe IntPtr AllocateThunk() *((IntPtr*)(nextAvailableThunkPtr + IntPtr.Size)) = IntPtr.Zero; #endif - int thunkIndex = (int)(((nuint)(nint)nextAvailableThunkPtr) - ((nuint)(nint)nextAvailableThunkPtr & ~Constants.PageSizeMask)); + int thunkIndex = (int)(((nuint)(nint)nextAvailableThunkPtr) - ((nuint)(nint)nextAvailableThunkPtr & ~Constants.ThunkBlockSizeMask)); Debug.Assert((thunkIndex % Constants.ThunkDataSize) == 0); thunkIndex /= Constants.ThunkDataSize; @@ -279,7 +271,7 @@ private static IntPtr TryGetThunkDataAddress(IntPtr thunkAddress) nuint thunkAddressValue = (nuint)(nint)ClearThumbBit(thunkAddress); // Compute the base address of the thunk's mapping - nuint currentThunksBlockAddress = thunkAddressValue & ~Constants.PageSizeMask; + nuint currentThunksBlockAddress = thunkAddressValue & ~Constants.ThunkBlockSizeMask; // Make sure the thunk address is valid by checking alignment if ((thunkAddressValue - currentThunksBlockAddress) % (nuint)Constants.ThunkCodeSize != 0) diff --git a/src/coreclr/nativeaot/Runtime/CommonMacros.h b/src/coreclr/nativeaot/Runtime/CommonMacros.h index 53467c1a130b4..8eb58f7312bf2 100644 --- a/src/coreclr/nativeaot/Runtime/CommonMacros.h +++ b/src/coreclr/nativeaot/Runtime/CommonMacros.h @@ -132,42 +132,32 @@ inline bool IS_ALIGNED(T* val, uintptr_t alignment); #endif #ifndef __GCENV_BASE_INCLUDED__ + +#if defined(HOST_WASM) +#define OS_PAGE_SIZE 0x4 +#else +#define OS_PAGE_SIZE PalOsPageSize() +#endif + #if defined(HOST_AMD64) #define DATA_ALIGNMENT 8 -#define OS_PAGE_SIZE 0x1000 #elif defined(HOST_X86) #define DATA_ALIGNMENT 4 -#ifndef OS_PAGE_SIZE -#define OS_PAGE_SIZE 0x1000 -#endif #elif defined(HOST_ARM) #define DATA_ALIGNMENT 4 -#ifndef OS_PAGE_SIZE -#define OS_PAGE_SIZE 0x1000 -#endif #elif defined(HOST_ARM64) #define DATA_ALIGNMENT 8 -#ifndef OS_PAGE_SIZE -#ifdef HOST_APPLE -#define OS_PAGE_SIZE 0x4000 -#else -#define OS_PAGE_SIZE 0x1000 -#endif -#endif #elif defined(HOST_WASM) #define DATA_ALIGNMENT 4 -#ifndef OS_PAGE_SIZE -#define OS_PAGE_SIZE 0x4 -#endif #else #error Unsupported target architecture diff --git a/src/coreclr/nativeaot/Runtime/PalRedhawk.h b/src/coreclr/nativeaot/Runtime/PalRedhawk.h index 11d5c8f8ee51f..88785b4ec1412 100644 --- a/src/coreclr/nativeaot/Runtime/PalRedhawk.h +++ b/src/coreclr/nativeaot/Runtime/PalRedhawk.h @@ -726,6 +726,7 @@ struct UNIX_CONTEXT; #endif #ifdef TARGET_UNIX +REDHAWK_PALIMPORT uint32_t REDHAWK_PALAPI PalGetOsPageSize(); REDHAWK_PALIMPORT void REDHAWK_PALAPI PalSetHardwareExceptionHandler(PHARDWARE_EXCEPTION_HANDLER handler); #else REDHAWK_PALIMPORT void* REDHAWK_PALAPI PalAddVectoredExceptionHandler(uint32_t firstHandler, _In_ PVECTORED_EXCEPTION_HANDLER vectoredHandler); diff --git a/src/coreclr/nativeaot/Runtime/ThunksMapping.cpp b/src/coreclr/nativeaot/Runtime/ThunksMapping.cpp index 30d3c4722e8a4..2b877fc9bfd22 100644 --- a/src/coreclr/nativeaot/Runtime/ThunksMapping.cpp +++ b/src/coreclr/nativeaot/Runtime/ThunksMapping.cpp @@ -28,7 +28,8 @@ static_assert((THUNK_SIZE % 4) == 0, "Thunk stubs size not aligned correctly. This will cause runtime failures."); -#define THUNKS_MAP_SIZE 0x8000 // 32 K +// 32 K or OS page +#define THUNKS_MAP_SIZE (max(0x8000, OS_PAGE_SIZE)) #ifdef TARGET_ARM //***************************************************************************** @@ -56,7 +57,7 @@ void EncodeThumb2Mov32(uint16_t * pCode, uint32_t value, uint8_t rDestination) COOP_PINVOKE_HELPER(int, RhpGetNumThunkBlocksPerMapping, ()) { - static_assert((THUNKS_MAP_SIZE % OS_PAGE_SIZE) == 0, "Thunks map size should be in multiples of pages"); + ASSERT_MSG((THUNKS_MAP_SIZE % OS_PAGE_SIZE) == 0, "Thunks map size should be in multiples of pages"); return THUNKS_MAP_SIZE / OS_PAGE_SIZE; } diff --git a/src/coreclr/nativeaot/Runtime/allocheap.cpp b/src/coreclr/nativeaot/Runtime/allocheap.cpp index 2f76d4892c835..5183e4ebcd2f1 100644 --- a/src/coreclr/nativeaot/Runtime/allocheap.cpp +++ b/src/coreclr/nativeaot/Runtime/allocheap.cpp @@ -137,7 +137,7 @@ uint8_t * AllocHeap::_Alloc( #endif // FEATURE_RWX_MEMORY ASSERT((alignment & (alignment - 1)) == 0); // Power of 2 only. - ASSERT(alignment <= OS_PAGE_SIZE); // Can't handle this right now. + ASSERT((int32_t)alignment <= OS_PAGE_SIZE); // Can't handle this right now. ASSERT((m_rwProtectType == m_roProtectType) == (pRWAccessHolder == NULL)); ASSERT(!_UseAccessManager() || pRWAccessHolder != NULL); @@ -276,7 +276,7 @@ bool AllocHeap::_UpdateMemPtrs(uint8_t* pNextFree) //------------------------------------------------------------------------------------------------- bool AllocHeap::_AllocNewBlock(uintptr_t cbMem) { - cbMem = ALIGN_UP(max(cbMem, s_minBlockSize), OS_PAGE_SIZE);; + cbMem = ALIGN_UP(cbMem, OS_PAGE_SIZE); uint8_t * pbMem = reinterpret_cast (PalVirtualAlloc(NULL, cbMem, MEM_COMMIT, m_roProtectType)); diff --git a/src/coreclr/nativeaot/Runtime/allocheap.h b/src/coreclr/nativeaot/Runtime/allocheap.h index 08f244fd63842..f4203909f8673 100644 --- a/src/coreclr/nativeaot/Runtime/allocheap.h +++ b/src/coreclr/nativeaot/Runtime/allocheap.h @@ -74,8 +74,6 @@ class AllocHeap bool _UpdateMemPtrs(uint8_t* pNextFree); bool _UseAccessManager() { return m_rwProtectType != m_roProtectType; } - static const uintptr_t s_minBlockSize = OS_PAGE_SIZE; - typedef rh::util::MemRange Block; typedef DPTR(Block) PTR_Block; struct BlockListElem : public Block diff --git a/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.S b/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.S index 34acbfe3795e8..757637f1d7aac 100644 --- a/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.S +++ b/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.S @@ -15,7 +15,7 @@ // // See also https://github.com/dotnet/runtime/issues/9899 for more information. -#define PAGE_SIZE 0x1000 +#define PROBE_STEP 0x1000 NESTED_ENTRY RhpStackProbe, _TEXT, NoHandler // On entry: @@ -32,11 +32,11 @@ NESTED_ENTRY RhpStackProbe, _TEXT, NoHandler END_PROLOGUE - and rsp, -PAGE_SIZE // rsp points to the **lowest address** on the last probed page + and rsp, -PROBE_STEP // rsp points to the **lowest address** on the last probed page // This is done to make the following loop end condition simpler. LOCAL_LABEL(ProbeLoop): - sub rsp, PAGE_SIZE // rsp points to the lowest address of the **next page** to probe + sub rsp, PROBE_STEP // rsp points to the lowest address of the **next page** to probe test dword ptr [rsp], eax // rsp points to the lowest address on the **last probed** page cmp rsp, r11 jg LOCAL_LABEL(ProbeLoop) // if (rsp > r11), then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.asm b/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.asm index c3eb1fc2964ea..098c402b2106e 100644 --- a/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.asm +++ b/src/coreclr/nativeaot/Runtime/amd64/MiscStubs.asm @@ -11,7 +11,7 @@ include AsmMacros.inc ; ; NOTE: this helper will NOT modify a value of rsp and can be defined as a leaf function. -PAGE_SIZE equ 1000h +PROBE_STEP equ 1000h LEAF_ENTRY RhpStackProbe, _TEXT ; On entry: @@ -24,11 +24,11 @@ LEAF_ENTRY RhpStackProbe, _TEXT ; NOTE: this helper will probe at least one page below the one pointed by rsp. mov rax, rsp ; rax points to some byte on the last probed page - and rax, -PAGE_SIZE ; rax points to the **lowest address** on the last probed page + and rax, -PROBE_STEP ; rax points to the **lowest address** on the last probed page ; This is done to make the following loop end condition simpler. ProbeLoop: - sub rax, PAGE_SIZE ; rax points to the lowest address of the **next page** to probe + sub rax, PROBE_STEP ; rax points to the lowest address of the **next page** to probe test dword ptr [rax], eax ; rax points to the lowest address on the **last probed** page cmp rax, r11 jg ProbeLoop ; If (rax > r11), then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/arm/MiscStubs.S b/src/coreclr/nativeaot/Runtime/arm/MiscStubs.S index 65b3d72c98026..c1a7ccc5223d2 100644 --- a/src/coreclr/nativeaot/Runtime/arm/MiscStubs.S +++ b/src/coreclr/nativeaot/Runtime/arm/MiscStubs.S @@ -20,20 +20,20 @@ // r5 - is not preserved // // NOTE: this helper will probe at least one page below the one pointed to by sp. -#define PROBE_PAGE_SIZE 4096 -#define PROBE_PAGE_SIZE_LOG2 12 +#define PROBE_STEP 4096 +#define PROBE_STEP_LOG2 12 LEAF_ENTRY RhpStackProbe, _TEXT PROLOG_PUSH "{r7}" PROLOG_STACK_SAVE r7 mov r5, sp // r5 points to some byte on the last probed page - bfc r5, #0, #PROBE_PAGE_SIZE_LOG2 // r5 points to the **lowest address** on the last probed page + bfc r5, #0, #PROBE_STEP_LOG2 // r5 points to the **lowest address** on the last probed page mov sp, r5 ProbeLoop: // Immediate operand for the following instruction can not be greater than 4095. - sub sp, #(PROBE_PAGE_SIZE - 4) // sp points to the **fourth** byte on the **next page** to probe + sub sp, #(PROBE_STEP - 4) // sp points to the **fourth** byte on the **next page** to probe ldr r5, [sp, #-4]! // sp points to the lowest address on the **last probed** page cmp sp, r4 bhi ProbeLoop // If (sp > r4), then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/eventpipe/ep-rt-aot.cpp b/src/coreclr/nativeaot/Runtime/eventpipe/ep-rt-aot.cpp index 90d2c27523c28..944d7714880b9 100644 --- a/src/coreclr/nativeaot/Runtime/eventpipe/ep-rt-aot.cpp +++ b/src/coreclr/nativeaot/Runtime/eventpipe/ep-rt-aot.cpp @@ -28,6 +28,14 @@ #include "holder.h" #include "SpinLock.h" +#ifndef DIRECTORY_SEPARATOR_CHAR +#ifdef TARGET_UNIX +#define DIRECTORY_SEPARATOR_CHAR '/' +#else // TARGET_UNIX +#define DIRECTORY_SEPARATOR_CHAR '\\' +#endif // TARGET_UNIX +#endif + #ifdef TARGET_UNIX // Per module (1 for NativeAOT), key that will be used to implement TLS in Unix pthread_key_t eventpipe_tls_key; @@ -41,7 +49,6 @@ thread_local EventPipeAotThreadHolderTLS EventPipeAotThreadHolderTLS::g_threadHo ep_rt_lock_handle_t _ep_rt_aot_config_lock_handle; CrstStatic _ep_rt_aot_config_lock; -ep_char8_t *volatile _ep_rt_aot_diagnostics_cmd_line; #ifndef TARGET_UNIX uint32_t *_ep_rt_aot_proc_group_offsets; @@ -88,9 +95,63 @@ ep_rt_aot_sample_profiler_write_sampling_event_for_threads ( const ep_char8_t * ep_rt_aot_entrypoint_assembly_name_get_utf8 (void) { - // shipping criteria: no EVENTPIPE-NATIVEAOT-TODO left in the codebase - // TODO: Implement EventPipe assembly name - return filename in nativeaot? - return reinterpret_cast(""); + // We are (intentionally for now) using the module name rather than entry assembly + // Cannot use __cpp_threadsafe_static_init feature since it will bring in the C++ runtime and need to use threadsafe way to initialize entrypoint_assembly_name + static const ep_char8_t * entrypoint_assembly_name = nullptr; + if (entrypoint_assembly_name == nullptr) { + ep_char8_t * entrypoint_assembly_name_local; + const TCHAR * wszModuleFileName = NULL; + HANDLE moduleHandle = PalGetModuleHandleFromPointer((void*)&ep_rt_aot_entrypoint_assembly_name_get_utf8); + if(PalGetModuleFileName(&wszModuleFileName, moduleHandle) == 0) { + entrypoint_assembly_name_local = reinterpret_cast(malloc(1)); + if(entrypoint_assembly_name_local==NULL) { + return NULL; + } + *entrypoint_assembly_name_local = '\0'; + } + else { +#ifdef HOST_WINDOWS + const wchar_t* process_name_const = wcsrchr(wszModuleFileName, DIRECTORY_SEPARATOR_CHAR); + if (process_name_const != NULL) { + process_name_const++; + } + else { + process_name_const = reinterpret_cast(wszModuleFileName); + } + size_t len = -1; + const wchar_t* extension = wcsrchr(process_name_const, '.'); + if (extension != NULL) { + len = extension - process_name_const; + } + entrypoint_assembly_name_local = ep_rt_utf16_to_utf8_string(reinterpret_cast(process_name_const), len); +#else + const ep_char8_t* process_name_const = strrchr(wszModuleFileName, DIRECTORY_SEPARATOR_CHAR); + if (process_name_const != NULL) { + process_name_const++; + } + else { + process_name_const = reinterpret_cast(wszModuleFileName); + } + size_t len = strlen(process_name_const); + const ep_char8_t *extension = strrchr(process_name_const, '.'); + if (extension != NULL) { + len = extension - process_name_const; + } + ep_char8_t* process_name = reinterpret_cast(malloc(len + 1)); + if (process_name == NULL) { + return NULL; + } + memcpy(process_name, process_name_const, len); + process_name[len] = '\0'; + entrypoint_assembly_name_local = reinterpret_cast(process_name); +#endif // HOST_WINDOWS + } + + if (PalInterlockedCompareExchangePointer((void**)(&entrypoint_assembly_name), (void*)(entrypoint_assembly_name_local), nullptr) != nullptr) + free(entrypoint_assembly_name_local); + } + + return entrypoint_assembly_name; } const ep_char8_t * @@ -101,6 +162,20 @@ ep_rt_aot_diagnostics_command_line_get (void) #ifdef TARGET_WINDOWS const ep_char16_t* command_line = reinterpret_cast(::GetCommandLineW()); return ep_rt_utf16_to_utf8_string(command_line, -1); +#elif TARGET_LINUX + FILE *cmdline_file = ::fopen("/proc/self/cmdline", "r"); + if (cmdline_file == nullptr) + return ""; + + char *line = NULL; + size_t line_len = 0; + if (::getline (&line, &line_len, cmdline_file) == -1) { + ::fclose (cmdline_file); + return ""; + } + + ::fclose (cmdline_file); + return reinterpret_cast(line); #else return ""; #endif @@ -388,10 +463,10 @@ ep_rt_aot_file_close (ep_rt_file_handle_t file_handle) bool ep_rt_aot_file_write ( - ep_rt_file_handle_t file_handle, - const uint8_t *buffer, - uint32_t bytes_to_write, - uint32_t *bytes_written) + ep_rt_file_handle_t file_handle, + const uint8_t *buffer, + uint32_t bytes_to_write, + uint32_t *bytes_written) { #ifdef TARGET_WINDOWS return ::WriteFile (file_handle, buffer, bytes_to_write, reinterpret_cast(bytes_written), NULL) != FALSE; @@ -722,12 +797,12 @@ void ep_rt_aot_lock_requires_lock_not_held (const ep_rt_lock_handle_t *lock) void ep_rt_aot_spin_lock_requires_lock_held (const ep_rt_spin_lock_handle_t *spin_lock) { EP_ASSERT (ep_rt_spin_lock_is_valid (spin_lock)); - EP_ASSERT (spin_lock->lock->OwnedByCurrentThread ()); + EP_ASSERT (spin_lock->lock->OwnedByCurrentThread ()); } void ep_rt_aot_spin_lock_requires_lock_not_held (const ep_rt_spin_lock_handle_t *spin_lock) { - EP_ASSERT (spin_lock->lock == NULL || !spin_lock->lock->OwnedByCurrentThread ()); + EP_ASSERT (spin_lock->lock == NULL || !spin_lock->lock->OwnedByCurrentThread ()); } #endif /* EP_CHECKED_BUILD */ diff --git a/src/coreclr/nativeaot/Runtime/i386/MiscStubs.S b/src/coreclr/nativeaot/Runtime/i386/MiscStubs.S index 3ea675f2c9dc5..2acaec4b9aebb 100644 --- a/src/coreclr/nativeaot/Runtime/i386/MiscStubs.S +++ b/src/coreclr/nativeaot/Runtime/i386/MiscStubs.S @@ -16,7 +16,7 @@ // NOTE: this helper will modify a value of esp and must establish the frame pointer. // NOTE: On Linux we must advance the stack pointer as we probe - it is not allowed to access 65535 bytes below esp. // -#define PAGE_SIZE 0x1000 +#define PROBE_STEP 0x1000 NESTED_ENTRY RhpStackProbe, _TEXT, NoHandler // On entry: // eax - the lowest address of the stack frame being allocated (i.e. [InitialSp - FrameSize]) @@ -25,11 +25,11 @@ NESTED_ENTRY RhpStackProbe, _TEXT, NoHandler PROLOG_BEG PROLOG_END - and esp, -PAGE_SIZE // esp points to the **lowest address** on the last probed page + and esp, -PROBE_STEP // esp points to the **lowest address** on the last probed page // This is done to make the loop end condition simpler. LOCAL_LABEL(ProbeLoop): - sub esp, PAGE_SIZE // esp points to the lowest address of the **next page** to probe + sub esp, PROBE_STEP // esp points to the lowest address of the **next page** to probe test [esp], eax // esp points to the lowest address on the **last probed** page cmp esp, eax jg LOCAL_LABEL(ProbeLoop) // if esp > eax, then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/i386/MiscStubs.asm b/src/coreclr/nativeaot/Runtime/i386/MiscStubs.asm index f80ca3301f245..7c1329d6f66b3 100644 --- a/src/coreclr/nativeaot/Runtime/i386/MiscStubs.asm +++ b/src/coreclr/nativeaot/Runtime/i386/MiscStubs.asm @@ -15,7 +15,7 @@ include AsmMacros.inc ; The call to the helper will be emitted by JIT in the function prolog when large (larger than 0x3000 bytes) stack frame is required. ; ; NOTE: this helper will modify a value of esp and must establish the frame pointer. -PAGE_SIZE equ 1000h +PROBE_STEP equ 1000h _RhpStackProbe PROC public ; On entry: @@ -25,10 +25,10 @@ _RhpStackProbe PROC public push ebp mov ebp, esp - and esp, -PAGE_SIZE ; esp points to the **lowest address** on the last probed page + and esp, -PROBE_STEP ; esp points to the **lowest address** on the last probed page ; This is done to make the loop end condition simpler. ProbeLoop: - sub esp, PAGE_SIZE ; esp points to the lowest address of the **next page** to probe + sub esp, PROBE_STEP ; esp points to the lowest address of the **next page** to probe test [esp], eax ; esp points to the lowest address on the **last probed** page cmp esp, eax jg ProbeLoop ; if esp > eax, then we need to probe at least one more page. diff --git a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkInline.h b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkInline.h index be8a1ee8f6c52..51c3a85727183 100644 --- a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkInline.h +++ b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkInline.h @@ -113,3 +113,17 @@ FORCEINLINE void PalSetLastError(int32_t error) { errno = error; } + +FORCEINLINE int32_t PalOsPageSize() +{ +#if defined(HOST_AMD64) + // all supported platforms use 4K pages on x64, including emulated environments + return 0x1000; +#elif defined(HOST_APPLE) + // OSX and related OS expose 16-kilobyte pages to the 64-bit userspace + // https://developer.apple.com/library/archive/documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html + return 0x4000; +#else + return PalGetOsPageSize(); +#endif +} diff --git a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp index e83f7bae82625..08d09f25e0c61 100644 --- a/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp +++ b/src/coreclr/nativeaot/Runtime/unix/PalRedhawkUnix.cpp @@ -384,6 +384,24 @@ void InitializeCurrentProcessCpuCount() g_RhNumberOfProcessors = count; } +static uint32_t g_RhPageSize; + +void InitializeOsPageSize() +{ + g_RhPageSize = (uint32_t)sysconf(_SC_PAGE_SIZE); + +#if defined(HOST_AMD64) + ASSERT(g_RhPageSize == 0x1000); +#elif defined(HOST_APPLE) + ASSERT(g_RhPageSize == 0x4000); +#endif +} + +REDHAWK_PALEXPORT uint32_t REDHAWK_PALAPI PalGetOsPageSize() +{ + return g_RhPageSize; +} + #if defined(TARGET_LINUX) || defined(TARGET_ANDROID) static pthread_key_t key; #endif @@ -412,6 +430,8 @@ REDHAWK_PALEXPORT bool REDHAWK_PALAPI PalInit() InitializeCurrentProcessCpuCount(); + InitializeOsPageSize(); + #if defined(TARGET_LINUX) || defined(TARGET_ANDROID) if (pthread_key_create(&key, RuntimeThreadShutdown) != 0) { @@ -872,13 +892,12 @@ REDHAWK_PALEXPORT void PalFlushInstructionCache(_In_ void* pAddress, size_t size // // As a workaround, we call __builtin___clear_cache on each page separately. - const size_t pageSize = getpagesize(); uint8_t* begin = (uint8_t*)pAddress; uint8_t* end = begin + size; while (begin < end) { - uint8_t* endOrNextPageBegin = ALIGN_UP(begin + 1, pageSize); + uint8_t* endOrNextPageBegin = ALIGN_UP(begin + 1, OS_PAGE_SIZE); if (endOrNextPageBegin > end) endOrNextPageBegin = end; diff --git a/src/coreclr/nativeaot/Runtime/windows/PalRedhawkInline.h b/src/coreclr/nativeaot/Runtime/windows/PalRedhawkInline.h index 1d9f7bd1711d6..6dbb67b7cbbd9 100644 --- a/src/coreclr/nativeaot/Runtime/windows/PalRedhawkInline.h +++ b/src/coreclr/nativeaot/Runtime/windows/PalRedhawkInline.h @@ -158,3 +158,8 @@ FORCEINLINE void PalYieldProcessor() #endif #define PalDebugBreak() __debugbreak() + +FORCEINLINE int32_t PalOsPageSize() +{ + return 0x1000; +} diff --git a/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.MappingTables.cs b/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.MappingTables.cs index 1fd37d6d7a90f..d96bfb65c52d5 100644 --- a/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.MappingTables.cs +++ b/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/Internal/Reflection/Execution/ExecutionEnvironmentImplementation.MappingTables.cs @@ -565,74 +565,24 @@ public bool TryGetOffsetsRange(IntPtr functionPointer, out int firstParserOffset // ldftn reverse lookup hash. Must be cleared and reset if the module list changes. (All sets to // this variable must happen under a lock) private volatile KeyValuePair[] _ldftnReverseLookup_InvokeMap; - private Func _computeLdFtnLookupInvokeMapInvokeMap = ComputeLdftnReverseLookup_InvokeMap; /// - /// Initialize a lookup array of module to function pointer/parser offset pair arrays. Do so in a manner that will allow - /// future work which will invalidate the cache (by setting it to null) + /// Initialize a lookup array of module to function pointer/parser offset pair arrays. /// - /// pointer to static which holds cache value. This is treated as a volatile variable - /// - /// - private KeyValuePair[] GetLdFtnReverseLookups_Helper(ref KeyValuePair[] ldftnReverseLookupStatic, Func lookupComputer) + private KeyValuePair[] GetLdFtnReverseLookups_InvokeMap() { - KeyValuePair[] ldFtnReverseLookup = Volatile.Read(ref ldftnReverseLookupStatic); - - if (ldFtnReverseLookup != null) - return ldFtnReverseLookup; - else + KeyValuePair[] ldFtnReverseLookup = _ldftnReverseLookup_InvokeMap; + if (ldFtnReverseLookup == null) { - lock (this) + var ldFtnReverseLookupBuilder = new ArrayBuilder>(); + foreach (NativeFormatModuleInfo module in ModuleList.EnumerateModules()) { - ldFtnReverseLookup = Volatile.Read(ref ldftnReverseLookupStatic); - - // double checked lock, safe due to use of volatile on s_ldftnReverseHashes - if (ldFtnReverseLookup != null) - return ldFtnReverseLookup; - - // FUTURE: add a module load callback to invalidate this cache if a new module is loaded. - while (true) - { - int size = 0; - foreach (NativeFormatModuleInfo module in ModuleList.EnumerateModules()) - { - size++; - } - - ldFtnReverseLookup = new KeyValuePair[size]; - int index = 0; - bool restart = false; - foreach (NativeFormatModuleInfo module in ModuleList.EnumerateModules()) - { - // If the module list changes during execution of this code, rebuild from scratch - if (index >= ldFtnReverseLookup.Length) - { - restart = true; - break; - } - - ldFtnReverseLookup[index] = new KeyValuePair(module, lookupComputer(module)); - index++; - } - - if (restart) - continue; - - // unless we need to repeat the module enumeration, only execute the body of this while loop once. - break; - } - - Volatile.Write(ref ldftnReverseLookupStatic, ldFtnReverseLookup); - return ldFtnReverseLookup; + ldFtnReverseLookupBuilder.Add(new KeyValuePair(module, ComputeLdftnReverseLookup_InvokeMap(module))); } + ldFtnReverseLookup = ldFtnReverseLookupBuilder.ToArray(); + _ldftnReverseLookup_InvokeMap = ldFtnReverseLookup; } - } - - private KeyValuePair[] GetLdFtnReverseLookups_InvokeMap() - { -#pragma warning disable 0420 // GetLdFtnReverseLookups_Helper treats its first parameter as volatile by using explicit Volatile operations - return GetLdFtnReverseLookups_Helper(ref _ldftnReverseLookup_InvokeMap, _computeLdFtnLookupInvokeMapInvokeMap); -#pragma warning restore 0420 + return ldFtnReverseLookup; } internal unsafe void GetFunctionPointerAndInstantiationArgumentForOriginalLdFtnResult(IntPtr originalLdFtnResult, out IntPtr canonOriginalLdFtnResult, out IntPtr instantiationArgument) diff --git a/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/System.Private.Reflection.Execution.csproj b/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/System.Private.Reflection.Execution.csproj index 76d3934794fd2..5527d5920f601 100644 --- a/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/System.Private.Reflection.Execution.csproj +++ b/src/coreclr/nativeaot/System.Private.Reflection.Execution/src/System.Private.Reflection.Execution.csproj @@ -65,6 +65,9 @@ System\Collections\Generic\LowLevelDictionary.cs + + System\Collections\Generic\ArrayBuilder.cs + Internal\LowLevelLinq\LowLevelEnumerable.cs diff --git a/src/coreclr/nativeaot/docs/optimizing.md b/src/coreclr/nativeaot/docs/optimizing.md index 05ffe178aa357..6245014f6b5ad 100644 --- a/src/coreclr/nativeaot/docs/optimizing.md +++ b/src/coreclr/nativeaot/docs/optimizing.md @@ -1,40 +1,9 @@ # Optimizing programs targeting Native AOT -The Native AOT compiler provides multiple switches to influence the compilation process. These switches control the code and metadata that the compiler generates and affect the runtime behavior of the compiled program. +See the official documentation at https://learn.microsoft.com/dotnet/core/deploying/native-aot/optimizing. -To specify a switch, add a new property to your project file with one or more of the values below. For example, to specify the invariant globalization mode, add - -```xml - - true - -``` - -under the `` node of your project file. - -## Options related to trimming - -The Native AOT compiler supports the [documented options](https://docs.microsoft.com/en-us/dotnet/core/deploying/trim-self-contained) for removing unused code (trimming). By default, the compiler tries to very conservatively remove some of the unused code. - -:information_source: Native AOT difference: The documented `PublishTrimmed` property is implied to be `true` when Native AOT is active. - -By default, the compiler tries to maximize compatibility with existing .NET code at the expense of compilation speed and size of the output executable. This allows people to use their existing code that worked well in a fully dynamic mode without hitting issues caused by trimming. To read more about reflection, see the [Reflection in AOT mode](reflection-in-aot-mode.md) document. - -To enable more aggressive removal of unreferenced code, set the `` property to `link`. - -To aid in troubleshooting some of the most common problems related to trimming add `true` to your project. This ensures types are preserved in their entirety, but the extra members that would otherwise be trimmed cannot be used in runtime reflection. This mode can turn some spurious `NullReferenceExceptions` (caused by reflection APIs returning a null) caused by trimming into more actionable exceptions. - -The Native AOT compiler can remove unused metadata more effectively than non-Native deployment models. For example, it's possible to remove names and metadata for methods while keeping the native code of the method. The higher efficiency of trimming in Native AOT can result in differences in what's visible to reflection at runtime in trimming-unfriendly code. To increase compatibility with the less efficient non-Native trimming, set the `` property to `false`. This compatibility mode is not necessary if there are no trimming warnings. - -## Options related to library features - -Native AOT supports enabling and disabling all [documented framework library features](https://docs.microsoft.com/en-us/dotnet/core/deploying/trimming-options#trimming-framework-library-features). For example, to remove globalization specific code and data, add a `true` property to your project. Disabling a framework feature (or enabling a minimal mode of the feature) can result in significant size savings. - -Since `PublishTrimmed` is implied to be true with Native AOT, some framework features such as binary serialization are disabled by default. +The rest of the document talks about options that exist, but their names and purpose are subject to change without a breaking change notice. ## Options related to code generation -* `Speed`: when generating optimized code, favor code execution speed. -* `Size`: when generating optimized code, favor smaller code size. * ``: By default, the compiler targets the minimum instruction set supported by the target OS and architecture. This option allows targeting newer instruction sets for better performance. The native binary will require the instruction sets to be supported by the hardware in order to run. For example, `avx2,bmi2,fma,pclmul,popcnt,aes` will produce binary that takes advantage of instruction sets that are typically present on current Intel and AMD processors. Run `ilc --help` for the full list of available instruction sets. `ilc` can be executed from the NativeAOT package in your local nuget cache e.g. `%USERPROFILE%\.nuget\packages\runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-...\tools\ilc.exe` on Windows or `~/.nuget/packages/runtime.linux-arm64.microsoft.dotnet.ilcompiler/8.0.0-.../tools/ilc` on Linux. * ``: By default, the compiler targets the a `Vector` size of `16` or `32` bytes, depending on the underlying instruction sets supported. This option allows specifying a different maximum bit width. For example, if by default on x64 hardware `Vector` will be 16-bytes. However, if `AVX2` is targeted then `Vector` will automatically grow to be 32-bytes instead, setting `128` would keep the size as 16-bytes. Alternatively, even if `AVX512F` is targeted then by default `Vector` will not grow larger than 32-bytes, setting `512` would allow it to grow to 64-bytes. - diff --git a/src/coreclr/pal/prebuilt/idl/cordebug_i.cpp b/src/coreclr/pal/prebuilt/idl/cordebug_i.cpp index c509c3c16cd52..6bfe487fd5ff0 100644 --- a/src/coreclr/pal/prebuilt/idl/cordebug_i.cpp +++ b/src/coreclr/pal/prebuilt/idl/cordebug_i.cpp @@ -315,6 +315,8 @@ MIDL_DEFINE_GUID(IID, IID_ICorDebugFunction3,0x09B70F28,0xE465,0x482D,0x99,0xE0, MIDL_DEFINE_GUID(IID, IID_ICorDebugFunction4,0x72965963,0x34fd,0x46e9,0x94,0x34,0xb8,0x17,0xfe,0x6e,0x7f,0x43); +MIDL_DEFINE_GUID(IID, IID_ICorDebugFunction5,0x9D4DAB7B,0x3401,0x4F37,0xBD,0x08,0xCA,0x09,0xF3,0xFD,0xF1,0x0F); + MIDL_DEFINE_GUID(IID, IID_ICorDebugCode,0xCC7BCAF4,0x8A68,0x11d2,0x98,0x3C,0x00,0x00,0xF8,0x08,0x34,0x2D); diff --git a/src/coreclr/pal/prebuilt/inc/cordebug.h b/src/coreclr/pal/prebuilt/inc/cordebug.h index 83a7968f1a9bc..7888daf972a7c 100644 --- a/src/coreclr/pal/prebuilt/inc/cordebug.h +++ b/src/coreclr/pal/prebuilt/inc/cordebug.h @@ -1,15 +1,14 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. + /* this ALWAYS GENERATED file contains the definitions for the interfaces */ - /* File created by MIDL compiler version 8.01.0622 */ + /* File created by MIDL compiler version 8.01.0628 */ /* Compiler settings for cordebug.idl: - Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0622 + Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.01.0628 protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: + error checks: allocation ref bounds_check enum stub_data + VC __declspec() decoration level: __declspec(uuid()), __declspec(selectany), __declspec(novtable) DECLSPEC_UUID(), MIDL_INTERFACE() */ @@ -42,951 +41,966 @@ #pragma once #endif -/* Forward Declarations */ +#ifndef DECLSPEC_XFGVIRT +#if defined(_CONTROL_FLOW_GUARD_XFG) +#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) +#else +#define DECLSPEC_XFGVIRT(base, func) +#endif +#endif + +/* Forward Declarations */ #ifndef __ICorDebugDataTarget_FWD_DEFINED__ #define __ICorDebugDataTarget_FWD_DEFINED__ typedef interface ICorDebugDataTarget ICorDebugDataTarget; -#endif /* __ICorDebugDataTarget_FWD_DEFINED__ */ +#endif /* __ICorDebugDataTarget_FWD_DEFINED__ */ #ifndef __ICorDebugStaticFieldSymbol_FWD_DEFINED__ #define __ICorDebugStaticFieldSymbol_FWD_DEFINED__ typedef interface ICorDebugStaticFieldSymbol ICorDebugStaticFieldSymbol; -#endif /* __ICorDebugStaticFieldSymbol_FWD_DEFINED__ */ +#endif /* __ICorDebugStaticFieldSymbol_FWD_DEFINED__ */ #ifndef __ICorDebugInstanceFieldSymbol_FWD_DEFINED__ #define __ICorDebugInstanceFieldSymbol_FWD_DEFINED__ typedef interface ICorDebugInstanceFieldSymbol ICorDebugInstanceFieldSymbol; -#endif /* __ICorDebugInstanceFieldSymbol_FWD_DEFINED__ */ +#endif /* __ICorDebugInstanceFieldSymbol_FWD_DEFINED__ */ #ifndef __ICorDebugVariableSymbol_FWD_DEFINED__ #define __ICorDebugVariableSymbol_FWD_DEFINED__ typedef interface ICorDebugVariableSymbol ICorDebugVariableSymbol; -#endif /* __ICorDebugVariableSymbol_FWD_DEFINED__ */ +#endif /* __ICorDebugVariableSymbol_FWD_DEFINED__ */ #ifndef __ICorDebugMemoryBuffer_FWD_DEFINED__ #define __ICorDebugMemoryBuffer_FWD_DEFINED__ typedef interface ICorDebugMemoryBuffer ICorDebugMemoryBuffer; -#endif /* __ICorDebugMemoryBuffer_FWD_DEFINED__ */ +#endif /* __ICorDebugMemoryBuffer_FWD_DEFINED__ */ #ifndef __ICorDebugMergedAssemblyRecord_FWD_DEFINED__ #define __ICorDebugMergedAssemblyRecord_FWD_DEFINED__ typedef interface ICorDebugMergedAssemblyRecord ICorDebugMergedAssemblyRecord; -#endif /* __ICorDebugMergedAssemblyRecord_FWD_DEFINED__ */ +#endif /* __ICorDebugMergedAssemblyRecord_FWD_DEFINED__ */ #ifndef __ICorDebugSymbolProvider_FWD_DEFINED__ #define __ICorDebugSymbolProvider_FWD_DEFINED__ typedef interface ICorDebugSymbolProvider ICorDebugSymbolProvider; -#endif /* __ICorDebugSymbolProvider_FWD_DEFINED__ */ +#endif /* __ICorDebugSymbolProvider_FWD_DEFINED__ */ #ifndef __ICorDebugSymbolProvider2_FWD_DEFINED__ #define __ICorDebugSymbolProvider2_FWD_DEFINED__ typedef interface ICorDebugSymbolProvider2 ICorDebugSymbolProvider2; -#endif /* __ICorDebugSymbolProvider2_FWD_DEFINED__ */ +#endif /* __ICorDebugSymbolProvider2_FWD_DEFINED__ */ #ifndef __ICorDebugVirtualUnwinder_FWD_DEFINED__ #define __ICorDebugVirtualUnwinder_FWD_DEFINED__ typedef interface ICorDebugVirtualUnwinder ICorDebugVirtualUnwinder; -#endif /* __ICorDebugVirtualUnwinder_FWD_DEFINED__ */ +#endif /* __ICorDebugVirtualUnwinder_FWD_DEFINED__ */ #ifndef __ICorDebugDataTarget2_FWD_DEFINED__ #define __ICorDebugDataTarget2_FWD_DEFINED__ typedef interface ICorDebugDataTarget2 ICorDebugDataTarget2; -#endif /* __ICorDebugDataTarget2_FWD_DEFINED__ */ +#endif /* __ICorDebugDataTarget2_FWD_DEFINED__ */ #ifndef __ICorDebugLoadedModule_FWD_DEFINED__ #define __ICorDebugLoadedModule_FWD_DEFINED__ typedef interface ICorDebugLoadedModule ICorDebugLoadedModule; -#endif /* __ICorDebugLoadedModule_FWD_DEFINED__ */ +#endif /* __ICorDebugLoadedModule_FWD_DEFINED__ */ #ifndef __ICorDebugDataTarget3_FWD_DEFINED__ #define __ICorDebugDataTarget3_FWD_DEFINED__ typedef interface ICorDebugDataTarget3 ICorDebugDataTarget3; -#endif /* __ICorDebugDataTarget3_FWD_DEFINED__ */ +#endif /* __ICorDebugDataTarget3_FWD_DEFINED__ */ #ifndef __ICorDebugDataTarget4_FWD_DEFINED__ #define __ICorDebugDataTarget4_FWD_DEFINED__ typedef interface ICorDebugDataTarget4 ICorDebugDataTarget4; -#endif /* __ICorDebugDataTarget4_FWD_DEFINED__ */ +#endif /* __ICorDebugDataTarget4_FWD_DEFINED__ */ #ifndef __ICorDebugMutableDataTarget_FWD_DEFINED__ #define __ICorDebugMutableDataTarget_FWD_DEFINED__ typedef interface ICorDebugMutableDataTarget ICorDebugMutableDataTarget; -#endif /* __ICorDebugMutableDataTarget_FWD_DEFINED__ */ +#endif /* __ICorDebugMutableDataTarget_FWD_DEFINED__ */ #ifndef __ICorDebugMetaDataLocator_FWD_DEFINED__ #define __ICorDebugMetaDataLocator_FWD_DEFINED__ typedef interface ICorDebugMetaDataLocator ICorDebugMetaDataLocator; -#endif /* __ICorDebugMetaDataLocator_FWD_DEFINED__ */ +#endif /* __ICorDebugMetaDataLocator_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback_FWD_DEFINED__ #define __ICorDebugManagedCallback_FWD_DEFINED__ typedef interface ICorDebugManagedCallback ICorDebugManagedCallback; -#endif /* __ICorDebugManagedCallback_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback3_FWD_DEFINED__ #define __ICorDebugManagedCallback3_FWD_DEFINED__ typedef interface ICorDebugManagedCallback3 ICorDebugManagedCallback3; -#endif /* __ICorDebugManagedCallback3_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback3_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback4_FWD_DEFINED__ #define __ICorDebugManagedCallback4_FWD_DEFINED__ typedef interface ICorDebugManagedCallback4 ICorDebugManagedCallback4; -#endif /* __ICorDebugManagedCallback4_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback4_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback2_FWD_DEFINED__ #define __ICorDebugManagedCallback2_FWD_DEFINED__ typedef interface ICorDebugManagedCallback2 ICorDebugManagedCallback2; -#endif /* __ICorDebugManagedCallback2_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback2_FWD_DEFINED__ */ #ifndef __ICorDebugUnmanagedCallback_FWD_DEFINED__ #define __ICorDebugUnmanagedCallback_FWD_DEFINED__ typedef interface ICorDebugUnmanagedCallback ICorDebugUnmanagedCallback; -#endif /* __ICorDebugUnmanagedCallback_FWD_DEFINED__ */ +#endif /* __ICorDebugUnmanagedCallback_FWD_DEFINED__ */ #ifndef __ICorDebug_FWD_DEFINED__ #define __ICorDebug_FWD_DEFINED__ typedef interface ICorDebug ICorDebug; -#endif /* __ICorDebug_FWD_DEFINED__ */ +#endif /* __ICorDebug_FWD_DEFINED__ */ #ifndef __ICorDebugRemoteTarget_FWD_DEFINED__ #define __ICorDebugRemoteTarget_FWD_DEFINED__ typedef interface ICorDebugRemoteTarget ICorDebugRemoteTarget; -#endif /* __ICorDebugRemoteTarget_FWD_DEFINED__ */ +#endif /* __ICorDebugRemoteTarget_FWD_DEFINED__ */ #ifndef __ICorDebugRemote_FWD_DEFINED__ #define __ICorDebugRemote_FWD_DEFINED__ typedef interface ICorDebugRemote ICorDebugRemote; -#endif /* __ICorDebugRemote_FWD_DEFINED__ */ +#endif /* __ICorDebugRemote_FWD_DEFINED__ */ #ifndef __ICorDebug2_FWD_DEFINED__ #define __ICorDebug2_FWD_DEFINED__ typedef interface ICorDebug2 ICorDebug2; -#endif /* __ICorDebug2_FWD_DEFINED__ */ +#endif /* __ICorDebug2_FWD_DEFINED__ */ #ifndef __ICorDebugController_FWD_DEFINED__ #define __ICorDebugController_FWD_DEFINED__ typedef interface ICorDebugController ICorDebugController; -#endif /* __ICorDebugController_FWD_DEFINED__ */ +#endif /* __ICorDebugController_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain_FWD_DEFINED__ #define __ICorDebugAppDomain_FWD_DEFINED__ typedef interface ICorDebugAppDomain ICorDebugAppDomain; -#endif /* __ICorDebugAppDomain_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain2_FWD_DEFINED__ #define __ICorDebugAppDomain2_FWD_DEFINED__ typedef interface ICorDebugAppDomain2 ICorDebugAppDomain2; -#endif /* __ICorDebugAppDomain2_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain2_FWD_DEFINED__ */ #ifndef __ICorDebugEnum_FWD_DEFINED__ #define __ICorDebugEnum_FWD_DEFINED__ typedef interface ICorDebugEnum ICorDebugEnum; -#endif /* __ICorDebugEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugEnum_FWD_DEFINED__ */ #ifndef __ICorDebugGuidToTypeEnum_FWD_DEFINED__ #define __ICorDebugGuidToTypeEnum_FWD_DEFINED__ typedef interface ICorDebugGuidToTypeEnum ICorDebugGuidToTypeEnum; -#endif /* __ICorDebugGuidToTypeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugGuidToTypeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain3_FWD_DEFINED__ #define __ICorDebugAppDomain3_FWD_DEFINED__ typedef interface ICorDebugAppDomain3 ICorDebugAppDomain3; -#endif /* __ICorDebugAppDomain3_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain3_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain4_FWD_DEFINED__ #define __ICorDebugAppDomain4_FWD_DEFINED__ typedef interface ICorDebugAppDomain4 ICorDebugAppDomain4; -#endif /* __ICorDebugAppDomain4_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain4_FWD_DEFINED__ */ #ifndef __ICorDebugAssembly_FWD_DEFINED__ #define __ICorDebugAssembly_FWD_DEFINED__ typedef interface ICorDebugAssembly ICorDebugAssembly; -#endif /* __ICorDebugAssembly_FWD_DEFINED__ */ +#endif /* __ICorDebugAssembly_FWD_DEFINED__ */ #ifndef __ICorDebugAssembly2_FWD_DEFINED__ #define __ICorDebugAssembly2_FWD_DEFINED__ typedef interface ICorDebugAssembly2 ICorDebugAssembly2; -#endif /* __ICorDebugAssembly2_FWD_DEFINED__ */ +#endif /* __ICorDebugAssembly2_FWD_DEFINED__ */ #ifndef __ICorDebugAssembly3_FWD_DEFINED__ #define __ICorDebugAssembly3_FWD_DEFINED__ typedef interface ICorDebugAssembly3 ICorDebugAssembly3; -#endif /* __ICorDebugAssembly3_FWD_DEFINED__ */ +#endif /* __ICorDebugAssembly3_FWD_DEFINED__ */ #ifndef __ICorDebugHeapEnum_FWD_DEFINED__ #define __ICorDebugHeapEnum_FWD_DEFINED__ typedef interface ICorDebugHeapEnum ICorDebugHeapEnum; -#endif /* __ICorDebugHeapEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapEnum_FWD_DEFINED__ */ #ifndef __ICorDebugHeapSegmentEnum_FWD_DEFINED__ #define __ICorDebugHeapSegmentEnum_FWD_DEFINED__ typedef interface ICorDebugHeapSegmentEnum ICorDebugHeapSegmentEnum; -#endif /* __ICorDebugHeapSegmentEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapSegmentEnum_FWD_DEFINED__ */ #ifndef __ICorDebugGCReferenceEnum_FWD_DEFINED__ #define __ICorDebugGCReferenceEnum_FWD_DEFINED__ typedef interface ICorDebugGCReferenceEnum ICorDebugGCReferenceEnum; -#endif /* __ICorDebugGCReferenceEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugGCReferenceEnum_FWD_DEFINED__ */ #ifndef __ICorDebugProcess_FWD_DEFINED__ #define __ICorDebugProcess_FWD_DEFINED__ typedef interface ICorDebugProcess ICorDebugProcess; -#endif /* __ICorDebugProcess_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess_FWD_DEFINED__ */ #ifndef __ICorDebugProcess2_FWD_DEFINED__ #define __ICorDebugProcess2_FWD_DEFINED__ typedef interface ICorDebugProcess2 ICorDebugProcess2; -#endif /* __ICorDebugProcess2_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess2_FWD_DEFINED__ */ #ifndef __ICorDebugProcess3_FWD_DEFINED__ #define __ICorDebugProcess3_FWD_DEFINED__ typedef interface ICorDebugProcess3 ICorDebugProcess3; -#endif /* __ICorDebugProcess3_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess3_FWD_DEFINED__ */ #ifndef __ICorDebugProcess5_FWD_DEFINED__ #define __ICorDebugProcess5_FWD_DEFINED__ typedef interface ICorDebugProcess5 ICorDebugProcess5; -#endif /* __ICorDebugProcess5_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess5_FWD_DEFINED__ */ #ifndef __ICorDebugDebugEvent_FWD_DEFINED__ #define __ICorDebugDebugEvent_FWD_DEFINED__ typedef interface ICorDebugDebugEvent ICorDebugDebugEvent; -#endif /* __ICorDebugDebugEvent_FWD_DEFINED__ */ +#endif /* __ICorDebugDebugEvent_FWD_DEFINED__ */ #ifndef __ICorDebugProcess6_FWD_DEFINED__ #define __ICorDebugProcess6_FWD_DEFINED__ typedef interface ICorDebugProcess6 ICorDebugProcess6; -#endif /* __ICorDebugProcess6_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess6_FWD_DEFINED__ */ #ifndef __ICorDebugProcess7_FWD_DEFINED__ #define __ICorDebugProcess7_FWD_DEFINED__ typedef interface ICorDebugProcess7 ICorDebugProcess7; -#endif /* __ICorDebugProcess7_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess7_FWD_DEFINED__ */ #ifndef __ICorDebugProcess8_FWD_DEFINED__ #define __ICorDebugProcess8_FWD_DEFINED__ typedef interface ICorDebugProcess8 ICorDebugProcess8; -#endif /* __ICorDebugProcess8_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess8_FWD_DEFINED__ */ #ifndef __ICorDebugProcess10_FWD_DEFINED__ #define __ICorDebugProcess10_FWD_DEFINED__ typedef interface ICorDebugProcess10 ICorDebugProcess10; -#endif /* __ICorDebugProcess10_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess10_FWD_DEFINED__ */ #ifndef __ICorDebugMemoryRangeEnum_FWD_DEFINED__ #define __ICorDebugMemoryRangeEnum_FWD_DEFINED__ typedef interface ICorDebugMemoryRangeEnum ICorDebugMemoryRangeEnum; -#endif /* __ICorDebugMemoryRangeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugMemoryRangeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugProcess11_FWD_DEFINED__ #define __ICorDebugProcess11_FWD_DEFINED__ typedef interface ICorDebugProcess11 ICorDebugProcess11; -#endif /* __ICorDebugProcess11_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess11_FWD_DEFINED__ */ #ifndef __ICorDebugModuleDebugEvent_FWD_DEFINED__ #define __ICorDebugModuleDebugEvent_FWD_DEFINED__ typedef interface ICorDebugModuleDebugEvent ICorDebugModuleDebugEvent; -#endif /* __ICorDebugModuleDebugEvent_FWD_DEFINED__ */ +#endif /* __ICorDebugModuleDebugEvent_FWD_DEFINED__ */ #ifndef __ICorDebugExceptionDebugEvent_FWD_DEFINED__ #define __ICorDebugExceptionDebugEvent_FWD_DEFINED__ typedef interface ICorDebugExceptionDebugEvent ICorDebugExceptionDebugEvent; -#endif /* __ICorDebugExceptionDebugEvent_FWD_DEFINED__ */ +#endif /* __ICorDebugExceptionDebugEvent_FWD_DEFINED__ */ #ifndef __ICorDebugBreakpoint_FWD_DEFINED__ #define __ICorDebugBreakpoint_FWD_DEFINED__ typedef interface ICorDebugBreakpoint ICorDebugBreakpoint; -#endif /* __ICorDebugBreakpoint_FWD_DEFINED__ */ +#endif /* __ICorDebugBreakpoint_FWD_DEFINED__ */ #ifndef __ICorDebugFunctionBreakpoint_FWD_DEFINED__ #define __ICorDebugFunctionBreakpoint_FWD_DEFINED__ typedef interface ICorDebugFunctionBreakpoint ICorDebugFunctionBreakpoint; -#endif /* __ICorDebugFunctionBreakpoint_FWD_DEFINED__ */ +#endif /* __ICorDebugFunctionBreakpoint_FWD_DEFINED__ */ #ifndef __ICorDebugModuleBreakpoint_FWD_DEFINED__ #define __ICorDebugModuleBreakpoint_FWD_DEFINED__ typedef interface ICorDebugModuleBreakpoint ICorDebugModuleBreakpoint; -#endif /* __ICorDebugModuleBreakpoint_FWD_DEFINED__ */ +#endif /* __ICorDebugModuleBreakpoint_FWD_DEFINED__ */ #ifndef __ICorDebugValueBreakpoint_FWD_DEFINED__ #define __ICorDebugValueBreakpoint_FWD_DEFINED__ typedef interface ICorDebugValueBreakpoint ICorDebugValueBreakpoint; -#endif /* __ICorDebugValueBreakpoint_FWD_DEFINED__ */ +#endif /* __ICorDebugValueBreakpoint_FWD_DEFINED__ */ #ifndef __ICorDebugStepper_FWD_DEFINED__ #define __ICorDebugStepper_FWD_DEFINED__ typedef interface ICorDebugStepper ICorDebugStepper; -#endif /* __ICorDebugStepper_FWD_DEFINED__ */ +#endif /* __ICorDebugStepper_FWD_DEFINED__ */ #ifndef __ICorDebugStepper2_FWD_DEFINED__ #define __ICorDebugStepper2_FWD_DEFINED__ typedef interface ICorDebugStepper2 ICorDebugStepper2; -#endif /* __ICorDebugStepper2_FWD_DEFINED__ */ +#endif /* __ICorDebugStepper2_FWD_DEFINED__ */ #ifndef __ICorDebugRegisterSet_FWD_DEFINED__ #define __ICorDebugRegisterSet_FWD_DEFINED__ typedef interface ICorDebugRegisterSet ICorDebugRegisterSet; -#endif /* __ICorDebugRegisterSet_FWD_DEFINED__ */ +#endif /* __ICorDebugRegisterSet_FWD_DEFINED__ */ #ifndef __ICorDebugRegisterSet2_FWD_DEFINED__ #define __ICorDebugRegisterSet2_FWD_DEFINED__ typedef interface ICorDebugRegisterSet2 ICorDebugRegisterSet2; -#endif /* __ICorDebugRegisterSet2_FWD_DEFINED__ */ +#endif /* __ICorDebugRegisterSet2_FWD_DEFINED__ */ #ifndef __ICorDebugThread_FWD_DEFINED__ #define __ICorDebugThread_FWD_DEFINED__ typedef interface ICorDebugThread ICorDebugThread; -#endif /* __ICorDebugThread_FWD_DEFINED__ */ +#endif /* __ICorDebugThread_FWD_DEFINED__ */ #ifndef __ICorDebugThread2_FWD_DEFINED__ #define __ICorDebugThread2_FWD_DEFINED__ typedef interface ICorDebugThread2 ICorDebugThread2; -#endif /* __ICorDebugThread2_FWD_DEFINED__ */ +#endif /* __ICorDebugThread2_FWD_DEFINED__ */ #ifndef __ICorDebugThread3_FWD_DEFINED__ #define __ICorDebugThread3_FWD_DEFINED__ typedef interface ICorDebugThread3 ICorDebugThread3; -#endif /* __ICorDebugThread3_FWD_DEFINED__ */ +#endif /* __ICorDebugThread3_FWD_DEFINED__ */ #ifndef __ICorDebugThread4_FWD_DEFINED__ #define __ICorDebugThread4_FWD_DEFINED__ typedef interface ICorDebugThread4 ICorDebugThread4; -#endif /* __ICorDebugThread4_FWD_DEFINED__ */ +#endif /* __ICorDebugThread4_FWD_DEFINED__ */ #ifndef __ICorDebugThread5_FWD_DEFINED__ #define __ICorDebugThread5_FWD_DEFINED__ typedef interface ICorDebugThread5 ICorDebugThread5; -#endif /* __ICorDebugThread5_FWD_DEFINED__ */ +#endif /* __ICorDebugThread5_FWD_DEFINED__ */ #ifndef __ICorDebugStackWalk_FWD_DEFINED__ #define __ICorDebugStackWalk_FWD_DEFINED__ typedef interface ICorDebugStackWalk ICorDebugStackWalk; -#endif /* __ICorDebugStackWalk_FWD_DEFINED__ */ +#endif /* __ICorDebugStackWalk_FWD_DEFINED__ */ #ifndef __ICorDebugChain_FWD_DEFINED__ #define __ICorDebugChain_FWD_DEFINED__ typedef interface ICorDebugChain ICorDebugChain; -#endif /* __ICorDebugChain_FWD_DEFINED__ */ +#endif /* __ICorDebugChain_FWD_DEFINED__ */ #ifndef __ICorDebugFrame_FWD_DEFINED__ #define __ICorDebugFrame_FWD_DEFINED__ typedef interface ICorDebugFrame ICorDebugFrame; -#endif /* __ICorDebugFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugFrame_FWD_DEFINED__ */ #ifndef __ICorDebugInternalFrame_FWD_DEFINED__ #define __ICorDebugInternalFrame_FWD_DEFINED__ typedef interface ICorDebugInternalFrame ICorDebugInternalFrame; -#endif /* __ICorDebugInternalFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugInternalFrame_FWD_DEFINED__ */ #ifndef __ICorDebugInternalFrame2_FWD_DEFINED__ #define __ICorDebugInternalFrame2_FWD_DEFINED__ typedef interface ICorDebugInternalFrame2 ICorDebugInternalFrame2; -#endif /* __ICorDebugInternalFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugInternalFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame_FWD_DEFINED__ #define __ICorDebugILFrame_FWD_DEFINED__ typedef interface ICorDebugILFrame ICorDebugILFrame; -#endif /* __ICorDebugILFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame2_FWD_DEFINED__ #define __ICorDebugILFrame2_FWD_DEFINED__ typedef interface ICorDebugILFrame2 ICorDebugILFrame2; -#endif /* __ICorDebugILFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame3_FWD_DEFINED__ #define __ICorDebugILFrame3_FWD_DEFINED__ typedef interface ICorDebugILFrame3 ICorDebugILFrame3; -#endif /* __ICorDebugILFrame3_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame3_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame4_FWD_DEFINED__ #define __ICorDebugILFrame4_FWD_DEFINED__ typedef interface ICorDebugILFrame4 ICorDebugILFrame4; -#endif /* __ICorDebugILFrame4_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame4_FWD_DEFINED__ */ #ifndef __ICorDebugNativeFrame_FWD_DEFINED__ #define __ICorDebugNativeFrame_FWD_DEFINED__ typedef interface ICorDebugNativeFrame ICorDebugNativeFrame; -#endif /* __ICorDebugNativeFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugNativeFrame_FWD_DEFINED__ */ #ifndef __ICorDebugNativeFrame2_FWD_DEFINED__ #define __ICorDebugNativeFrame2_FWD_DEFINED__ typedef interface ICorDebugNativeFrame2 ICorDebugNativeFrame2; -#endif /* __ICorDebugNativeFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugNativeFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugModule3_FWD_DEFINED__ #define __ICorDebugModule3_FWD_DEFINED__ typedef interface ICorDebugModule3 ICorDebugModule3; -#endif /* __ICorDebugModule3_FWD_DEFINED__ */ +#endif /* __ICorDebugModule3_FWD_DEFINED__ */ #ifndef __ICorDebugModule4_FWD_DEFINED__ #define __ICorDebugModule4_FWD_DEFINED__ typedef interface ICorDebugModule4 ICorDebugModule4; -#endif /* __ICorDebugModule4_FWD_DEFINED__ */ +#endif /* __ICorDebugModule4_FWD_DEFINED__ */ #ifndef __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ #define __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ typedef interface ICorDebugRuntimeUnwindableFrame ICorDebugRuntimeUnwindableFrame; -#endif /* __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ */ #ifndef __ICorDebugModule_FWD_DEFINED__ #define __ICorDebugModule_FWD_DEFINED__ typedef interface ICorDebugModule ICorDebugModule; -#endif /* __ICorDebugModule_FWD_DEFINED__ */ +#endif /* __ICorDebugModule_FWD_DEFINED__ */ #ifndef __ICorDebugModule2_FWD_DEFINED__ #define __ICorDebugModule2_FWD_DEFINED__ typedef interface ICorDebugModule2 ICorDebugModule2; -#endif /* __ICorDebugModule2_FWD_DEFINED__ */ +#endif /* __ICorDebugModule2_FWD_DEFINED__ */ #ifndef __ICorDebugFunction_FWD_DEFINED__ #define __ICorDebugFunction_FWD_DEFINED__ typedef interface ICorDebugFunction ICorDebugFunction; -#endif /* __ICorDebugFunction_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction_FWD_DEFINED__ */ #ifndef __ICorDebugFunction2_FWD_DEFINED__ #define __ICorDebugFunction2_FWD_DEFINED__ typedef interface ICorDebugFunction2 ICorDebugFunction2; -#endif /* __ICorDebugFunction2_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction2_FWD_DEFINED__ */ #ifndef __ICorDebugFunction3_FWD_DEFINED__ #define __ICorDebugFunction3_FWD_DEFINED__ typedef interface ICorDebugFunction3 ICorDebugFunction3; -#endif /* __ICorDebugFunction3_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction3_FWD_DEFINED__ */ #ifndef __ICorDebugFunction4_FWD_DEFINED__ #define __ICorDebugFunction4_FWD_DEFINED__ typedef interface ICorDebugFunction4 ICorDebugFunction4; -#endif /* __ICorDebugFunction4_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction4_FWD_DEFINED__ */ + + +#ifndef __ICorDebugFunction5_FWD_DEFINED__ +#define __ICorDebugFunction5_FWD_DEFINED__ +typedef interface ICorDebugFunction5 ICorDebugFunction5; + +#endif /* __ICorDebugFunction5_FWD_DEFINED__ */ #ifndef __ICorDebugCode_FWD_DEFINED__ #define __ICorDebugCode_FWD_DEFINED__ typedef interface ICorDebugCode ICorDebugCode; -#endif /* __ICorDebugCode_FWD_DEFINED__ */ +#endif /* __ICorDebugCode_FWD_DEFINED__ */ #ifndef __ICorDebugCode2_FWD_DEFINED__ #define __ICorDebugCode2_FWD_DEFINED__ typedef interface ICorDebugCode2 ICorDebugCode2; -#endif /* __ICorDebugCode2_FWD_DEFINED__ */ +#endif /* __ICorDebugCode2_FWD_DEFINED__ */ #ifndef __ICorDebugCode3_FWD_DEFINED__ #define __ICorDebugCode3_FWD_DEFINED__ typedef interface ICorDebugCode3 ICorDebugCode3; -#endif /* __ICorDebugCode3_FWD_DEFINED__ */ +#endif /* __ICorDebugCode3_FWD_DEFINED__ */ #ifndef __ICorDebugCode4_FWD_DEFINED__ #define __ICorDebugCode4_FWD_DEFINED__ typedef interface ICorDebugCode4 ICorDebugCode4; -#endif /* __ICorDebugCode4_FWD_DEFINED__ */ +#endif /* __ICorDebugCode4_FWD_DEFINED__ */ #ifndef __ICorDebugILCode_FWD_DEFINED__ #define __ICorDebugILCode_FWD_DEFINED__ typedef interface ICorDebugILCode ICorDebugILCode; -#endif /* __ICorDebugILCode_FWD_DEFINED__ */ +#endif /* __ICorDebugILCode_FWD_DEFINED__ */ #ifndef __ICorDebugILCode2_FWD_DEFINED__ #define __ICorDebugILCode2_FWD_DEFINED__ typedef interface ICorDebugILCode2 ICorDebugILCode2; -#endif /* __ICorDebugILCode2_FWD_DEFINED__ */ +#endif /* __ICorDebugILCode2_FWD_DEFINED__ */ #ifndef __ICorDebugClass_FWD_DEFINED__ #define __ICorDebugClass_FWD_DEFINED__ typedef interface ICorDebugClass ICorDebugClass; -#endif /* __ICorDebugClass_FWD_DEFINED__ */ +#endif /* __ICorDebugClass_FWD_DEFINED__ */ #ifndef __ICorDebugClass2_FWD_DEFINED__ #define __ICorDebugClass2_FWD_DEFINED__ typedef interface ICorDebugClass2 ICorDebugClass2; -#endif /* __ICorDebugClass2_FWD_DEFINED__ */ +#endif /* __ICorDebugClass2_FWD_DEFINED__ */ #ifndef __ICorDebugEval_FWD_DEFINED__ #define __ICorDebugEval_FWD_DEFINED__ typedef interface ICorDebugEval ICorDebugEval; -#endif /* __ICorDebugEval_FWD_DEFINED__ */ +#endif /* __ICorDebugEval_FWD_DEFINED__ */ #ifndef __ICorDebugEval2_FWD_DEFINED__ #define __ICorDebugEval2_FWD_DEFINED__ typedef interface ICorDebugEval2 ICorDebugEval2; -#endif /* __ICorDebugEval2_FWD_DEFINED__ */ +#endif /* __ICorDebugEval2_FWD_DEFINED__ */ #ifndef __ICorDebugValue_FWD_DEFINED__ #define __ICorDebugValue_FWD_DEFINED__ typedef interface ICorDebugValue ICorDebugValue; -#endif /* __ICorDebugValue_FWD_DEFINED__ */ +#endif /* __ICorDebugValue_FWD_DEFINED__ */ #ifndef __ICorDebugValue2_FWD_DEFINED__ #define __ICorDebugValue2_FWD_DEFINED__ typedef interface ICorDebugValue2 ICorDebugValue2; -#endif /* __ICorDebugValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugValue2_FWD_DEFINED__ */ #ifndef __ICorDebugValue3_FWD_DEFINED__ #define __ICorDebugValue3_FWD_DEFINED__ typedef interface ICorDebugValue3 ICorDebugValue3; -#endif /* __ICorDebugValue3_FWD_DEFINED__ */ +#endif /* __ICorDebugValue3_FWD_DEFINED__ */ #ifndef __ICorDebugGenericValue_FWD_DEFINED__ #define __ICorDebugGenericValue_FWD_DEFINED__ typedef interface ICorDebugGenericValue ICorDebugGenericValue; -#endif /* __ICorDebugGenericValue_FWD_DEFINED__ */ +#endif /* __ICorDebugGenericValue_FWD_DEFINED__ */ #ifndef __ICorDebugReferenceValue_FWD_DEFINED__ #define __ICorDebugReferenceValue_FWD_DEFINED__ typedef interface ICorDebugReferenceValue ICorDebugReferenceValue; -#endif /* __ICorDebugReferenceValue_FWD_DEFINED__ */ +#endif /* __ICorDebugReferenceValue_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue_FWD_DEFINED__ #define __ICorDebugHeapValue_FWD_DEFINED__ typedef interface ICorDebugHeapValue ICorDebugHeapValue; -#endif /* __ICorDebugHeapValue_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue2_FWD_DEFINED__ #define __ICorDebugHeapValue2_FWD_DEFINED__ typedef interface ICorDebugHeapValue2 ICorDebugHeapValue2; -#endif /* __ICorDebugHeapValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue2_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue3_FWD_DEFINED__ #define __ICorDebugHeapValue3_FWD_DEFINED__ typedef interface ICorDebugHeapValue3 ICorDebugHeapValue3; -#endif /* __ICorDebugHeapValue3_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue3_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue4_FWD_DEFINED__ #define __ICorDebugHeapValue4_FWD_DEFINED__ typedef interface ICorDebugHeapValue4 ICorDebugHeapValue4; -#endif /* __ICorDebugHeapValue4_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue4_FWD_DEFINED__ */ #ifndef __ICorDebugObjectValue_FWD_DEFINED__ #define __ICorDebugObjectValue_FWD_DEFINED__ typedef interface ICorDebugObjectValue ICorDebugObjectValue; -#endif /* __ICorDebugObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugObjectValue_FWD_DEFINED__ */ #ifndef __ICorDebugObjectValue2_FWD_DEFINED__ #define __ICorDebugObjectValue2_FWD_DEFINED__ typedef interface ICorDebugObjectValue2 ICorDebugObjectValue2; -#endif /* __ICorDebugObjectValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugObjectValue2_FWD_DEFINED__ */ #ifndef __ICorDebugDelegateObjectValue_FWD_DEFINED__ #define __ICorDebugDelegateObjectValue_FWD_DEFINED__ typedef interface ICorDebugDelegateObjectValue ICorDebugDelegateObjectValue; -#endif /* __ICorDebugDelegateObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugDelegateObjectValue_FWD_DEFINED__ */ #ifndef __ICorDebugBoxValue_FWD_DEFINED__ #define __ICorDebugBoxValue_FWD_DEFINED__ typedef interface ICorDebugBoxValue ICorDebugBoxValue; -#endif /* __ICorDebugBoxValue_FWD_DEFINED__ */ +#endif /* __ICorDebugBoxValue_FWD_DEFINED__ */ #ifndef __ICorDebugStringValue_FWD_DEFINED__ #define __ICorDebugStringValue_FWD_DEFINED__ typedef interface ICorDebugStringValue ICorDebugStringValue; -#endif /* __ICorDebugStringValue_FWD_DEFINED__ */ +#endif /* __ICorDebugStringValue_FWD_DEFINED__ */ #ifndef __ICorDebugArrayValue_FWD_DEFINED__ #define __ICorDebugArrayValue_FWD_DEFINED__ typedef interface ICorDebugArrayValue ICorDebugArrayValue; -#endif /* __ICorDebugArrayValue_FWD_DEFINED__ */ +#endif /* __ICorDebugArrayValue_FWD_DEFINED__ */ #ifndef __ICorDebugVariableHome_FWD_DEFINED__ #define __ICorDebugVariableHome_FWD_DEFINED__ typedef interface ICorDebugVariableHome ICorDebugVariableHome; -#endif /* __ICorDebugVariableHome_FWD_DEFINED__ */ +#endif /* __ICorDebugVariableHome_FWD_DEFINED__ */ #ifndef __ICorDebugHandleValue_FWD_DEFINED__ #define __ICorDebugHandleValue_FWD_DEFINED__ typedef interface ICorDebugHandleValue ICorDebugHandleValue; -#endif /* __ICorDebugHandleValue_FWD_DEFINED__ */ +#endif /* __ICorDebugHandleValue_FWD_DEFINED__ */ #ifndef __ICorDebugContext_FWD_DEFINED__ #define __ICorDebugContext_FWD_DEFINED__ typedef interface ICorDebugContext ICorDebugContext; -#endif /* __ICorDebugContext_FWD_DEFINED__ */ +#endif /* __ICorDebugContext_FWD_DEFINED__ */ #ifndef __ICorDebugComObjectValue_FWD_DEFINED__ #define __ICorDebugComObjectValue_FWD_DEFINED__ typedef interface ICorDebugComObjectValue ICorDebugComObjectValue; -#endif /* __ICorDebugComObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugComObjectValue_FWD_DEFINED__ */ #ifndef __ICorDebugObjectEnum_FWD_DEFINED__ #define __ICorDebugObjectEnum_FWD_DEFINED__ typedef interface ICorDebugObjectEnum ICorDebugObjectEnum; -#endif /* __ICorDebugObjectEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugObjectEnum_FWD_DEFINED__ */ #ifndef __ICorDebugBreakpointEnum_FWD_DEFINED__ #define __ICorDebugBreakpointEnum_FWD_DEFINED__ typedef interface ICorDebugBreakpointEnum ICorDebugBreakpointEnum; -#endif /* __ICorDebugBreakpointEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugBreakpointEnum_FWD_DEFINED__ */ #ifndef __ICorDebugStepperEnum_FWD_DEFINED__ #define __ICorDebugStepperEnum_FWD_DEFINED__ typedef interface ICorDebugStepperEnum ICorDebugStepperEnum; -#endif /* __ICorDebugStepperEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugStepperEnum_FWD_DEFINED__ */ #ifndef __ICorDebugProcessEnum_FWD_DEFINED__ #define __ICorDebugProcessEnum_FWD_DEFINED__ typedef interface ICorDebugProcessEnum ICorDebugProcessEnum; -#endif /* __ICorDebugProcessEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugProcessEnum_FWD_DEFINED__ */ #ifndef __ICorDebugThreadEnum_FWD_DEFINED__ #define __ICorDebugThreadEnum_FWD_DEFINED__ typedef interface ICorDebugThreadEnum ICorDebugThreadEnum; -#endif /* __ICorDebugThreadEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugThreadEnum_FWD_DEFINED__ */ #ifndef __ICorDebugFrameEnum_FWD_DEFINED__ #define __ICorDebugFrameEnum_FWD_DEFINED__ typedef interface ICorDebugFrameEnum ICorDebugFrameEnum; -#endif /* __ICorDebugFrameEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugFrameEnum_FWD_DEFINED__ */ #ifndef __ICorDebugChainEnum_FWD_DEFINED__ #define __ICorDebugChainEnum_FWD_DEFINED__ typedef interface ICorDebugChainEnum ICorDebugChainEnum; -#endif /* __ICorDebugChainEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugChainEnum_FWD_DEFINED__ */ #ifndef __ICorDebugModuleEnum_FWD_DEFINED__ #define __ICorDebugModuleEnum_FWD_DEFINED__ typedef interface ICorDebugModuleEnum ICorDebugModuleEnum; -#endif /* __ICorDebugModuleEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugModuleEnum_FWD_DEFINED__ */ #ifndef __ICorDebugValueEnum_FWD_DEFINED__ #define __ICorDebugValueEnum_FWD_DEFINED__ typedef interface ICorDebugValueEnum ICorDebugValueEnum; -#endif /* __ICorDebugValueEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugValueEnum_FWD_DEFINED__ */ #ifndef __ICorDebugVariableHomeEnum_FWD_DEFINED__ #define __ICorDebugVariableHomeEnum_FWD_DEFINED__ typedef interface ICorDebugVariableHomeEnum ICorDebugVariableHomeEnum; -#endif /* __ICorDebugVariableHomeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugVariableHomeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugCodeEnum_FWD_DEFINED__ #define __ICorDebugCodeEnum_FWD_DEFINED__ typedef interface ICorDebugCodeEnum ICorDebugCodeEnum; -#endif /* __ICorDebugCodeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugCodeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugTypeEnum_FWD_DEFINED__ #define __ICorDebugTypeEnum_FWD_DEFINED__ typedef interface ICorDebugTypeEnum ICorDebugTypeEnum; -#endif /* __ICorDebugTypeEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugTypeEnum_FWD_DEFINED__ */ #ifndef __ICorDebugType_FWD_DEFINED__ #define __ICorDebugType_FWD_DEFINED__ typedef interface ICorDebugType ICorDebugType; -#endif /* __ICorDebugType_FWD_DEFINED__ */ +#endif /* __ICorDebugType_FWD_DEFINED__ */ #ifndef __ICorDebugType2_FWD_DEFINED__ #define __ICorDebugType2_FWD_DEFINED__ typedef interface ICorDebugType2 ICorDebugType2; -#endif /* __ICorDebugType2_FWD_DEFINED__ */ +#endif /* __ICorDebugType2_FWD_DEFINED__ */ #ifndef __ICorDebugErrorInfoEnum_FWD_DEFINED__ #define __ICorDebugErrorInfoEnum_FWD_DEFINED__ typedef interface ICorDebugErrorInfoEnum ICorDebugErrorInfoEnum; -#endif /* __ICorDebugErrorInfoEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugErrorInfoEnum_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomainEnum_FWD_DEFINED__ #define __ICorDebugAppDomainEnum_FWD_DEFINED__ typedef interface ICorDebugAppDomainEnum ICorDebugAppDomainEnum; -#endif /* __ICorDebugAppDomainEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomainEnum_FWD_DEFINED__ */ #ifndef __ICorDebugAssemblyEnum_FWD_DEFINED__ #define __ICorDebugAssemblyEnum_FWD_DEFINED__ typedef interface ICorDebugAssemblyEnum ICorDebugAssemblyEnum; -#endif /* __ICorDebugAssemblyEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugAssemblyEnum_FWD_DEFINED__ */ #ifndef __ICorDebugBlockingObjectEnum_FWD_DEFINED__ #define __ICorDebugBlockingObjectEnum_FWD_DEFINED__ typedef interface ICorDebugBlockingObjectEnum ICorDebugBlockingObjectEnum; -#endif /* __ICorDebugBlockingObjectEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugBlockingObjectEnum_FWD_DEFINED__ */ #ifndef __ICorDebugMDA_FWD_DEFINED__ #define __ICorDebugMDA_FWD_DEFINED__ typedef interface ICorDebugMDA ICorDebugMDA; -#endif /* __ICorDebugMDA_FWD_DEFINED__ */ +#endif /* __ICorDebugMDA_FWD_DEFINED__ */ #ifndef __ICorDebugEditAndContinueErrorInfo_FWD_DEFINED__ #define __ICorDebugEditAndContinueErrorInfo_FWD_DEFINED__ typedef interface ICorDebugEditAndContinueErrorInfo ICorDebugEditAndContinueErrorInfo; -#endif /* __ICorDebugEditAndContinueErrorInfo_FWD_DEFINED__ */ +#endif /* __ICorDebugEditAndContinueErrorInfo_FWD_DEFINED__ */ #ifndef __ICorDebugEditAndContinueSnapshot_FWD_DEFINED__ #define __ICorDebugEditAndContinueSnapshot_FWD_DEFINED__ typedef interface ICorDebugEditAndContinueSnapshot ICorDebugEditAndContinueSnapshot; -#endif /* __ICorDebugEditAndContinueSnapshot_FWD_DEFINED__ */ +#endif /* __ICorDebugEditAndContinueSnapshot_FWD_DEFINED__ */ #ifndef __ICorDebugExceptionObjectCallStackEnum_FWD_DEFINED__ #define __ICorDebugExceptionObjectCallStackEnum_FWD_DEFINED__ typedef interface ICorDebugExceptionObjectCallStackEnum ICorDebugExceptionObjectCallStackEnum; -#endif /* __ICorDebugExceptionObjectCallStackEnum_FWD_DEFINED__ */ +#endif /* __ICorDebugExceptionObjectCallStackEnum_FWD_DEFINED__ */ #ifndef __ICorDebugExceptionObjectValue_FWD_DEFINED__ #define __ICorDebugExceptionObjectValue_FWD_DEFINED__ typedef interface ICorDebugExceptionObjectValue ICorDebugExceptionObjectValue; -#endif /* __ICorDebugExceptionObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugExceptionObjectValue_FWD_DEFINED__ */ #ifndef __CorDebug_FWD_DEFINED__ @@ -998,7 +1012,7 @@ typedef class CorDebug CorDebug; typedef struct CorDebug CorDebug; #endif /* __cplusplus */ -#endif /* __CorDebug_FWD_DEFINED__ */ +#endif /* __CorDebug_FWD_DEFINED__ */ #ifndef __EmbeddedCLRCorDebug_FWD_DEFINED__ @@ -1010,238 +1024,238 @@ typedef class EmbeddedCLRCorDebug EmbeddedCLRCorDebug; typedef struct EmbeddedCLRCorDebug EmbeddedCLRCorDebug; #endif /* __cplusplus */ -#endif /* __EmbeddedCLRCorDebug_FWD_DEFINED__ */ +#endif /* __EmbeddedCLRCorDebug_FWD_DEFINED__ */ #ifndef __ICorDebugValue_FWD_DEFINED__ #define __ICorDebugValue_FWD_DEFINED__ typedef interface ICorDebugValue ICorDebugValue; -#endif /* __ICorDebugValue_FWD_DEFINED__ */ +#endif /* __ICorDebugValue_FWD_DEFINED__ */ #ifndef __ICorDebugReferenceValue_FWD_DEFINED__ #define __ICorDebugReferenceValue_FWD_DEFINED__ typedef interface ICorDebugReferenceValue ICorDebugReferenceValue; -#endif /* __ICorDebugReferenceValue_FWD_DEFINED__ */ +#endif /* __ICorDebugReferenceValue_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue_FWD_DEFINED__ #define __ICorDebugHeapValue_FWD_DEFINED__ typedef interface ICorDebugHeapValue ICorDebugHeapValue; -#endif /* __ICorDebugHeapValue_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue_FWD_DEFINED__ */ #ifndef __ICorDebugStringValue_FWD_DEFINED__ #define __ICorDebugStringValue_FWD_DEFINED__ typedef interface ICorDebugStringValue ICorDebugStringValue; -#endif /* __ICorDebugStringValue_FWD_DEFINED__ */ +#endif /* __ICorDebugStringValue_FWD_DEFINED__ */ #ifndef __ICorDebugGenericValue_FWD_DEFINED__ #define __ICorDebugGenericValue_FWD_DEFINED__ typedef interface ICorDebugGenericValue ICorDebugGenericValue; -#endif /* __ICorDebugGenericValue_FWD_DEFINED__ */ +#endif /* __ICorDebugGenericValue_FWD_DEFINED__ */ #ifndef __ICorDebugBoxValue_FWD_DEFINED__ #define __ICorDebugBoxValue_FWD_DEFINED__ typedef interface ICorDebugBoxValue ICorDebugBoxValue; -#endif /* __ICorDebugBoxValue_FWD_DEFINED__ */ +#endif /* __ICorDebugBoxValue_FWD_DEFINED__ */ #ifndef __ICorDebugArrayValue_FWD_DEFINED__ #define __ICorDebugArrayValue_FWD_DEFINED__ typedef interface ICorDebugArrayValue ICorDebugArrayValue; -#endif /* __ICorDebugArrayValue_FWD_DEFINED__ */ +#endif /* __ICorDebugArrayValue_FWD_DEFINED__ */ #ifndef __ICorDebugFrame_FWD_DEFINED__ #define __ICorDebugFrame_FWD_DEFINED__ typedef interface ICorDebugFrame ICorDebugFrame; -#endif /* __ICorDebugFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugFrame_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame_FWD_DEFINED__ #define __ICorDebugILFrame_FWD_DEFINED__ typedef interface ICorDebugILFrame ICorDebugILFrame; -#endif /* __ICorDebugILFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame_FWD_DEFINED__ */ #ifndef __ICorDebugInternalFrame_FWD_DEFINED__ #define __ICorDebugInternalFrame_FWD_DEFINED__ typedef interface ICorDebugInternalFrame ICorDebugInternalFrame; -#endif /* __ICorDebugInternalFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugInternalFrame_FWD_DEFINED__ */ #ifndef __ICorDebugInternalFrame2_FWD_DEFINED__ #define __ICorDebugInternalFrame2_FWD_DEFINED__ typedef interface ICorDebugInternalFrame2 ICorDebugInternalFrame2; -#endif /* __ICorDebugInternalFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugInternalFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugNativeFrame_FWD_DEFINED__ #define __ICorDebugNativeFrame_FWD_DEFINED__ typedef interface ICorDebugNativeFrame ICorDebugNativeFrame; -#endif /* __ICorDebugNativeFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugNativeFrame_FWD_DEFINED__ */ #ifndef __ICorDebugNativeFrame2_FWD_DEFINED__ #define __ICorDebugNativeFrame2_FWD_DEFINED__ typedef interface ICorDebugNativeFrame2 ICorDebugNativeFrame2; -#endif /* __ICorDebugNativeFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugNativeFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ #define __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ typedef interface ICorDebugRuntimeUnwindableFrame ICorDebugRuntimeUnwindableFrame; -#endif /* __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ */ +#endif /* __ICorDebugRuntimeUnwindableFrame_FWD_DEFINED__ */ #ifndef __ICorDebugManagedCallback2_FWD_DEFINED__ #define __ICorDebugManagedCallback2_FWD_DEFINED__ typedef interface ICorDebugManagedCallback2 ICorDebugManagedCallback2; -#endif /* __ICorDebugManagedCallback2_FWD_DEFINED__ */ +#endif /* __ICorDebugManagedCallback2_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain2_FWD_DEFINED__ #define __ICorDebugAppDomain2_FWD_DEFINED__ typedef interface ICorDebugAppDomain2 ICorDebugAppDomain2; -#endif /* __ICorDebugAppDomain2_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain2_FWD_DEFINED__ */ #ifndef __ICorDebugAppDomain3_FWD_DEFINED__ #define __ICorDebugAppDomain3_FWD_DEFINED__ typedef interface ICorDebugAppDomain3 ICorDebugAppDomain3; -#endif /* __ICorDebugAppDomain3_FWD_DEFINED__ */ +#endif /* __ICorDebugAppDomain3_FWD_DEFINED__ */ #ifndef __ICorDebugAssembly2_FWD_DEFINED__ #define __ICorDebugAssembly2_FWD_DEFINED__ typedef interface ICorDebugAssembly2 ICorDebugAssembly2; -#endif /* __ICorDebugAssembly2_FWD_DEFINED__ */ +#endif /* __ICorDebugAssembly2_FWD_DEFINED__ */ #ifndef __ICorDebugProcess2_FWD_DEFINED__ #define __ICorDebugProcess2_FWD_DEFINED__ typedef interface ICorDebugProcess2 ICorDebugProcess2; -#endif /* __ICorDebugProcess2_FWD_DEFINED__ */ +#endif /* __ICorDebugProcess2_FWD_DEFINED__ */ #ifndef __ICorDebugStepper2_FWD_DEFINED__ #define __ICorDebugStepper2_FWD_DEFINED__ typedef interface ICorDebugStepper2 ICorDebugStepper2; -#endif /* __ICorDebugStepper2_FWD_DEFINED__ */ +#endif /* __ICorDebugStepper2_FWD_DEFINED__ */ #ifndef __ICorDebugThread2_FWD_DEFINED__ #define __ICorDebugThread2_FWD_DEFINED__ typedef interface ICorDebugThread2 ICorDebugThread2; -#endif /* __ICorDebugThread2_FWD_DEFINED__ */ +#endif /* __ICorDebugThread2_FWD_DEFINED__ */ #ifndef __ICorDebugThread3_FWD_DEFINED__ #define __ICorDebugThread3_FWD_DEFINED__ typedef interface ICorDebugThread3 ICorDebugThread3; -#endif /* __ICorDebugThread3_FWD_DEFINED__ */ +#endif /* __ICorDebugThread3_FWD_DEFINED__ */ #ifndef __ICorDebugILFrame2_FWD_DEFINED__ #define __ICorDebugILFrame2_FWD_DEFINED__ typedef interface ICorDebugILFrame2 ICorDebugILFrame2; -#endif /* __ICorDebugILFrame2_FWD_DEFINED__ */ +#endif /* __ICorDebugILFrame2_FWD_DEFINED__ */ #ifndef __ICorDebugModule2_FWD_DEFINED__ #define __ICorDebugModule2_FWD_DEFINED__ typedef interface ICorDebugModule2 ICorDebugModule2; -#endif /* __ICorDebugModule2_FWD_DEFINED__ */ +#endif /* __ICorDebugModule2_FWD_DEFINED__ */ #ifndef __ICorDebugFunction2_FWD_DEFINED__ #define __ICorDebugFunction2_FWD_DEFINED__ typedef interface ICorDebugFunction2 ICorDebugFunction2; -#endif /* __ICorDebugFunction2_FWD_DEFINED__ */ +#endif /* __ICorDebugFunction2_FWD_DEFINED__ */ #ifndef __ICorDebugClass2_FWD_DEFINED__ #define __ICorDebugClass2_FWD_DEFINED__ typedef interface ICorDebugClass2 ICorDebugClass2; -#endif /* __ICorDebugClass2_FWD_DEFINED__ */ +#endif /* __ICorDebugClass2_FWD_DEFINED__ */ #ifndef __ICorDebugEval2_FWD_DEFINED__ #define __ICorDebugEval2_FWD_DEFINED__ typedef interface ICorDebugEval2 ICorDebugEval2; -#endif /* __ICorDebugEval2_FWD_DEFINED__ */ +#endif /* __ICorDebugEval2_FWD_DEFINED__ */ #ifndef __ICorDebugValue2_FWD_DEFINED__ #define __ICorDebugValue2_FWD_DEFINED__ typedef interface ICorDebugValue2 ICorDebugValue2; -#endif /* __ICorDebugValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugValue2_FWD_DEFINED__ */ #ifndef __ICorDebugObjectValue2_FWD_DEFINED__ #define __ICorDebugObjectValue2_FWD_DEFINED__ typedef interface ICorDebugObjectValue2 ICorDebugObjectValue2; -#endif /* __ICorDebugObjectValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugObjectValue2_FWD_DEFINED__ */ #ifndef __ICorDebugHandleValue_FWD_DEFINED__ #define __ICorDebugHandleValue_FWD_DEFINED__ typedef interface ICorDebugHandleValue ICorDebugHandleValue; -#endif /* __ICorDebugHandleValue_FWD_DEFINED__ */ +#endif /* __ICorDebugHandleValue_FWD_DEFINED__ */ #ifndef __ICorDebugHeapValue2_FWD_DEFINED__ #define __ICorDebugHeapValue2_FWD_DEFINED__ typedef interface ICorDebugHeapValue2 ICorDebugHeapValue2; -#endif /* __ICorDebugHeapValue2_FWD_DEFINED__ */ +#endif /* __ICorDebugHeapValue2_FWD_DEFINED__ */ #ifndef __ICorDebugComObjectValue_FWD_DEFINED__ #define __ICorDebugComObjectValue_FWD_DEFINED__ typedef interface ICorDebugComObjectValue ICorDebugComObjectValue; -#endif /* __ICorDebugComObjectValue_FWD_DEFINED__ */ +#endif /* __ICorDebugComObjectValue_FWD_DEFINED__ */ #ifndef __ICorDebugModule3_FWD_DEFINED__ #define __ICorDebugModule3_FWD_DEFINED__ typedef interface ICorDebugModule3 ICorDebugModule3; -#endif /* __ICorDebugModule3_FWD_DEFINED__ */ +#endif /* __ICorDebugModule3_FWD_DEFINED__ */ /* header files for imported files */ @@ -1250,11 +1264,11 @@ typedef interface ICorDebugModule3 ICorDebugModule3; #ifdef __cplusplus extern "C"{ -#endif +#endif /* interface __MIDL_itf_cordebug_0000_0000 */ -/* [local] */ +/* [local] */ #if 0 typedef UINT32 mdToken; @@ -1303,50 +1317,50 @@ typedef struct _COR_IL_MAP ULONG32 oldOffset; ULONG32 newOffset; BOOL fAccurate; - } COR_IL_MAP; + } COR_IL_MAP; #endif //_COR_IL_MAP #ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_ #define _COR_DEBUG_IL_TO_NATIVE_MAP_ -typedef +typedef enum CorDebugIlToNativeMappingTypes { - NO_MAPPING = -1, - PROLOG = -2, - EPILOG = -3 - } CorDebugIlToNativeMappingTypes; + NO_MAPPING = -1, + PROLOG = -2, + EPILOG = -3 + } CorDebugIlToNativeMappingTypes; typedef struct COR_DEBUG_IL_TO_NATIVE_MAP { ULONG32 ilOffset; ULONG32 nativeStartOffset; ULONG32 nativeEndOffset; - } COR_DEBUG_IL_TO_NATIVE_MAP; + } COR_DEBUG_IL_TO_NATIVE_MAP; #endif // _COR_DEBUG_IL_TO_NATIVE_MAP_ #define REMOTE_DEBUGGING_DLL_ENTRY L"Software\\Microsoft\\.NETFramework\\Debugger\\ActivateRemoteDebugging" -typedef +typedef enum CorDebugJITCompilerFlags { - CORDEBUG_JIT_DEFAULT = 0x1, - CORDEBUG_JIT_DISABLE_OPTIMIZATION = 0x3, - CORDEBUG_JIT_ENABLE_ENC = 0x7 - } CorDebugJITCompilerFlags; + CORDEBUG_JIT_DEFAULT = 0x1, + CORDEBUG_JIT_DISABLE_OPTIMIZATION = 0x3, + CORDEBUG_JIT_ENABLE_ENC = 0x7 + } CorDebugJITCompilerFlags; -typedef +typedef enum CorDebugJITCompilerFlagsDecprecated { - CORDEBUG_JIT_TRACK_DEBUG_INFO = 0x1 - } CorDebugJITCompilerFlagsDeprecated; + CORDEBUG_JIT_TRACK_DEBUG_INFO = 0x1 + } CorDebugJITCompilerFlagsDeprecated; -typedef +typedef enum CorDebugNGENPolicy { - DISABLE_LOCAL_NIC = 1 - } CorDebugNGENPolicy; + DISABLE_LOCAL_NIC = 1 + } CorDebugNGENPolicy; #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) @@ -1421,20 +1435,20 @@ typedef ULONG64 CORDB_REGISTER; typedef DWORD CORDB_CONTINUE_STATUS; -typedef +typedef enum CorDebugBlockingReason { - BLOCKING_NONE = 0, - BLOCKING_MONITOR_CRITICAL_SECTION = 0x1, - BLOCKING_MONITOR_EVENT = 0x2 - } CorDebugBlockingReason; + BLOCKING_NONE = 0, + BLOCKING_MONITOR_CRITICAL_SECTION = 0x1, + BLOCKING_MONITOR_EVENT = 0x2 + } CorDebugBlockingReason; typedef struct CorDebugBlockingObject { ICorDebugValue *pBlockingObject; DWORD dwTimeout; CorDebugBlockingReason blockingReason; - } CorDebugBlockingObject; + } CorDebugBlockingObject; typedef struct CorDebugExceptionObjectStackFrame { @@ -1442,13 +1456,13 @@ typedef struct CorDebugExceptionObjectStackFrame CORDB_ADDRESS ip; mdMethodDef methodDef; BOOL isLastForeignExceptionFrame; - } CorDebugExceptionObjectStackFrame; + } CorDebugExceptionObjectStackFrame; typedef struct CorDebugGuidToTypeMapping { GUID iid; ICorDebugType *pType; - } CorDebugGuidToTypeMapping; + } CorDebugGuidToTypeMapping; @@ -1459,90 +1473,96 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0000_v0_0_s_ifspec; #define __ICorDebugDataTarget_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugPlatform { - CORDB_PLATFORM_WINDOWS_X86 = 0, - CORDB_PLATFORM_WINDOWS_AMD64 = ( CORDB_PLATFORM_WINDOWS_X86 + 1 ) , - CORDB_PLATFORM_WINDOWS_IA64 = ( CORDB_PLATFORM_WINDOWS_AMD64 + 1 ) , - CORDB_PLATFORM_MAC_PPC = ( CORDB_PLATFORM_WINDOWS_IA64 + 1 ) , - CORDB_PLATFORM_MAC_X86 = ( CORDB_PLATFORM_MAC_PPC + 1 ) , - CORDB_PLATFORM_WINDOWS_ARM = ( CORDB_PLATFORM_MAC_X86 + 1 ) , - CORDB_PLATFORM_MAC_AMD64 = ( CORDB_PLATFORM_WINDOWS_ARM + 1 ) , - CORDB_PLATFORM_WINDOWS_ARM64 = ( CORDB_PLATFORM_MAC_AMD64 + 1 ) , - CORDB_PLATFORM_POSIX_AMD64 = ( CORDB_PLATFORM_WINDOWS_ARM64 + 1 ) , - CORDB_PLATFORM_POSIX_X86 = ( CORDB_PLATFORM_POSIX_AMD64 + 1 ) , - CORDB_PLATFORM_POSIX_ARM = ( CORDB_PLATFORM_POSIX_X86 + 1 ) , - CORDB_PLATFORM_POSIX_ARM64 = ( CORDB_PLATFORM_POSIX_ARM + 1 ) , - CORDB_PLATFORM_POSIX_LOONGARCH64 = ( CORDB_PLATFORM_POSIX_ARM64 + 1 ) , - CORDB_PLATFORM_POSIX_RISCV64 = ( CORDB_PLATFORM_POSIX_LOONGARCH64 + 1 ) - } CorDebugPlatform; + CORDB_PLATFORM_WINDOWS_X86 = 0, + CORDB_PLATFORM_WINDOWS_AMD64 = ( CORDB_PLATFORM_WINDOWS_X86 + 1 ) , + CORDB_PLATFORM_WINDOWS_IA64 = ( CORDB_PLATFORM_WINDOWS_AMD64 + 1 ) , + CORDB_PLATFORM_MAC_PPC = ( CORDB_PLATFORM_WINDOWS_IA64 + 1 ) , + CORDB_PLATFORM_MAC_X86 = ( CORDB_PLATFORM_MAC_PPC + 1 ) , + CORDB_PLATFORM_WINDOWS_ARM = ( CORDB_PLATFORM_MAC_X86 + 1 ) , + CORDB_PLATFORM_MAC_AMD64 = ( CORDB_PLATFORM_WINDOWS_ARM + 1 ) , + CORDB_PLATFORM_WINDOWS_ARM64 = ( CORDB_PLATFORM_MAC_AMD64 + 1 ) , + CORDB_PLATFORM_POSIX_AMD64 = ( CORDB_PLATFORM_WINDOWS_ARM64 + 1 ) , + CORDB_PLATFORM_POSIX_X86 = ( CORDB_PLATFORM_POSIX_AMD64 + 1 ) , + CORDB_PLATFORM_POSIX_ARM = ( CORDB_PLATFORM_POSIX_X86 + 1 ) , + CORDB_PLATFORM_POSIX_ARM64 = ( CORDB_PLATFORM_POSIX_ARM + 1 ) , + CORDB_PLATFORM_POSIX_LOONGARCH64 = ( CORDB_PLATFORM_POSIX_ARM64 + 1 ) , + CORDB_PLATFORM_POSIX_RISCV64 = ( CORDB_PLATFORM_POSIX_LOONGARCH64 + 1 ) + } CorDebugPlatform; EXTERN_C const IID IID_ICorDebugDataTarget; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FE06DC28-49FB-4636-A4A3-E80DB4AE116C") ICorDebugDataTarget : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetPlatform( + virtual HRESULT STDMETHODCALLTYPE GetPlatform( /* [out] */ CorDebugPlatform *pTargetPlatform) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadVirtual( + + virtual HRESULT STDMETHODCALLTYPE ReadVirtual( /* [in] */ CORDB_ADDRESS address, /* [length_is][size_is][out] */ BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested, /* [out] */ ULONG32 *pBytesRead) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE GetThreadContext( /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextSize, /* [size_is][out] */ BYTE *pContext) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDataTargetVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget * This); - - HRESULT ( STDMETHODCALLTYPE *GetPlatform )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget, GetPlatform) + HRESULT ( STDMETHODCALLTYPE *GetPlatform )( ICorDebugDataTarget * This, /* [out] */ CorDebugPlatform *pTargetPlatform); - - HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget, ReadVirtual) + HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( ICorDebugDataTarget * This, /* [in] */ CORDB_ADDRESS address, /* [length_is][size_is][out] */ BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested, /* [out] */ ULONG32 *pBytesRead); - - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget, GetThreadContext) + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugDataTarget * This, /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextSize, /* [size_is][out] */ BYTE *pContext); - + END_INTERFACE } ICorDebugDataTargetVtbl; @@ -1551,102 +1571,108 @@ EXTERN_C const IID IID_ICorDebugDataTarget; CONST_VTBL struct ICorDebugDataTargetVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDataTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDataTarget_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDataTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDataTarget_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDataTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDataTarget_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDataTarget_GetPlatform(This,pTargetPlatform) \ - ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) +#define ICorDebugDataTarget_GetPlatform(This,pTargetPlatform) \ + ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) -#define ICorDebugDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ - ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) +#define ICorDebugDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ + ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) -#define ICorDebugDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ - ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) +#define ICorDebugDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ + ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDataTarget_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDataTarget_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStaticFieldSymbol_INTERFACE_DEFINED__ #define __ICorDebugStaticFieldSymbol_INTERFACE_DEFINED__ /* interface ICorDebugStaticFieldSymbol */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStaticFieldSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CBF9DA63-F68D-4BBB-A21C-15A45EAADF5B") ICorDebugStaticFieldSymbol : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAddress( + + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pRVA) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStaticFieldSymbolVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStaticFieldSymbol * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStaticFieldSymbol * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStaticFieldSymbol * This); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + DECLSPEC_XFGVIRT(ICorDebugStaticFieldSymbol, GetName) + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugStaticFieldSymbol * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugStaticFieldSymbol, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugStaticFieldSymbol * This, /* [out] */ ULONG32 *pcbSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugStaticFieldSymbol, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugStaticFieldSymbol * This, /* [out] */ CORDB_ADDRESS *pRVA); - + END_INTERFACE } ICorDebugStaticFieldSymbolVtbl; @@ -1655,102 +1681,108 @@ EXTERN_C const IID IID_ICorDebugStaticFieldSymbol; CONST_VTBL struct ICorDebugStaticFieldSymbolVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStaticFieldSymbol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStaticFieldSymbol_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStaticFieldSymbol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStaticFieldSymbol_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStaticFieldSymbol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStaticFieldSymbol_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStaticFieldSymbol_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugStaticFieldSymbol_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugStaticFieldSymbol_GetSize(This,pcbSize) \ - ( (This)->lpVtbl -> GetSize(This,pcbSize) ) +#define ICorDebugStaticFieldSymbol_GetSize(This,pcbSize) \ + ( (This)->lpVtbl -> GetSize(This,pcbSize) ) -#define ICorDebugStaticFieldSymbol_GetAddress(This,pRVA) \ - ( (This)->lpVtbl -> GetAddress(This,pRVA) ) +#define ICorDebugStaticFieldSymbol_GetAddress(This,pRVA) \ + ( (This)->lpVtbl -> GetAddress(This,pRVA) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStaticFieldSymbol_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStaticFieldSymbol_INTERFACE_DEFINED__ */ #ifndef __ICorDebugInstanceFieldSymbol_INTERFACE_DEFINED__ #define __ICorDebugInstanceFieldSymbol_INTERFACE_DEFINED__ /* interface ICorDebugInstanceFieldSymbol */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugInstanceFieldSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A074096B-3ADC-4485-81DA-68C7A4EA52DB") ICorDebugInstanceFieldSymbol : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOffset( + + virtual HRESULT STDMETHODCALLTYPE GetOffset( /* [out] */ ULONG32 *pcbOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugInstanceFieldSymbolVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugInstanceFieldSymbol * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugInstanceFieldSymbol * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugInstanceFieldSymbol * This); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + DECLSPEC_XFGVIRT(ICorDebugInstanceFieldSymbol, GetName) + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugInstanceFieldSymbol * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugInstanceFieldSymbol, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugInstanceFieldSymbol * This, /* [out] */ ULONG32 *pcbSize); - - HRESULT ( STDMETHODCALLTYPE *GetOffset )( + + DECLSPEC_XFGVIRT(ICorDebugInstanceFieldSymbol, GetOffset) + HRESULT ( STDMETHODCALLTYPE *GetOffset )( ICorDebugInstanceFieldSymbol * This, /* [out] */ ULONG32 *pcbOffset); - + END_INTERFACE } ICorDebugInstanceFieldSymbolVtbl; @@ -1759,115 +1791,121 @@ EXTERN_C const IID IID_ICorDebugInstanceFieldSymbol; CONST_VTBL struct ICorDebugInstanceFieldSymbolVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugInstanceFieldSymbol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugInstanceFieldSymbol_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugInstanceFieldSymbol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugInstanceFieldSymbol_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugInstanceFieldSymbol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugInstanceFieldSymbol_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugInstanceFieldSymbol_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugInstanceFieldSymbol_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugInstanceFieldSymbol_GetSize(This,pcbSize) \ - ( (This)->lpVtbl -> GetSize(This,pcbSize) ) +#define ICorDebugInstanceFieldSymbol_GetSize(This,pcbSize) \ + ( (This)->lpVtbl -> GetSize(This,pcbSize) ) -#define ICorDebugInstanceFieldSymbol_GetOffset(This,pcbOffset) \ - ( (This)->lpVtbl -> GetOffset(This,pcbOffset) ) +#define ICorDebugInstanceFieldSymbol_GetOffset(This,pcbOffset) \ + ( (This)->lpVtbl -> GetOffset(This,pcbOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugInstanceFieldSymbol_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugInstanceFieldSymbol_INTERFACE_DEFINED__ */ #ifndef __ICorDebugVariableSymbol_INTERFACE_DEFINED__ #define __ICorDebugVariableSymbol_INTERFACE_DEFINED__ /* interface ICorDebugVariableSymbol */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugVariableSymbol; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("707E8932-1163-48D9-8A93-F5B1F480FBB7") ICorDebugVariableSymbol : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetValue( + + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [in] */ ULONG32 offset, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE context[ ], /* [in] */ ULONG32 cbValue, /* [out] */ ULONG32 *pcbValue, /* [length_is][size_is][out] */ BYTE pValue[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetValue( + + virtual HRESULT STDMETHODCALLTYPE SetValue( /* [in] */ ULONG32 offset, /* [in] */ DWORD threadID, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE context[ ], /* [in] */ ULONG32 cbValue, /* [size_is][in] */ BYTE pValue[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( + + virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( /* [out] */ ULONG32 *pSlotIndex) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVariableSymbolVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVariableSymbol * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVariableSymbol * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVariableSymbol * This); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, GetName) + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugVariableSymbol * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugVariableSymbol * This, /* [out] */ ULONG32 *pcbValue); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, GetValue) + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugVariableSymbol * This, /* [in] */ ULONG32 offset, /* [in] */ ULONG32 cbContext, @@ -1875,8 +1913,9 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; /* [in] */ ULONG32 cbValue, /* [out] */ ULONG32 *pcbValue, /* [length_is][size_is][out] */ BYTE pValue[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, SetValue) + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugVariableSymbol * This, /* [in] */ ULONG32 offset, /* [in] */ DWORD threadID, @@ -1884,11 +1923,12 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; /* [size_is][in] */ BYTE context[ ], /* [in] */ ULONG32 cbValue, /* [size_is][in] */ BYTE pValue[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( + + DECLSPEC_XFGVIRT(ICorDebugVariableSymbol, GetSlotIndex) + HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( ICorDebugVariableSymbol * This, /* [out] */ ULONG32 *pSlotIndex); - + END_INTERFACE } ICorDebugVariableSymbolVtbl; @@ -1897,97 +1937,102 @@ EXTERN_C const IID IID_ICorDebugVariableSymbol; CONST_VTBL struct ICorDebugVariableSymbolVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugVariableSymbol_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugVariableSymbol_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugVariableSymbol_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugVariableSymbol_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugVariableSymbol_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugVariableSymbol_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugVariableSymbol_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugVariableSymbol_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugVariableSymbol_GetSize(This,pcbValue) \ - ( (This)->lpVtbl -> GetSize(This,pcbValue) ) +#define ICorDebugVariableSymbol_GetSize(This,pcbValue) \ + ( (This)->lpVtbl -> GetSize(This,pcbValue) ) -#define ICorDebugVariableSymbol_GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) \ - ( (This)->lpVtbl -> GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) ) +#define ICorDebugVariableSymbol_GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) \ + ( (This)->lpVtbl -> GetValue(This,offset,cbContext,context,cbValue,pcbValue,pValue) ) -#define ICorDebugVariableSymbol_SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) \ - ( (This)->lpVtbl -> SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) ) +#define ICorDebugVariableSymbol_SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) \ + ( (This)->lpVtbl -> SetValue(This,offset,threadID,cbContext,context,cbValue,pValue) ) -#define ICorDebugVariableSymbol_GetSlotIndex(This,pSlotIndex) \ - ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) +#define ICorDebugVariableSymbol_GetSlotIndex(This,pSlotIndex) \ + ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugVariableSymbol_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugVariableSymbol_INTERFACE_DEFINED__ */ #ifndef __ICorDebugMemoryBuffer_INTERFACE_DEFINED__ #define __ICorDebugMemoryBuffer_INTERFACE_DEFINED__ /* interface ICorDebugMemoryBuffer */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugMemoryBuffer; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("677888B3-D160-4B8C-A73B-D79E6AAA1D13") ICorDebugMemoryBuffer : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetStartAddress( + virtual HRESULT STDMETHODCALLTYPE GetStartAddress( /* [out] */ LPCVOID *address) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcbBufferLength) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMemoryBufferVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMemoryBuffer * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMemoryBuffer * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMemoryBuffer * This); - - HRESULT ( STDMETHODCALLTYPE *GetStartAddress )( + + DECLSPEC_XFGVIRT(ICorDebugMemoryBuffer, GetStartAddress) + HRESULT ( STDMETHODCALLTYPE *GetStartAddress )( ICorDebugMemoryBuffer * This, /* [out] */ LPCVOID *address); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugMemoryBuffer, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugMemoryBuffer * This, /* [out] */ ULONG32 *pcbBufferLength); - + END_INTERFACE } ICorDebugMemoryBufferVtbl; @@ -1996,138 +2041,147 @@ EXTERN_C const IID IID_ICorDebugMemoryBuffer; CONST_VTBL struct ICorDebugMemoryBufferVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMemoryBuffer_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMemoryBuffer_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMemoryBuffer_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMemoryBuffer_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMemoryBuffer_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMemoryBuffer_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMemoryBuffer_GetStartAddress(This,address) \ - ( (This)->lpVtbl -> GetStartAddress(This,address) ) +#define ICorDebugMemoryBuffer_GetStartAddress(This,address) \ + ( (This)->lpVtbl -> GetStartAddress(This,address) ) -#define ICorDebugMemoryBuffer_GetSize(This,pcbBufferLength) \ - ( (This)->lpVtbl -> GetSize(This,pcbBufferLength) ) +#define ICorDebugMemoryBuffer_GetSize(This,pcbBufferLength) \ + ( (This)->lpVtbl -> GetSize(This,pcbBufferLength) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMemoryBuffer_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMemoryBuffer_INTERFACE_DEFINED__ */ #ifndef __ICorDebugMergedAssemblyRecord_INTERFACE_DEFINED__ #define __ICorDebugMergedAssemblyRecord_INTERFACE_DEFINED__ /* interface ICorDebugMergedAssemblyRecord */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugMergedAssemblyRecord; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FAA8637B-3BBE-4671-8E26-3B59875B922A") ICorDebugMergedAssemblyRecord : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetSimpleName( + virtual HRESULT STDMETHODCALLTYPE GetSimpleName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersion( + + virtual HRESULT STDMETHODCALLTYPE GetVersion( /* [out] */ USHORT *pMajor, /* [out] */ USHORT *pMinor, /* [out] */ USHORT *pBuild, /* [out] */ USHORT *pRevision) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCulture( + + virtual HRESULT STDMETHODCALLTYPE GetCulture( /* [in] */ ULONG32 cchCulture, /* [out] */ ULONG32 *pcchCulture, /* [length_is][size_is][out] */ WCHAR szCulture[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPublicKey( + + virtual HRESULT STDMETHODCALLTYPE GetPublicKey( /* [in] */ ULONG32 cbPublicKey, /* [out] */ ULONG32 *pcbPublicKey, /* [length_is][size_is][out] */ BYTE pbPublicKey[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPublicKeyToken( + + virtual HRESULT STDMETHODCALLTYPE GetPublicKeyToken( /* [in] */ ULONG32 cbPublicKeyToken, /* [out] */ ULONG32 *pcbPublicKeyToken, /* [length_is][size_is][out] */ BYTE pbPublicKeyToken[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetIndex( + + virtual HRESULT STDMETHODCALLTYPE GetIndex( /* [out] */ ULONG32 *pIndex) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMergedAssemblyRecordVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMergedAssemblyRecord * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMergedAssemblyRecord * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMergedAssemblyRecord * This); - - HRESULT ( STDMETHODCALLTYPE *GetSimpleName )( + + DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetSimpleName) + HRESULT ( STDMETHODCALLTYPE *GetSimpleName )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetVersion )( + + DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetVersion) + HRESULT ( STDMETHODCALLTYPE *GetVersion )( ICorDebugMergedAssemblyRecord * This, /* [out] */ USHORT *pMajor, /* [out] */ USHORT *pMinor, /* [out] */ USHORT *pBuild, /* [out] */ USHORT *pRevision); - - HRESULT ( STDMETHODCALLTYPE *GetCulture )( + + DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetCulture) + HRESULT ( STDMETHODCALLTYPE *GetCulture )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cchCulture, /* [out] */ ULONG32 *pcchCulture, /* [length_is][size_is][out] */ WCHAR szCulture[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetPublicKey )( + + DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetPublicKey) + HRESULT ( STDMETHODCALLTYPE *GetPublicKey )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cbPublicKey, /* [out] */ ULONG32 *pcbPublicKey, /* [length_is][size_is][out] */ BYTE pbPublicKey[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetPublicKeyToken )( + + DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetPublicKeyToken) + HRESULT ( STDMETHODCALLTYPE *GetPublicKeyToken )( ICorDebugMergedAssemblyRecord * This, /* [in] */ ULONG32 cbPublicKeyToken, /* [out] */ ULONG32 *pcbPublicKeyToken, /* [length_is][size_is][out] */ BYTE pbPublicKeyToken[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetIndex )( + + DECLSPEC_XFGVIRT(ICorDebugMergedAssemblyRecord, GetIndex) + HRESULT ( STDMETHODCALLTYPE *GetIndex )( ICorDebugMergedAssemblyRecord * This, /* [out] */ ULONG32 *pIndex); - + END_INTERFACE } ICorDebugMergedAssemblyRecordVtbl; @@ -2136,186 +2190,195 @@ EXTERN_C const IID IID_ICorDebugMergedAssemblyRecord; CONST_VTBL struct ICorDebugMergedAssemblyRecordVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMergedAssemblyRecord_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMergedAssemblyRecord_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMergedAssemblyRecord_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMergedAssemblyRecord_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMergedAssemblyRecord_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMergedAssemblyRecord_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMergedAssemblyRecord_GetSimpleName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetSimpleName(This,cchName,pcchName,szName) ) +#define ICorDebugMergedAssemblyRecord_GetSimpleName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetSimpleName(This,cchName,pcchName,szName) ) -#define ICorDebugMergedAssemblyRecord_GetVersion(This,pMajor,pMinor,pBuild,pRevision) \ - ( (This)->lpVtbl -> GetVersion(This,pMajor,pMinor,pBuild,pRevision) ) +#define ICorDebugMergedAssemblyRecord_GetVersion(This,pMajor,pMinor,pBuild,pRevision) \ + ( (This)->lpVtbl -> GetVersion(This,pMajor,pMinor,pBuild,pRevision) ) -#define ICorDebugMergedAssemblyRecord_GetCulture(This,cchCulture,pcchCulture,szCulture) \ - ( (This)->lpVtbl -> GetCulture(This,cchCulture,pcchCulture,szCulture) ) +#define ICorDebugMergedAssemblyRecord_GetCulture(This,cchCulture,pcchCulture,szCulture) \ + ( (This)->lpVtbl -> GetCulture(This,cchCulture,pcchCulture,szCulture) ) -#define ICorDebugMergedAssemblyRecord_GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) \ - ( (This)->lpVtbl -> GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) ) +#define ICorDebugMergedAssemblyRecord_GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) \ + ( (This)->lpVtbl -> GetPublicKey(This,cbPublicKey,pcbPublicKey,pbPublicKey) ) -#define ICorDebugMergedAssemblyRecord_GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) \ - ( (This)->lpVtbl -> GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) ) +#define ICorDebugMergedAssemblyRecord_GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) \ + ( (This)->lpVtbl -> GetPublicKeyToken(This,cbPublicKeyToken,pcbPublicKeyToken,pbPublicKeyToken) ) -#define ICorDebugMergedAssemblyRecord_GetIndex(This,pIndex) \ - ( (This)->lpVtbl -> GetIndex(This,pIndex) ) +#define ICorDebugMergedAssemblyRecord_GetIndex(This,pIndex) \ + ( (This)->lpVtbl -> GetIndex(This,pIndex) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMergedAssemblyRecord_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMergedAssemblyRecord_INTERFACE_DEFINED__ */ #ifndef __ICorDebugSymbolProvider_INTERFACE_DEFINED__ #define __ICorDebugSymbolProvider_INTERFACE_DEFINED__ /* interface ICorDebugSymbolProvider */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugSymbolProvider; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3948A999-FD8A-4C38-A708-8A71E9B04DBB") ICorDebugSymbolProvider : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetStaticFieldSymbols( + virtual HRESULT STDMETHODCALLTYPE GetStaticFieldSymbols( /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugStaticFieldSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInstanceFieldSymbols( + + virtual HRESULT STDMETHODCALLTYPE GetInstanceFieldSymbols( /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugInstanceFieldSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMethodLocalSymbols( + + virtual HRESULT STDMETHODCALLTYPE GetMethodLocalSymbols( /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMethodParameterSymbols( + + virtual HRESULT STDMETHODCALLTYPE GetMethodParameterSymbols( /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMergedAssemblyRecords( + + virtual HRESULT STDMETHODCALLTYPE GetMergedAssemblyRecords( /* [in] */ ULONG32 cRequestedRecords, /* [out] */ ULONG32 *pcFetchedRecords, /* [length_is][size_is][out] */ ICorDebugMergedAssemblyRecord *pRecords[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMethodProps( + + virtual HRESULT STDMETHODCALLTYPE GetMethodProps( /* [in] */ ULONG32 codeRva, /* [out] */ mdToken *pMethodToken, /* [out] */ ULONG32 *pcGenericParams, /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeProps( + + virtual HRESULT STDMETHODCALLTYPE GetTypeProps( /* [in] */ ULONG32 vtableRva, /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodeRange( + + virtual HRESULT STDMETHODCALLTYPE GetCodeRange( /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartAddress, ULONG32 *pCodeSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageBytes( + + virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageBytes( /* [in] */ CORDB_ADDRESS rva, /* [in] */ ULONG32 length, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObjectSize( + + virtual HRESULT STDMETHODCALLTYPE GetObjectSize( /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [out] */ ULONG32 *pObjectSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageMetadata( + + virtual HRESULT STDMETHODCALLTYPE GetAssemblyImageMetadata( /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugSymbolProviderVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugSymbolProvider * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugSymbolProvider * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugSymbolProvider * This); - - HRESULT ( STDMETHODCALLTYPE *GetStaticFieldSymbols )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetStaticFieldSymbols) + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugStaticFieldSymbol *pSymbols[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetInstanceFieldSymbols )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetInstanceFieldSymbols) + HRESULT ( STDMETHODCALLTYPE *GetInstanceFieldSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugInstanceFieldSymbol *pSymbols[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetMethodLocalSymbols )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetMethodLocalSymbols) + HRESULT ( STDMETHODCALLTYPE *GetMethodLocalSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetMethodParameterSymbols )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetMethodParameterSymbols) + HRESULT ( STDMETHODCALLTYPE *GetMethodParameterSymbols )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 nativeRVA, /* [in] */ ULONG32 cRequestedSymbols, /* [out] */ ULONG32 *pcFetchedSymbols, /* [length_is][size_is][out] */ ICorDebugVariableSymbol *pSymbols[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetMergedAssemblyRecords )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetMergedAssemblyRecords) + HRESULT ( STDMETHODCALLTYPE *GetMergedAssemblyRecords )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cRequestedRecords, /* [out] */ ULONG32 *pcFetchedRecords, /* [length_is][size_is][out] */ ICorDebugMergedAssemblyRecord *pRecords[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetMethodProps )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetMethodProps) + HRESULT ( STDMETHODCALLTYPE *GetMethodProps )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 codeRva, /* [out] */ mdToken *pMethodToken, @@ -2323,36 +2386,41 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider; /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetTypeProps )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetTypeProps) + HRESULT ( STDMETHODCALLTYPE *GetTypeProps )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 vtableRva, /* [in] */ ULONG32 cbSignature, /* [out] */ ULONG32 *pcbSignature, /* [length_is][size_is][out] */ BYTE signature[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetCodeRange )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetCodeRange) + HRESULT ( STDMETHODCALLTYPE *GetCodeRange )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartAddress, ULONG32 *pCodeSize); - - HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageBytes )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetAssemblyImageBytes) + HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageBytes )( ICorDebugSymbolProvider * This, /* [in] */ CORDB_ADDRESS rva, /* [in] */ ULONG32 length, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer); - - HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetObjectSize) + HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( ICorDebugSymbolProvider * This, /* [in] */ ULONG32 cbSignature, /* [size_is][in] */ BYTE typeSig[ ], /* [out] */ ULONG32 *pObjectSize); - - HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageMetadata )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider, GetAssemblyImageMetadata) + HRESULT ( STDMETHODCALLTYPE *GetAssemblyImageMetadata )( ICorDebugSymbolProvider * This, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer); - + END_INTERFACE } ICorDebugSymbolProviderVtbl; @@ -2361,119 +2429,124 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider; CONST_VTBL struct ICorDebugSymbolProviderVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugSymbolProvider_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugSymbolProvider_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugSymbolProvider_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugSymbolProvider_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugSymbolProvider_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugSymbolProvider_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugSymbolProvider_GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) +#define ICorDebugSymbolProvider_GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ + ( (This)->lpVtbl -> GetStaticFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) -#define ICorDebugSymbolProvider_GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) +#define ICorDebugSymbolProvider_GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ + ( (This)->lpVtbl -> GetInstanceFieldSymbols(This,cbSignature,typeSig,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) -#define ICorDebugSymbolProvider_GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) +#define ICorDebugSymbolProvider_GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ + ( (This)->lpVtbl -> GetMethodLocalSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) -#define ICorDebugSymbolProvider_GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ - ( (This)->lpVtbl -> GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) +#define ICorDebugSymbolProvider_GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) \ + ( (This)->lpVtbl -> GetMethodParameterSymbols(This,nativeRVA,cRequestedSymbols,pcFetchedSymbols,pSymbols) ) -#define ICorDebugSymbolProvider_GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) \ - ( (This)->lpVtbl -> GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) ) +#define ICorDebugSymbolProvider_GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) \ + ( (This)->lpVtbl -> GetMergedAssemblyRecords(This,cRequestedRecords,pcFetchedRecords,pRecords) ) -#define ICorDebugSymbolProvider_GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) \ - ( (This)->lpVtbl -> GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) ) +#define ICorDebugSymbolProvider_GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) \ + ( (This)->lpVtbl -> GetMethodProps(This,codeRva,pMethodToken,pcGenericParams,cbSignature,pcbSignature,signature) ) -#define ICorDebugSymbolProvider_GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) \ - ( (This)->lpVtbl -> GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) ) +#define ICorDebugSymbolProvider_GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) \ + ( (This)->lpVtbl -> GetTypeProps(This,vtableRva,cbSignature,pcbSignature,signature) ) -#define ICorDebugSymbolProvider_GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) \ - ( (This)->lpVtbl -> GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) ) +#define ICorDebugSymbolProvider_GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) \ + ( (This)->lpVtbl -> GetCodeRange(This,codeRva,pCodeStartAddress,pCodeSize) ) -#define ICorDebugSymbolProvider_GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) \ - ( (This)->lpVtbl -> GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) ) +#define ICorDebugSymbolProvider_GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) \ + ( (This)->lpVtbl -> GetAssemblyImageBytes(This,rva,length,ppMemoryBuffer) ) -#define ICorDebugSymbolProvider_GetObjectSize(This,cbSignature,typeSig,pObjectSize) \ - ( (This)->lpVtbl -> GetObjectSize(This,cbSignature,typeSig,pObjectSize) ) +#define ICorDebugSymbolProvider_GetObjectSize(This,cbSignature,typeSig,pObjectSize) \ + ( (This)->lpVtbl -> GetObjectSize(This,cbSignature,typeSig,pObjectSize) ) -#define ICorDebugSymbolProvider_GetAssemblyImageMetadata(This,ppMemoryBuffer) \ - ( (This)->lpVtbl -> GetAssemblyImageMetadata(This,ppMemoryBuffer) ) +#define ICorDebugSymbolProvider_GetAssemblyImageMetadata(This,ppMemoryBuffer) \ + ( (This)->lpVtbl -> GetAssemblyImageMetadata(This,ppMemoryBuffer) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugSymbolProvider_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugSymbolProvider_INTERFACE_DEFINED__ */ #ifndef __ICorDebugSymbolProvider2_INTERFACE_DEFINED__ #define __ICorDebugSymbolProvider2_INTERFACE_DEFINED__ /* interface ICorDebugSymbolProvider2 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugSymbolProvider2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F9801807-4764-4330-9E67-4F685094165E") ICorDebugSymbolProvider2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetGenericDictionaryInfo( + virtual HRESULT STDMETHODCALLTYPE GetGenericDictionaryInfo( /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrameProps( + + virtual HRESULT STDMETHODCALLTYPE GetFrameProps( /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartRva, /* [out] */ ULONG32 *pParentFrameStartRva) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugSymbolProvider2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugSymbolProvider2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugSymbolProvider2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugSymbolProvider2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetGenericDictionaryInfo )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider2, GetGenericDictionaryInfo) + HRESULT ( STDMETHODCALLTYPE *GetGenericDictionaryInfo )( ICorDebugSymbolProvider2 * This, /* [out] */ ICorDebugMemoryBuffer **ppMemoryBuffer); - - HRESULT ( STDMETHODCALLTYPE *GetFrameProps )( + + DECLSPEC_XFGVIRT(ICorDebugSymbolProvider2, GetFrameProps) + HRESULT ( STDMETHODCALLTYPE *GetFrameProps )( ICorDebugSymbolProvider2 * This, /* [in] */ ULONG32 codeRva, /* [out] */ ULONG32 *pCodeStartRva, /* [out] */ ULONG32 *pParentFrameStartRva); - + END_INTERFACE } ICorDebugSymbolProvider2Vtbl; @@ -2482,92 +2555,97 @@ EXTERN_C const IID IID_ICorDebugSymbolProvider2; CONST_VTBL struct ICorDebugSymbolProvider2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugSymbolProvider2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugSymbolProvider2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugSymbolProvider2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugSymbolProvider2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugSymbolProvider2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugSymbolProvider2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugSymbolProvider2_GetGenericDictionaryInfo(This,ppMemoryBuffer) \ - ( (This)->lpVtbl -> GetGenericDictionaryInfo(This,ppMemoryBuffer) ) +#define ICorDebugSymbolProvider2_GetGenericDictionaryInfo(This,ppMemoryBuffer) \ + ( (This)->lpVtbl -> GetGenericDictionaryInfo(This,ppMemoryBuffer) ) -#define ICorDebugSymbolProvider2_GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) \ - ( (This)->lpVtbl -> GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) ) +#define ICorDebugSymbolProvider2_GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) \ + ( (This)->lpVtbl -> GetFrameProps(This,codeRva,pCodeStartRva,pParentFrameStartRva) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugSymbolProvider2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugSymbolProvider2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugVirtualUnwinder_INTERFACE_DEFINED__ #define __ICorDebugVirtualUnwinder_INTERFACE_DEFINED__ /* interface ICorDebugVirtualUnwinder */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugVirtualUnwinder; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F69126B7-C787-4F6B-AE96-A569786FC670") ICorDebugVirtualUnwinder : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetContext( + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContextBuf, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]) = 0; - + virtual HRESULT STDMETHODCALLTYPE Next( void) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVirtualUnwinderVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVirtualUnwinder * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVirtualUnwinder * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVirtualUnwinder * This); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + DECLSPEC_XFGVIRT(ICorDebugVirtualUnwinder, GetContext) + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugVirtualUnwinder * This, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContextBuf, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugVirtualUnwinder, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugVirtualUnwinder * This); - + END_INTERFACE } ICorDebugVirtualUnwinderVtbl; @@ -2576,133 +2654,141 @@ EXTERN_C const IID IID_ICorDebugVirtualUnwinder; CONST_VTBL struct ICorDebugVirtualUnwinderVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugVirtualUnwinder_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugVirtualUnwinder_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugVirtualUnwinder_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugVirtualUnwinder_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugVirtualUnwinder_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugVirtualUnwinder_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugVirtualUnwinder_GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) \ - ( (This)->lpVtbl -> GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) ) +#define ICorDebugVirtualUnwinder_GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) \ + ( (This)->lpVtbl -> GetContext(This,contextFlags,cbContextBuf,contextSize,contextBuf) ) -#define ICorDebugVirtualUnwinder_Next(This) \ - ( (This)->lpVtbl -> Next(This) ) +#define ICorDebugVirtualUnwinder_Next(This) \ + ( (This)->lpVtbl -> Next(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugVirtualUnwinder_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugVirtualUnwinder_INTERFACE_DEFINED__ */ #ifndef __ICorDebugDataTarget2_INTERFACE_DEFINED__ #define __ICorDebugDataTarget2_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget2 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugDataTarget2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2eb364da-605b-4e8d-b333-3394c4828d41") ICorDebugDataTarget2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetImageFromPointer( + virtual HRESULT STDMETHODCALLTYPE GetImageFromPointer( /* [in] */ CORDB_ADDRESS addr, /* [out] */ CORDB_ADDRESS *pImageBase, /* [out] */ ULONG32 *pSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetImageLocation( + + virtual HRESULT STDMETHODCALLTYPE GetImageLocation( /* [in] */ CORDB_ADDRESS baseAddress, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSymbolProviderForImage( + + virtual HRESULT STDMETHODCALLTYPE GetSymbolProviderForImage( /* [in] */ CORDB_ADDRESS imageBaseAddress, /* [out] */ ICorDebugSymbolProvider **ppSymProvider) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateThreadIDs( + + virtual HRESULT STDMETHODCALLTYPE EnumerateThreadIDs( /* [in] */ ULONG32 cThreadIds, /* [out] */ ULONG32 *pcThreadIds, /* [length_is][size_is][out] */ ULONG32 pThreadIds[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateVirtualUnwinder( + + virtual HRESULT STDMETHODCALLTYPE CreateVirtualUnwinder( /* [in] */ DWORD nativeThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE initialContext[ ], /* [out] */ ICorDebugVirtualUnwinder **ppUnwinder) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDataTarget2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetImageFromPointer )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget2, GetImageFromPointer) + HRESULT ( STDMETHODCALLTYPE *GetImageFromPointer )( ICorDebugDataTarget2 * This, /* [in] */ CORDB_ADDRESS addr, /* [out] */ CORDB_ADDRESS *pImageBase, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetImageLocation )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget2, GetImageLocation) + HRESULT ( STDMETHODCALLTYPE *GetImageLocation )( ICorDebugDataTarget2 * This, /* [in] */ CORDB_ADDRESS baseAddress, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSymbolProviderForImage )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget2, GetSymbolProviderForImage) + HRESULT ( STDMETHODCALLTYPE *GetSymbolProviderForImage )( ICorDebugDataTarget2 * This, /* [in] */ CORDB_ADDRESS imageBaseAddress, /* [out] */ ICorDebugSymbolProvider **ppSymProvider); - - HRESULT ( STDMETHODCALLTYPE *EnumerateThreadIDs )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget2, EnumerateThreadIDs) + HRESULT ( STDMETHODCALLTYPE *EnumerateThreadIDs )( ICorDebugDataTarget2 * This, /* [in] */ ULONG32 cThreadIds, /* [out] */ ULONG32 *pcThreadIds, /* [length_is][size_is][out] */ ULONG32 pThreadIds[ ]); - - HRESULT ( STDMETHODCALLTYPE *CreateVirtualUnwinder )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget2, CreateVirtualUnwinder) + HRESULT ( STDMETHODCALLTYPE *CreateVirtualUnwinder )( ICorDebugDataTarget2 * This, /* [in] */ DWORD nativeThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 cbContext, /* [size_is][in] */ BYTE initialContext[ ], /* [out] */ ICorDebugVirtualUnwinder **ppUnwinder); - + END_INTERFACE } ICorDebugDataTarget2Vtbl; @@ -2711,108 +2797,114 @@ EXTERN_C const IID IID_ICorDebugDataTarget2; CONST_VTBL struct ICorDebugDataTarget2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDataTarget2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDataTarget2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDataTarget2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDataTarget2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDataTarget2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDataTarget2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDataTarget2_GetImageFromPointer(This,addr,pImageBase,pSize) \ - ( (This)->lpVtbl -> GetImageFromPointer(This,addr,pImageBase,pSize) ) +#define ICorDebugDataTarget2_GetImageFromPointer(This,addr,pImageBase,pSize) \ + ( (This)->lpVtbl -> GetImageFromPointer(This,addr,pImageBase,pSize) ) -#define ICorDebugDataTarget2_GetImageLocation(This,baseAddress,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetImageLocation(This,baseAddress,cchName,pcchName,szName) ) +#define ICorDebugDataTarget2_GetImageLocation(This,baseAddress,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetImageLocation(This,baseAddress,cchName,pcchName,szName) ) -#define ICorDebugDataTarget2_GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) \ - ( (This)->lpVtbl -> GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) ) +#define ICorDebugDataTarget2_GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) \ + ( (This)->lpVtbl -> GetSymbolProviderForImage(This,imageBaseAddress,ppSymProvider) ) -#define ICorDebugDataTarget2_EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) \ - ( (This)->lpVtbl -> EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) ) +#define ICorDebugDataTarget2_EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) \ + ( (This)->lpVtbl -> EnumerateThreadIDs(This,cThreadIds,pcThreadIds,pThreadIds) ) -#define ICorDebugDataTarget2_CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) \ - ( (This)->lpVtbl -> CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) ) +#define ICorDebugDataTarget2_CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) \ + ( (This)->lpVtbl -> CreateVirtualUnwinder(This,nativeThreadID,contextFlags,cbContext,initialContext,ppUnwinder) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDataTarget2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDataTarget2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugLoadedModule_INTERFACE_DEFINED__ #define __ICorDebugLoadedModule_INTERFACE_DEFINED__ /* interface ICorDebugLoadedModule */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugLoadedModule; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("817F343A-6630-4578-96C5-D11BC0EC5EE2") ICorDebugLoadedModule : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( + virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcBytes) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugLoadedModuleVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugLoadedModule * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugLoadedModule * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugLoadedModule * This); - - HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( + + DECLSPEC_XFGVIRT(ICorDebugLoadedModule, GetBaseAddress) + HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( ICorDebugLoadedModule * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + DECLSPEC_XFGVIRT(ICorDebugLoadedModule, GetName) + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugLoadedModule * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugLoadedModule, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugLoadedModule * This, /* [out] */ ULONG32 *pcBytes); - + END_INTERFACE } ICorDebugLoadedModuleVtbl; @@ -2821,88 +2913,92 @@ EXTERN_C const IID IID_ICorDebugLoadedModule; CONST_VTBL struct ICorDebugLoadedModuleVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugLoadedModule_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugLoadedModule_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugLoadedModule_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugLoadedModule_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugLoadedModule_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugLoadedModule_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugLoadedModule_GetBaseAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) +#define ICorDebugLoadedModule_GetBaseAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) -#define ICorDebugLoadedModule_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugLoadedModule_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugLoadedModule_GetSize(This,pcBytes) \ - ( (This)->lpVtbl -> GetSize(This,pcBytes) ) +#define ICorDebugLoadedModule_GetSize(This,pcBytes) \ + ( (This)->lpVtbl -> GetSize(This,pcBytes) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugLoadedModule_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugLoadedModule_INTERFACE_DEFINED__ */ #ifndef __ICorDebugDataTarget3_INTERFACE_DEFINED__ #define __ICorDebugDataTarget3_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget3 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugDataTarget3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D05E60C3-848C-4E7D-894E-623320FF6AFA") ICorDebugDataTarget3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetLoadedModules( + virtual HRESULT STDMETHODCALLTYPE GetLoadedModules( /* [in] */ ULONG32 cRequestedModules, /* [out] */ ULONG32 *pcFetchedModules, /* [length_is][size_is][out] */ ICorDebugLoadedModule *pLoadedModules[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDataTarget3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetLoadedModules )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget3, GetLoadedModules) + HRESULT ( STDMETHODCALLTYPE *GetLoadedModules )( ICorDebugDataTarget3 * This, /* [in] */ ULONG32 cRequestedModules, /* [out] */ ULONG32 *pcFetchedModules, /* [length_is][size_is][out] */ ICorDebugLoadedModule *pLoadedModules[ ]); - + END_INTERFACE } ICorDebugDataTarget3Vtbl; @@ -2911,82 +3007,86 @@ EXTERN_C const IID IID_ICorDebugDataTarget3; CONST_VTBL struct ICorDebugDataTarget3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDataTarget3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDataTarget3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDataTarget3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDataTarget3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDataTarget3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDataTarget3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDataTarget3_GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) \ - ( (This)->lpVtbl -> GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) ) +#define ICorDebugDataTarget3_GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) \ + ( (This)->lpVtbl -> GetLoadedModules(This,cRequestedModules,pcFetchedModules,pLoadedModules) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDataTarget3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDataTarget3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugDataTarget4_INTERFACE_DEFINED__ #define __ICorDebugDataTarget4_INTERFACE_DEFINED__ /* interface ICorDebugDataTarget4 */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugDataTarget4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("E799DC06-E099-4713-BDD9-906D3CC02CF2") ICorDebugDataTarget4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE VirtualUnwind( + virtual HRESULT STDMETHODCALLTYPE VirtualUnwind( /* [in] */ DWORD threadId, /* [in] */ ULONG32 contextSize, /* [size_is][out][in] */ BYTE *context) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDataTarget4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDataTarget4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDataTarget4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDataTarget4 * This); - - HRESULT ( STDMETHODCALLTYPE *VirtualUnwind )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget4, VirtualUnwind) + HRESULT ( STDMETHODCALLTYPE *VirtualUnwind )( ICorDebugDataTarget4 * This, /* [in] */ DWORD threadId, /* [in] */ ULONG32 contextSize, /* [size_is][out][in] */ BYTE *context); - + END_INTERFACE } ICorDebugDataTarget4Vtbl; @@ -2995,120 +3095,129 @@ EXTERN_C const IID IID_ICorDebugDataTarget4; CONST_VTBL struct ICorDebugDataTarget4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDataTarget4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDataTarget4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDataTarget4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDataTarget4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDataTarget4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDataTarget4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDataTarget4_VirtualUnwind(This,threadId,contextSize,context) \ - ( (This)->lpVtbl -> VirtualUnwind(This,threadId,contextSize,context) ) +#define ICorDebugDataTarget4_VirtualUnwind(This,threadId,contextSize,context) \ + ( (This)->lpVtbl -> VirtualUnwind(This,threadId,contextSize,context) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDataTarget4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDataTarget4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugMutableDataTarget_INTERFACE_DEFINED__ #define __ICorDebugMutableDataTarget_INTERFACE_DEFINED__ /* interface ICorDebugMutableDataTarget */ -/* [unique][local][uuid][object] */ +/* [unique][local][uuid][object] */ EXTERN_C const IID IID_ICorDebugMutableDataTarget; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A1B8A756-3CB6-4CCB-979F-3DF999673A59") ICorDebugMutableDataTarget : public ICorDebugDataTarget { public: - virtual HRESULT STDMETHODCALLTYPE WriteVirtual( + virtual HRESULT STDMETHODCALLTYPE WriteVirtual( /* [in] */ CORDB_ADDRESS address, /* [size_is][in] */ const BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE SetThreadContext( /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ const BYTE *pContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE ContinueStatusChanged( + + virtual HRESULT STDMETHODCALLTYPE ContinueStatusChanged( /* [in] */ DWORD dwThreadId, /* [in] */ CORDB_CONTINUE_STATUS continueStatus) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMutableDataTargetVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMutableDataTarget * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMutableDataTarget * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMutableDataTarget * This); - - HRESULT ( STDMETHODCALLTYPE *GetPlatform )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget, GetPlatform) + HRESULT ( STDMETHODCALLTYPE *GetPlatform )( ICorDebugMutableDataTarget * This, /* [out] */ CorDebugPlatform *pTargetPlatform); - - HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget, ReadVirtual) + HRESULT ( STDMETHODCALLTYPE *ReadVirtual )( ICorDebugMutableDataTarget * This, /* [in] */ CORDB_ADDRESS address, /* [length_is][size_is][out] */ BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested, /* [out] */ ULONG32 *pBytesRead); - - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + DECLSPEC_XFGVIRT(ICorDebugDataTarget, GetThreadContext) + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugMutableDataTarget * This, /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextSize, /* [size_is][out] */ BYTE *pContext); - - HRESULT ( STDMETHODCALLTYPE *WriteVirtual )( + + DECLSPEC_XFGVIRT(ICorDebugMutableDataTarget, WriteVirtual) + HRESULT ( STDMETHODCALLTYPE *WriteVirtual )( ICorDebugMutableDataTarget * This, /* [in] */ CORDB_ADDRESS address, /* [size_is][in] */ const BYTE *pBuffer, /* [in] */ ULONG32 bytesRequested); - - HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( + + DECLSPEC_XFGVIRT(ICorDebugMutableDataTarget, SetThreadContext) + HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( ICorDebugMutableDataTarget * This, /* [in] */ DWORD dwThreadID, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ const BYTE *pContext); - - HRESULT ( STDMETHODCALLTYPE *ContinueStatusChanged )( + + DECLSPEC_XFGVIRT(ICorDebugMutableDataTarget, ContinueStatusChanged) + HRESULT ( STDMETHODCALLTYPE *ContinueStatusChanged )( ICorDebugMutableDataTarget * This, /* [in] */ DWORD dwThreadId, /* [in] */ CORDB_CONTINUE_STATUS continueStatus); - + END_INTERFACE } ICorDebugMutableDataTargetVtbl; @@ -3117,108 +3226,112 @@ EXTERN_C const IID IID_ICorDebugMutableDataTarget; CONST_VTBL struct ICorDebugMutableDataTargetVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMutableDataTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMutableDataTarget_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMutableDataTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMutableDataTarget_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMutableDataTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMutableDataTarget_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMutableDataTarget_GetPlatform(This,pTargetPlatform) \ - ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) +#define ICorDebugMutableDataTarget_GetPlatform(This,pTargetPlatform) \ + ( (This)->lpVtbl -> GetPlatform(This,pTargetPlatform) ) -#define ICorDebugMutableDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ - ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) +#define ICorDebugMutableDataTarget_ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) \ + ( (This)->lpVtbl -> ReadVirtual(This,address,pBuffer,bytesRequested,pBytesRead) ) -#define ICorDebugMutableDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ - ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) +#define ICorDebugMutableDataTarget_GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) \ + ( (This)->lpVtbl -> GetThreadContext(This,dwThreadID,contextFlags,contextSize,pContext) ) -#define ICorDebugMutableDataTarget_WriteVirtual(This,address,pBuffer,bytesRequested) \ - ( (This)->lpVtbl -> WriteVirtual(This,address,pBuffer,bytesRequested) ) +#define ICorDebugMutableDataTarget_WriteVirtual(This,address,pBuffer,bytesRequested) \ + ( (This)->lpVtbl -> WriteVirtual(This,address,pBuffer,bytesRequested) ) -#define ICorDebugMutableDataTarget_SetThreadContext(This,dwThreadID,contextSize,pContext) \ - ( (This)->lpVtbl -> SetThreadContext(This,dwThreadID,contextSize,pContext) ) +#define ICorDebugMutableDataTarget_SetThreadContext(This,dwThreadID,contextSize,pContext) \ + ( (This)->lpVtbl -> SetThreadContext(This,dwThreadID,contextSize,pContext) ) -#define ICorDebugMutableDataTarget_ContinueStatusChanged(This,dwThreadId,continueStatus) \ - ( (This)->lpVtbl -> ContinueStatusChanged(This,dwThreadId,continueStatus) ) +#define ICorDebugMutableDataTarget_ContinueStatusChanged(This,dwThreadId,continueStatus) \ + ( (This)->lpVtbl -> ContinueStatusChanged(This,dwThreadId,continueStatus) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMutableDataTarget_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMutableDataTarget_INTERFACE_DEFINED__ */ #ifndef __ICorDebugMetaDataLocator_INTERFACE_DEFINED__ #define __ICorDebugMetaDataLocator_INTERFACE_DEFINED__ /* interface ICorDebugMetaDataLocator */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugMetaDataLocator; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("7cef8ba9-2ef7-42bf-973f-4171474f87d9") ICorDebugMetaDataLocator : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetMetaData( + virtual HRESULT STDMETHODCALLTYPE GetMetaData( /* [in] */ LPCWSTR wszImagePath, /* [in] */ DWORD dwImageTimeStamp, /* [in] */ DWORD dwImageSize, /* [in] */ ULONG32 cchPathBuffer, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchPathBuffer, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_(cchPathBuffer, *pcchPathBuffer) WCHAR wszPathBuffer[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMetaDataLocatorVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMetaDataLocator * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMetaDataLocator * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMetaDataLocator * This); - - HRESULT ( STDMETHODCALLTYPE *GetMetaData )( + + DECLSPEC_XFGVIRT(ICorDebugMetaDataLocator, GetMetaData) + HRESULT ( STDMETHODCALLTYPE *GetMetaData )( ICorDebugMetaDataLocator * This, /* [in] */ LPCWSTR wszImagePath, /* [in] */ DWORD dwImageTimeStamp, /* [in] */ DWORD dwImageSize, /* [in] */ ULONG32 cchPathBuffer, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchPathBuffer, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_(cchPathBuffer, *pcchPathBuffer) WCHAR wszPathBuffer[ ]); - + END_INTERFACE } ICorDebugMetaDataLocatorVtbl; @@ -3227,40 +3340,40 @@ EXTERN_C const IID IID_ICorDebugMetaDataLocator; CONST_VTBL struct ICorDebugMetaDataLocatorVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMetaDataLocator_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMetaDataLocator_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMetaDataLocator_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMetaDataLocator_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMetaDataLocator_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMetaDataLocator_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMetaDataLocator_GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) \ - ( (This)->lpVtbl -> GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) ) +#define ICorDebugMetaDataLocator_GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) \ + ( (This)->lpVtbl -> GetMetaData(This,wszImagePath,dwImageTimeStamp,dwImageSize,cchPathBuffer,pcchPathBuffer,wszPathBuffer) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMetaDataLocator_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMetaDataLocator_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0015 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0015_v0_0_c_ifspec; @@ -3270,285 +3383,305 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0015_v0_0_s_ifspec; #define __ICorDebugManagedCallback_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugStepReason { - STEP_NORMAL = 0, - STEP_RETURN = ( STEP_NORMAL + 1 ) , - STEP_CALL = ( STEP_RETURN + 1 ) , - STEP_EXCEPTION_FILTER = ( STEP_CALL + 1 ) , - STEP_EXCEPTION_HANDLER = ( STEP_EXCEPTION_FILTER + 1 ) , - STEP_INTERCEPT = ( STEP_EXCEPTION_HANDLER + 1 ) , - STEP_EXIT = ( STEP_INTERCEPT + 1 ) - } CorDebugStepReason; + STEP_NORMAL = 0, + STEP_RETURN = ( STEP_NORMAL + 1 ) , + STEP_CALL = ( STEP_RETURN + 1 ) , + STEP_EXCEPTION_FILTER = ( STEP_CALL + 1 ) , + STEP_EXCEPTION_HANDLER = ( STEP_EXCEPTION_FILTER + 1 ) , + STEP_INTERCEPT = ( STEP_EXCEPTION_HANDLER + 1 ) , + STEP_EXIT = ( STEP_INTERCEPT + 1 ) + } CorDebugStepReason; -typedef +typedef enum LoggingLevelEnum { - LTraceLevel0 = 0, - LTraceLevel1 = ( LTraceLevel0 + 1 ) , - LTraceLevel2 = ( LTraceLevel1 + 1 ) , - LTraceLevel3 = ( LTraceLevel2 + 1 ) , - LTraceLevel4 = ( LTraceLevel3 + 1 ) , - LStatusLevel0 = 20, - LStatusLevel1 = ( LStatusLevel0 + 1 ) , - LStatusLevel2 = ( LStatusLevel1 + 1 ) , - LStatusLevel3 = ( LStatusLevel2 + 1 ) , - LStatusLevel4 = ( LStatusLevel3 + 1 ) , - LWarningLevel = 40, - LErrorLevel = 50, - LPanicLevel = 100 - } LoggingLevelEnum; - -typedef + LTraceLevel0 = 0, + LTraceLevel1 = ( LTraceLevel0 + 1 ) , + LTraceLevel2 = ( LTraceLevel1 + 1 ) , + LTraceLevel3 = ( LTraceLevel2 + 1 ) , + LTraceLevel4 = ( LTraceLevel3 + 1 ) , + LStatusLevel0 = 20, + LStatusLevel1 = ( LStatusLevel0 + 1 ) , + LStatusLevel2 = ( LStatusLevel1 + 1 ) , + LStatusLevel3 = ( LStatusLevel2 + 1 ) , + LStatusLevel4 = ( LStatusLevel3 + 1 ) , + LWarningLevel = 40, + LErrorLevel = 50, + LPanicLevel = 100 + } LoggingLevelEnum; + +typedef enum LogSwitchCallReason { - SWITCH_CREATE = 0, - SWITCH_MODIFY = ( SWITCH_CREATE + 1 ) , - SWITCH_DELETE = ( SWITCH_MODIFY + 1 ) - } LogSwitchCallReason; + SWITCH_CREATE = 0, + SWITCH_MODIFY = ( SWITCH_CREATE + 1 ) , + SWITCH_DELETE = ( SWITCH_MODIFY + 1 ) + } LogSwitchCallReason; EXTERN_C const IID IID_ICorDebugManagedCallback; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f60-7538-11d3-8d5b-00104b35e7ef") ICorDebugManagedCallback : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Breakpoint( + virtual HRESULT STDMETHODCALLTYPE Breakpoint( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE StepComplete( + + virtual HRESULT STDMETHODCALLTYPE StepComplete( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugStepper *pStepper, /* [in] */ CorDebugStepReason reason) = 0; - - virtual HRESULT STDMETHODCALLTYPE Break( + + virtual HRESULT STDMETHODCALLTYPE Break( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread) = 0; - - virtual HRESULT STDMETHODCALLTYPE Exception( + + virtual HRESULT STDMETHODCALLTYPE Exception( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ BOOL unhandled) = 0; - - virtual HRESULT STDMETHODCALLTYPE EvalComplete( + + virtual HRESULT STDMETHODCALLTYPE EvalComplete( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval) = 0; - - virtual HRESULT STDMETHODCALLTYPE EvalException( + + virtual HRESULT STDMETHODCALLTYPE EvalException( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateProcess( + + virtual HRESULT STDMETHODCALLTYPE CreateProcess( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitProcess( + + virtual HRESULT STDMETHODCALLTYPE ExitProcess( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateThread( + + virtual HRESULT STDMETHODCALLTYPE CreateThread( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitThread( + + virtual HRESULT STDMETHODCALLTYPE ExitThread( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadModule( + + virtual HRESULT STDMETHODCALLTYPE LoadModule( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadModule( + + virtual HRESULT STDMETHODCALLTYPE UnloadModule( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadClass( + + virtual HRESULT STDMETHODCALLTYPE LoadClass( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadClass( + + virtual HRESULT STDMETHODCALLTYPE UnloadClass( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebuggerError( + + virtual HRESULT STDMETHODCALLTYPE DebuggerError( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ HRESULT errorHR, /* [in] */ DWORD errorCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE LogMessage( + + virtual HRESULT STDMETHODCALLTYPE LogMessage( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ LONG lLevel, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pMessage) = 0; - - virtual HRESULT STDMETHODCALLTYPE LogSwitch( + + virtual HRESULT STDMETHODCALLTYPE LogSwitch( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ LONG lLevel, /* [in] */ ULONG ulReason, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pParentName) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateAppDomain( + + virtual HRESULT STDMETHODCALLTYPE CreateAppDomain( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExitAppDomain( + + virtual HRESULT STDMETHODCALLTYPE ExitAppDomain( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE LoadAssembly( + + virtual HRESULT STDMETHODCALLTYPE LoadAssembly( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE UnloadAssembly( + + virtual HRESULT STDMETHODCALLTYPE UnloadAssembly( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE ControlCTrap( + + virtual HRESULT STDMETHODCALLTYPE ControlCTrap( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE NameChange( + + virtual HRESULT STDMETHODCALLTYPE NameChange( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE UpdateModuleSymbols( + + virtual HRESULT STDMETHODCALLTYPE UpdateModuleSymbols( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule, /* [in] */ IStream *pSymbolStream) = 0; - - virtual HRESULT STDMETHODCALLTYPE EditAndContinueRemap( + + virtual HRESULT STDMETHODCALLTYPE EditAndContinueRemap( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ BOOL fAccurate) = 0; - - virtual HRESULT STDMETHODCALLTYPE BreakpointSetError( + + virtual HRESULT STDMETHODCALLTYPE BreakpointSetError( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint, /* [in] */ DWORD dwError) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugManagedCallbackVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback * This); - - HRESULT ( STDMETHODCALLTYPE *Breakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, Breakpoint) + HRESULT ( STDMETHODCALLTYPE *Breakpoint )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *StepComplete )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, StepComplete) + HRESULT ( STDMETHODCALLTYPE *StepComplete )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugStepper *pStepper, /* [in] */ CorDebugStepReason reason); - - HRESULT ( STDMETHODCALLTYPE *Break )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, Break) + HRESULT ( STDMETHODCALLTYPE *Break )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread); - - HRESULT ( STDMETHODCALLTYPE *Exception )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, Exception) + HRESULT ( STDMETHODCALLTYPE *Exception )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ BOOL unhandled); - - HRESULT ( STDMETHODCALLTYPE *EvalComplete )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, EvalComplete) + HRESULT ( STDMETHODCALLTYPE *EvalComplete )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval); - - HRESULT ( STDMETHODCALLTYPE *EvalException )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, EvalException) + HRESULT ( STDMETHODCALLTYPE *EvalException )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugEval *pEval); - - HRESULT ( STDMETHODCALLTYPE *CreateProcess )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, CreateProcess) + HRESULT ( STDMETHODCALLTYPE *CreateProcess )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *ExitProcess )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, ExitProcess) + HRESULT ( STDMETHODCALLTYPE *ExitProcess )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *CreateThread )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, CreateThread) + HRESULT ( STDMETHODCALLTYPE *CreateThread )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread); - - HRESULT ( STDMETHODCALLTYPE *ExitThread )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, ExitThread) + HRESULT ( STDMETHODCALLTYPE *ExitThread )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *thread); - - HRESULT ( STDMETHODCALLTYPE *LoadModule )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LoadModule) + HRESULT ( STDMETHODCALLTYPE *LoadModule )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule); - - HRESULT ( STDMETHODCALLTYPE *UnloadModule )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, UnloadModule) + HRESULT ( STDMETHODCALLTYPE *UnloadModule )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule); - - HRESULT ( STDMETHODCALLTYPE *LoadClass )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LoadClass) + HRESULT ( STDMETHODCALLTYPE *LoadClass )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c); - - HRESULT ( STDMETHODCALLTYPE *UnloadClass )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, UnloadClass) + HRESULT ( STDMETHODCALLTYPE *UnloadClass )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugClass *c); - - HRESULT ( STDMETHODCALLTYPE *DebuggerError )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, DebuggerError) + HRESULT ( STDMETHODCALLTYPE *DebuggerError )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ HRESULT errorHR, /* [in] */ DWORD errorCode); - - HRESULT ( STDMETHODCALLTYPE *LogMessage )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LogMessage) + HRESULT ( STDMETHODCALLTYPE *LogMessage )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ LONG lLevel, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pMessage); - - HRESULT ( STDMETHODCALLTYPE *LogSwitch )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LogSwitch) + HRESULT ( STDMETHODCALLTYPE *LogSwitch )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, @@ -3556,56 +3689,65 @@ EXTERN_C const IID IID_ICorDebugManagedCallback; /* [in] */ ULONG ulReason, /* [in] */ WCHAR *pLogSwitchName, /* [in] */ WCHAR *pParentName); - - HRESULT ( STDMETHODCALLTYPE *CreateAppDomain )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, CreateAppDomain) + HRESULT ( STDMETHODCALLTYPE *CreateAppDomain )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain); - - HRESULT ( STDMETHODCALLTYPE *ExitAppDomain )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, ExitAppDomain) + HRESULT ( STDMETHODCALLTYPE *ExitAppDomain )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugAppDomain *pAppDomain); - - HRESULT ( STDMETHODCALLTYPE *LoadAssembly )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, LoadAssembly) + HRESULT ( STDMETHODCALLTYPE *LoadAssembly )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly); - - HRESULT ( STDMETHODCALLTYPE *UnloadAssembly )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, UnloadAssembly) + HRESULT ( STDMETHODCALLTYPE *UnloadAssembly )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugAssembly *pAssembly); - - HRESULT ( STDMETHODCALLTYPE *ControlCTrap )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, ControlCTrap) + HRESULT ( STDMETHODCALLTYPE *ControlCTrap )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *NameChange )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, NameChange) + HRESULT ( STDMETHODCALLTYPE *NameChange )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread); - - HRESULT ( STDMETHODCALLTYPE *UpdateModuleSymbols )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, UpdateModuleSymbols) + HRESULT ( STDMETHODCALLTYPE *UpdateModuleSymbols )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugModule *pModule, /* [in] */ IStream *pSymbolStream); - - HRESULT ( STDMETHODCALLTYPE *EditAndContinueRemap )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, EditAndContinueRemap) + HRESULT ( STDMETHODCALLTYPE *EditAndContinueRemap )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ BOOL fAccurate); - - HRESULT ( STDMETHODCALLTYPE *BreakpointSetError )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback, BreakpointSetError) + HRESULT ( STDMETHODCALLTYPE *BreakpointSetError )( ICorDebugManagedCallback * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugBreakpoint *pBreakpoint, /* [in] */ DWORD dwError); - + END_INTERFACE } ICorDebugManagedCallbackVtbl; @@ -3614,112 +3756,112 @@ EXTERN_C const IID IID_ICorDebugManagedCallback; CONST_VTBL struct ICorDebugManagedCallbackVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugManagedCallback_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugManagedCallback_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugManagedCallback_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugManagedCallback_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugManagedCallback_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugManagedCallback_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugManagedCallback_Breakpoint(This,pAppDomain,pThread,pBreakpoint) \ - ( (This)->lpVtbl -> Breakpoint(This,pAppDomain,pThread,pBreakpoint) ) +#define ICorDebugManagedCallback_Breakpoint(This,pAppDomain,pThread,pBreakpoint) \ + ( (This)->lpVtbl -> Breakpoint(This,pAppDomain,pThread,pBreakpoint) ) -#define ICorDebugManagedCallback_StepComplete(This,pAppDomain,pThread,pStepper,reason) \ - ( (This)->lpVtbl -> StepComplete(This,pAppDomain,pThread,pStepper,reason) ) +#define ICorDebugManagedCallback_StepComplete(This,pAppDomain,pThread,pStepper,reason) \ + ( (This)->lpVtbl -> StepComplete(This,pAppDomain,pThread,pStepper,reason) ) -#define ICorDebugManagedCallback_Break(This,pAppDomain,thread) \ - ( (This)->lpVtbl -> Break(This,pAppDomain,thread) ) +#define ICorDebugManagedCallback_Break(This,pAppDomain,thread) \ + ( (This)->lpVtbl -> Break(This,pAppDomain,thread) ) -#define ICorDebugManagedCallback_Exception(This,pAppDomain,pThread,unhandled) \ - ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,unhandled) ) +#define ICorDebugManagedCallback_Exception(This,pAppDomain,pThread,unhandled) \ + ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,unhandled) ) -#define ICorDebugManagedCallback_EvalComplete(This,pAppDomain,pThread,pEval) \ - ( (This)->lpVtbl -> EvalComplete(This,pAppDomain,pThread,pEval) ) +#define ICorDebugManagedCallback_EvalComplete(This,pAppDomain,pThread,pEval) \ + ( (This)->lpVtbl -> EvalComplete(This,pAppDomain,pThread,pEval) ) -#define ICorDebugManagedCallback_EvalException(This,pAppDomain,pThread,pEval) \ - ( (This)->lpVtbl -> EvalException(This,pAppDomain,pThread,pEval) ) +#define ICorDebugManagedCallback_EvalException(This,pAppDomain,pThread,pEval) \ + ( (This)->lpVtbl -> EvalException(This,pAppDomain,pThread,pEval) ) -#define ICorDebugManagedCallback_CreateProcess(This,pProcess) \ - ( (This)->lpVtbl -> CreateProcess(This,pProcess) ) +#define ICorDebugManagedCallback_CreateProcess(This,pProcess) \ + ( (This)->lpVtbl -> CreateProcess(This,pProcess) ) -#define ICorDebugManagedCallback_ExitProcess(This,pProcess) \ - ( (This)->lpVtbl -> ExitProcess(This,pProcess) ) +#define ICorDebugManagedCallback_ExitProcess(This,pProcess) \ + ( (This)->lpVtbl -> ExitProcess(This,pProcess) ) -#define ICorDebugManagedCallback_CreateThread(This,pAppDomain,thread) \ - ( (This)->lpVtbl -> CreateThread(This,pAppDomain,thread) ) +#define ICorDebugManagedCallback_CreateThread(This,pAppDomain,thread) \ + ( (This)->lpVtbl -> CreateThread(This,pAppDomain,thread) ) -#define ICorDebugManagedCallback_ExitThread(This,pAppDomain,thread) \ - ( (This)->lpVtbl -> ExitThread(This,pAppDomain,thread) ) +#define ICorDebugManagedCallback_ExitThread(This,pAppDomain,thread) \ + ( (This)->lpVtbl -> ExitThread(This,pAppDomain,thread) ) -#define ICorDebugManagedCallback_LoadModule(This,pAppDomain,pModule) \ - ( (This)->lpVtbl -> LoadModule(This,pAppDomain,pModule) ) +#define ICorDebugManagedCallback_LoadModule(This,pAppDomain,pModule) \ + ( (This)->lpVtbl -> LoadModule(This,pAppDomain,pModule) ) -#define ICorDebugManagedCallback_UnloadModule(This,pAppDomain,pModule) \ - ( (This)->lpVtbl -> UnloadModule(This,pAppDomain,pModule) ) +#define ICorDebugManagedCallback_UnloadModule(This,pAppDomain,pModule) \ + ( (This)->lpVtbl -> UnloadModule(This,pAppDomain,pModule) ) -#define ICorDebugManagedCallback_LoadClass(This,pAppDomain,c) \ - ( (This)->lpVtbl -> LoadClass(This,pAppDomain,c) ) +#define ICorDebugManagedCallback_LoadClass(This,pAppDomain,c) \ + ( (This)->lpVtbl -> LoadClass(This,pAppDomain,c) ) -#define ICorDebugManagedCallback_UnloadClass(This,pAppDomain,c) \ - ( (This)->lpVtbl -> UnloadClass(This,pAppDomain,c) ) +#define ICorDebugManagedCallback_UnloadClass(This,pAppDomain,c) \ + ( (This)->lpVtbl -> UnloadClass(This,pAppDomain,c) ) -#define ICorDebugManagedCallback_DebuggerError(This,pProcess,errorHR,errorCode) \ - ( (This)->lpVtbl -> DebuggerError(This,pProcess,errorHR,errorCode) ) +#define ICorDebugManagedCallback_DebuggerError(This,pProcess,errorHR,errorCode) \ + ( (This)->lpVtbl -> DebuggerError(This,pProcess,errorHR,errorCode) ) -#define ICorDebugManagedCallback_LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) \ - ( (This)->lpVtbl -> LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) ) +#define ICorDebugManagedCallback_LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) \ + ( (This)->lpVtbl -> LogMessage(This,pAppDomain,pThread,lLevel,pLogSwitchName,pMessage) ) -#define ICorDebugManagedCallback_LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) \ - ( (This)->lpVtbl -> LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) ) +#define ICorDebugManagedCallback_LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) \ + ( (This)->lpVtbl -> LogSwitch(This,pAppDomain,pThread,lLevel,ulReason,pLogSwitchName,pParentName) ) -#define ICorDebugManagedCallback_CreateAppDomain(This,pProcess,pAppDomain) \ - ( (This)->lpVtbl -> CreateAppDomain(This,pProcess,pAppDomain) ) +#define ICorDebugManagedCallback_CreateAppDomain(This,pProcess,pAppDomain) \ + ( (This)->lpVtbl -> CreateAppDomain(This,pProcess,pAppDomain) ) -#define ICorDebugManagedCallback_ExitAppDomain(This,pProcess,pAppDomain) \ - ( (This)->lpVtbl -> ExitAppDomain(This,pProcess,pAppDomain) ) +#define ICorDebugManagedCallback_ExitAppDomain(This,pProcess,pAppDomain) \ + ( (This)->lpVtbl -> ExitAppDomain(This,pProcess,pAppDomain) ) -#define ICorDebugManagedCallback_LoadAssembly(This,pAppDomain,pAssembly) \ - ( (This)->lpVtbl -> LoadAssembly(This,pAppDomain,pAssembly) ) +#define ICorDebugManagedCallback_LoadAssembly(This,pAppDomain,pAssembly) \ + ( (This)->lpVtbl -> LoadAssembly(This,pAppDomain,pAssembly) ) -#define ICorDebugManagedCallback_UnloadAssembly(This,pAppDomain,pAssembly) \ - ( (This)->lpVtbl -> UnloadAssembly(This,pAppDomain,pAssembly) ) +#define ICorDebugManagedCallback_UnloadAssembly(This,pAppDomain,pAssembly) \ + ( (This)->lpVtbl -> UnloadAssembly(This,pAppDomain,pAssembly) ) -#define ICorDebugManagedCallback_ControlCTrap(This,pProcess) \ - ( (This)->lpVtbl -> ControlCTrap(This,pProcess) ) +#define ICorDebugManagedCallback_ControlCTrap(This,pProcess) \ + ( (This)->lpVtbl -> ControlCTrap(This,pProcess) ) -#define ICorDebugManagedCallback_NameChange(This,pAppDomain,pThread) \ - ( (This)->lpVtbl -> NameChange(This,pAppDomain,pThread) ) +#define ICorDebugManagedCallback_NameChange(This,pAppDomain,pThread) \ + ( (This)->lpVtbl -> NameChange(This,pAppDomain,pThread) ) -#define ICorDebugManagedCallback_UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) \ - ( (This)->lpVtbl -> UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) ) +#define ICorDebugManagedCallback_UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) \ + ( (This)->lpVtbl -> UpdateModuleSymbols(This,pAppDomain,pModule,pSymbolStream) ) -#define ICorDebugManagedCallback_EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) \ - ( (This)->lpVtbl -> EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) ) +#define ICorDebugManagedCallback_EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) \ + ( (This)->lpVtbl -> EditAndContinueRemap(This,pAppDomain,pThread,pFunction,fAccurate) ) -#define ICorDebugManagedCallback_BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) \ - ( (This)->lpVtbl -> BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) ) +#define ICorDebugManagedCallback_BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) \ + ( (This)->lpVtbl -> BreakpointSetError(This,pAppDomain,pThread,pBreakpoint,dwError) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugManagedCallback_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugManagedCallback_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0016 */ -/* [local] */ +/* [local] */ #pragma warning(pop) #pragma warning(push) @@ -3732,47 +3874,51 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0016_v0_0_s_ifspec; #define __ICorDebugManagedCallback3_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugManagedCallback3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("264EA0FC-2591-49AA-868E-835E6515323F") ICorDebugManagedCallback3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CustomNotification( + virtual HRESULT STDMETHODCALLTYPE CustomNotification( /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugAppDomain *pAppDomain) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugManagedCallback3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback3 * This); - - HRESULT ( STDMETHODCALLTYPE *CustomNotification )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback3, CustomNotification) + HRESULT ( STDMETHODCALLTYPE *CustomNotification )( ICorDebugManagedCallback3 * This, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugAppDomain *pAppDomain); - + END_INTERFACE } ICorDebugManagedCallback3Vtbl; @@ -3781,98 +3927,104 @@ EXTERN_C const IID IID_ICorDebugManagedCallback3; CONST_VTBL struct ICorDebugManagedCallback3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugManagedCallback3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugManagedCallback3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugManagedCallback3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugManagedCallback3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugManagedCallback3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugManagedCallback3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugManagedCallback3_CustomNotification(This,pThread,pAppDomain) \ - ( (This)->lpVtbl -> CustomNotification(This,pThread,pAppDomain) ) +#define ICorDebugManagedCallback3_CustomNotification(This,pThread,pAppDomain) \ + ( (This)->lpVtbl -> CustomNotification(This,pThread,pAppDomain) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugManagedCallback3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugManagedCallback3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugManagedCallback4_INTERFACE_DEFINED__ #define __ICorDebugManagedCallback4_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugManagedCallback4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("322911AE-16A5-49BA-84A3-ED69678138A3") ICorDebugManagedCallback4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE BeforeGarbageCollection( + virtual HRESULT STDMETHODCALLTYPE BeforeGarbageCollection( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE AfterGarbageCollection( + + virtual HRESULT STDMETHODCALLTYPE AfterGarbageCollection( /* [in] */ ICorDebugProcess *pProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE DataBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE DataBreakpoint( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugThread *pThread, /* [in] */ BYTE *pContext, /* [in] */ ULONG32 contextSize) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugManagedCallback4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback4 * This); - - HRESULT ( STDMETHODCALLTYPE *BeforeGarbageCollection )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback4, BeforeGarbageCollection) + HRESULT ( STDMETHODCALLTYPE *BeforeGarbageCollection )( ICorDebugManagedCallback4 * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *AfterGarbageCollection )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback4, AfterGarbageCollection) + HRESULT ( STDMETHODCALLTYPE *AfterGarbageCollection )( ICorDebugManagedCallback4 * This, /* [in] */ ICorDebugProcess *pProcess); - - HRESULT ( STDMETHODCALLTYPE *DataBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback4, DataBreakpoint) + HRESULT ( STDMETHODCALLTYPE *DataBreakpoint )( ICorDebugManagedCallback4 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ ICorDebugThread *pThread, /* [in] */ BYTE *pContext, /* [in] */ ULONG32 contextSize); - + END_INTERFACE } ICorDebugManagedCallback4Vtbl; @@ -3881,45 +4033,45 @@ EXTERN_C const IID IID_ICorDebugManagedCallback4; CONST_VTBL struct ICorDebugManagedCallback4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugManagedCallback4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugManagedCallback4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugManagedCallback4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugManagedCallback4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugManagedCallback4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugManagedCallback4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugManagedCallback4_BeforeGarbageCollection(This,pProcess) \ - ( (This)->lpVtbl -> BeforeGarbageCollection(This,pProcess) ) +#define ICorDebugManagedCallback4_BeforeGarbageCollection(This,pProcess) \ + ( (This)->lpVtbl -> BeforeGarbageCollection(This,pProcess) ) -#define ICorDebugManagedCallback4_AfterGarbageCollection(This,pProcess) \ - ( (This)->lpVtbl -> AfterGarbageCollection(This,pProcess) ) +#define ICorDebugManagedCallback4_AfterGarbageCollection(This,pProcess) \ + ( (This)->lpVtbl -> AfterGarbageCollection(This,pProcess) ) -#define ICorDebugManagedCallback4_DataBreakpoint(This,pProcess,pThread,pContext,contextSize) \ - ( (This)->lpVtbl -> DataBreakpoint(This,pProcess,pThread,pContext,contextSize) ) +#define ICorDebugManagedCallback4_DataBreakpoint(This,pProcess,pThread,pContext,contextSize) \ + ( (This)->lpVtbl -> DataBreakpoint(This,pProcess,pThread,pContext,contextSize) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugManagedCallback4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugManagedCallback4_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0018 */ -/* [local] */ +/* [local] */ -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_c_ifspec; @@ -3929,130 +4081,138 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0018_v0_0_s_ifspec; #define __ICorDebugManagedCallback2_INTERFACE_DEFINED__ /* interface ICorDebugManagedCallback2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugExceptionCallbackType { - DEBUG_EXCEPTION_FIRST_CHANCE = 1, - DEBUG_EXCEPTION_USER_FIRST_CHANCE = 2, - DEBUG_EXCEPTION_CATCH_HANDLER_FOUND = 3, - DEBUG_EXCEPTION_UNHANDLED = 4 - } CorDebugExceptionCallbackType; + DEBUG_EXCEPTION_FIRST_CHANCE = 1, + DEBUG_EXCEPTION_USER_FIRST_CHANCE = 2, + DEBUG_EXCEPTION_CATCH_HANDLER_FOUND = 3, + DEBUG_EXCEPTION_UNHANDLED = 4 + } CorDebugExceptionCallbackType; -typedef +typedef enum CorDebugExceptionFlags { - DEBUG_EXCEPTION_NONE = 0, - DEBUG_EXCEPTION_CAN_BE_INTERCEPTED = 0x1 - } CorDebugExceptionFlags; + DEBUG_EXCEPTION_NONE = 0, + DEBUG_EXCEPTION_CAN_BE_INTERCEPTED = 0x1 + } CorDebugExceptionFlags; -typedef +typedef enum CorDebugExceptionUnwindCallbackType { - DEBUG_EXCEPTION_UNWIND_BEGIN = 1, - DEBUG_EXCEPTION_INTERCEPTED = 2 - } CorDebugExceptionUnwindCallbackType; + DEBUG_EXCEPTION_UNWIND_BEGIN = 1, + DEBUG_EXCEPTION_INTERCEPTED = 2 + } CorDebugExceptionUnwindCallbackType; EXTERN_C const IID IID_ICorDebugManagedCallback2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("250E5EEA-DB5C-4C76-B6F3-8C46F12E3203") ICorDebugManagedCallback2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE FunctionRemapOpportunity( + virtual HRESULT STDMETHODCALLTYPE FunctionRemapOpportunity( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pOldFunction, /* [in] */ ICorDebugFunction *pNewFunction, /* [in] */ ULONG32 oldILOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateConnection( + + virtual HRESULT STDMETHODCALLTYPE CreateConnection( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId, /* [in] */ WCHAR *pConnName) = 0; - - virtual HRESULT STDMETHODCALLTYPE ChangeConnection( + + virtual HRESULT STDMETHODCALLTYPE ChangeConnection( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId) = 0; - - virtual HRESULT STDMETHODCALLTYPE DestroyConnection( + + virtual HRESULT STDMETHODCALLTYPE DestroyConnection( /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId) = 0; - - virtual HRESULT STDMETHODCALLTYPE Exception( + + virtual HRESULT STDMETHODCALLTYPE Exception( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFrame *pFrame, /* [in] */ ULONG32 nOffset, /* [in] */ CorDebugExceptionCallbackType dwEventType, /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE ExceptionUnwind( + + virtual HRESULT STDMETHODCALLTYPE ExceptionUnwind( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ CorDebugExceptionUnwindCallbackType dwEventType, /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE FunctionRemapComplete( + + virtual HRESULT STDMETHODCALLTYPE FunctionRemapComplete( /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE MDANotification( + + virtual HRESULT STDMETHODCALLTYPE MDANotification( /* [in] */ ICorDebugController *pController, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugMDA *pMDA) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugManagedCallback2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugManagedCallback2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugManagedCallback2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugManagedCallback2 * This); - - HRESULT ( STDMETHODCALLTYPE *FunctionRemapOpportunity )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, FunctionRemapOpportunity) + HRESULT ( STDMETHODCALLTYPE *FunctionRemapOpportunity )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pOldFunction, /* [in] */ ICorDebugFunction *pNewFunction, /* [in] */ ULONG32 oldILOffset); - - HRESULT ( STDMETHODCALLTYPE *CreateConnection )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, CreateConnection) + HRESULT ( STDMETHODCALLTYPE *CreateConnection )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId, /* [in] */ WCHAR *pConnName); - - HRESULT ( STDMETHODCALLTYPE *ChangeConnection )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, ChangeConnection) + HRESULT ( STDMETHODCALLTYPE *ChangeConnection )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId); - - HRESULT ( STDMETHODCALLTYPE *DestroyConnection )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, DestroyConnection) + HRESULT ( STDMETHODCALLTYPE *DestroyConnection )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugProcess *pProcess, /* [in] */ CONNID dwConnectionId); - - HRESULT ( STDMETHODCALLTYPE *Exception )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, Exception) + HRESULT ( STDMETHODCALLTYPE *Exception )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, @@ -4060,26 +4220,29 @@ EXTERN_C const IID IID_ICorDebugManagedCallback2; /* [in] */ ULONG32 nOffset, /* [in] */ CorDebugExceptionCallbackType dwEventType, /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *ExceptionUnwind )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, ExceptionUnwind) + HRESULT ( STDMETHODCALLTYPE *ExceptionUnwind )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ CorDebugExceptionUnwindCallbackType dwEventType, /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *FunctionRemapComplete )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, FunctionRemapComplete) + HRESULT ( STDMETHODCALLTYPE *FunctionRemapComplete )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugAppDomain *pAppDomain, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugFunction *pFunction); - - HRESULT ( STDMETHODCALLTYPE *MDANotification )( + + DECLSPEC_XFGVIRT(ICorDebugManagedCallback2, MDANotification) + HRESULT ( STDMETHODCALLTYPE *MDANotification )( ICorDebugManagedCallback2 * This, /* [in] */ ICorDebugController *pController, /* [in] */ ICorDebugThread *pThread, /* [in] */ ICorDebugMDA *pMDA); - + END_INTERFACE } ICorDebugManagedCallback2Vtbl; @@ -4088,58 +4251,58 @@ EXTERN_C const IID IID_ICorDebugManagedCallback2; CONST_VTBL struct ICorDebugManagedCallback2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugManagedCallback2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugManagedCallback2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugManagedCallback2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugManagedCallback2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugManagedCallback2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugManagedCallback2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugManagedCallback2_FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) \ - ( (This)->lpVtbl -> FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) ) +#define ICorDebugManagedCallback2_FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) \ + ( (This)->lpVtbl -> FunctionRemapOpportunity(This,pAppDomain,pThread,pOldFunction,pNewFunction,oldILOffset) ) -#define ICorDebugManagedCallback2_CreateConnection(This,pProcess,dwConnectionId,pConnName) \ - ( (This)->lpVtbl -> CreateConnection(This,pProcess,dwConnectionId,pConnName) ) +#define ICorDebugManagedCallback2_CreateConnection(This,pProcess,dwConnectionId,pConnName) \ + ( (This)->lpVtbl -> CreateConnection(This,pProcess,dwConnectionId,pConnName) ) -#define ICorDebugManagedCallback2_ChangeConnection(This,pProcess,dwConnectionId) \ - ( (This)->lpVtbl -> ChangeConnection(This,pProcess,dwConnectionId) ) +#define ICorDebugManagedCallback2_ChangeConnection(This,pProcess,dwConnectionId) \ + ( (This)->lpVtbl -> ChangeConnection(This,pProcess,dwConnectionId) ) -#define ICorDebugManagedCallback2_DestroyConnection(This,pProcess,dwConnectionId) \ - ( (This)->lpVtbl -> DestroyConnection(This,pProcess,dwConnectionId) ) +#define ICorDebugManagedCallback2_DestroyConnection(This,pProcess,dwConnectionId) \ + ( (This)->lpVtbl -> DestroyConnection(This,pProcess,dwConnectionId) ) -#define ICorDebugManagedCallback2_Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) \ - ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) ) +#define ICorDebugManagedCallback2_Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) \ + ( (This)->lpVtbl -> Exception(This,pAppDomain,pThread,pFrame,nOffset,dwEventType,dwFlags) ) -#define ICorDebugManagedCallback2_ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) \ - ( (This)->lpVtbl -> ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) ) +#define ICorDebugManagedCallback2_ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) \ + ( (This)->lpVtbl -> ExceptionUnwind(This,pAppDomain,pThread,dwEventType,dwFlags) ) -#define ICorDebugManagedCallback2_FunctionRemapComplete(This,pAppDomain,pThread,pFunction) \ - ( (This)->lpVtbl -> FunctionRemapComplete(This,pAppDomain,pThread,pFunction) ) +#define ICorDebugManagedCallback2_FunctionRemapComplete(This,pAppDomain,pThread,pFunction) \ + ( (This)->lpVtbl -> FunctionRemapComplete(This,pAppDomain,pThread,pFunction) ) -#define ICorDebugManagedCallback2_MDANotification(This,pController,pThread,pMDA) \ - ( (This)->lpVtbl -> MDANotification(This,pController,pThread,pMDA) ) +#define ICorDebugManagedCallback2_MDANotification(This,pController,pThread,pMDA) \ + ( (This)->lpVtbl -> MDANotification(This,pController,pThread,pMDA) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugManagedCallback2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugManagedCallback2_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0019 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -4151,47 +4314,51 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0019_v0_0_s_ifspec; #define __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ /* interface ICorDebugUnmanagedCallback */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugUnmanagedCallback; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5263E909-8CB5-11d3-BD2F-0000F80849BD") ICorDebugUnmanagedCallback : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE DebugEvent( + virtual HRESULT STDMETHODCALLTYPE DebugEvent( /* [in] */ LPDEBUG_EVENT pDebugEvent, /* [in] */ BOOL fOutOfBand) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugUnmanagedCallbackVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugUnmanagedCallback * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugUnmanagedCallback * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugUnmanagedCallback * This); - - HRESULT ( STDMETHODCALLTYPE *DebugEvent )( + + DECLSPEC_XFGVIRT(ICorDebugUnmanagedCallback, DebugEvent) + HRESULT ( STDMETHODCALLTYPE *DebugEvent )( ICorDebugUnmanagedCallback * This, /* [in] */ LPDEBUG_EVENT pDebugEvent, /* [in] */ BOOL fOutOfBand); - + END_INTERFACE } ICorDebugUnmanagedCallbackVtbl; @@ -4200,54 +4367,54 @@ EXTERN_C const IID IID_ICorDebugUnmanagedCallback; CONST_VTBL struct ICorDebugUnmanagedCallbackVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugUnmanagedCallback_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugUnmanagedCallback_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugUnmanagedCallback_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugUnmanagedCallback_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugUnmanagedCallback_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugUnmanagedCallback_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugUnmanagedCallback_DebugEvent(This,pDebugEvent,fOutOfBand) \ - ( (This)->lpVtbl -> DebugEvent(This,pDebugEvent,fOutOfBand) ) +#define ICorDebugUnmanagedCallback_DebugEvent(This,pDebugEvent,fOutOfBand) \ + ( (This)->lpVtbl -> DebugEvent(This,pDebugEvent,fOutOfBand) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugUnmanagedCallback_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0020 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugCreateProcessFlags { - DEBUG_NO_SPECIAL_OPTIONS = 0 - } CorDebugCreateProcessFlags; + DEBUG_NO_SPECIAL_OPTIONS = 0 + } CorDebugCreateProcessFlags; -typedef +typedef enum CorDebugHandleType { - HANDLE_STRONG = 1, - HANDLE_WEAK_TRACK_RESURRECTION = 2, - HANDLE_PINNED = 3 - } CorDebugHandleType; + HANDLE_STRONG = 1, + HANDLE_WEAK_TRACK_RESURRECTION = 2, + HANDLE_PINNED = 3 + } CorDebugHandleType; #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_c_ifspec; @@ -4257,28 +4424,28 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0020_v0_0_s_ifspec; #define __ICorDebug_INTERFACE_DEFINED__ /* interface ICorDebug */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebug; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f61-7538-11d3-8d5b-00104b35e7ef") ICorDebug : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Initialize( void) = 0; - + virtual HRESULT STDMETHODCALLTYPE Terminate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetManagedHandler( + + virtual HRESULT STDMETHODCALLTYPE SetManagedHandler( /* [in] */ ICorDebugManagedCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnmanagedHandler( + + virtual HRESULT STDMETHODCALLTYPE SetUnmanagedHandler( /* [in] */ ICorDebugUnmanagedCallback *pCallback) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateProcess( + + virtual HRESULT STDMETHODCALLTYPE CreateProcess( /* [in] */ LPCWSTR lpApplicationName, /* [in] */ LPWSTR lpCommandLine, /* [in] */ LPSECURITY_ATTRIBUTES lpProcessAttributes, @@ -4291,59 +4458,67 @@ EXTERN_C const IID IID_ICorDebug; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebugActiveProcess( + + virtual HRESULT STDMETHODCALLTYPE DebugActiveProcess( /* [in] */ DWORD id, /* [in] */ BOOL win32Attach, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateProcesses( + + virtual HRESULT STDMETHODCALLTYPE EnumerateProcesses( /* [out] */ ICorDebugProcessEnum **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetProcess( + + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [in] */ DWORD dwProcessId, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanLaunchOrAttach( + + virtual HRESULT STDMETHODCALLTYPE CanLaunchOrAttach( /* [in] */ DWORD dwProcessId, /* [in] */ BOOL win32DebuggingEnabled) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebug * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebug * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebug * This); - - HRESULT ( STDMETHODCALLTYPE *Initialize )( + + DECLSPEC_XFGVIRT(ICorDebug, Initialize) + HRESULT ( STDMETHODCALLTYPE *Initialize )( ICorDebug * This); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + DECLSPEC_XFGVIRT(ICorDebug, Terminate) + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebug * This); - - HRESULT ( STDMETHODCALLTYPE *SetManagedHandler )( + + DECLSPEC_XFGVIRT(ICorDebug, SetManagedHandler) + HRESULT ( STDMETHODCALLTYPE *SetManagedHandler )( ICorDebug * This, /* [in] */ ICorDebugManagedCallback *pCallback); - - HRESULT ( STDMETHODCALLTYPE *SetUnmanagedHandler )( + + DECLSPEC_XFGVIRT(ICorDebug, SetUnmanagedHandler) + HRESULT ( STDMETHODCALLTYPE *SetUnmanagedHandler )( ICorDebug * This, /* [in] */ ICorDebugUnmanagedCallback *pCallback); - - HRESULT ( STDMETHODCALLTYPE *CreateProcess )( + + DECLSPEC_XFGVIRT(ICorDebug, CreateProcess) + HRESULT ( STDMETHODCALLTYPE *CreateProcess )( ICorDebug * This, /* [in] */ LPCWSTR lpApplicationName, /* [in] */ LPWSTR lpCommandLine, @@ -4357,27 +4532,31 @@ EXTERN_C const IID IID_ICorDebug; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *DebugActiveProcess )( + + DECLSPEC_XFGVIRT(ICorDebug, DebugActiveProcess) + HRESULT ( STDMETHODCALLTYPE *DebugActiveProcess )( ICorDebug * This, /* [in] */ DWORD id, /* [in] */ BOOL win32Attach, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *EnumerateProcesses )( + + DECLSPEC_XFGVIRT(ICorDebug, EnumerateProcesses) + HRESULT ( STDMETHODCALLTYPE *EnumerateProcesses )( ICorDebug * This, /* [out] */ ICorDebugProcessEnum **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + DECLSPEC_XFGVIRT(ICorDebug, GetProcess) + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebug * This, /* [in] */ DWORD dwProcessId, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *CanLaunchOrAttach )( + + DECLSPEC_XFGVIRT(ICorDebug, CanLaunchOrAttach) + HRESULT ( STDMETHODCALLTYPE *CanLaunchOrAttach )( ICorDebug * This, /* [in] */ DWORD dwProcessId, /* [in] */ BOOL win32DebuggingEnabled); - + END_INTERFACE } ICorDebugVtbl; @@ -4386,61 +4565,61 @@ EXTERN_C const IID IID_ICorDebug; CONST_VTBL struct ICorDebugVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebug_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebug_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebug_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebug_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebug_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebug_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebug_Initialize(This) \ - ( (This)->lpVtbl -> Initialize(This) ) +#define ICorDebug_Initialize(This) \ + ( (This)->lpVtbl -> Initialize(This) ) -#define ICorDebug_Terminate(This) \ - ( (This)->lpVtbl -> Terminate(This) ) +#define ICorDebug_Terminate(This) \ + ( (This)->lpVtbl -> Terminate(This) ) -#define ICorDebug_SetManagedHandler(This,pCallback) \ - ( (This)->lpVtbl -> SetManagedHandler(This,pCallback) ) +#define ICorDebug_SetManagedHandler(This,pCallback) \ + ( (This)->lpVtbl -> SetManagedHandler(This,pCallback) ) -#define ICorDebug_SetUnmanagedHandler(This,pCallback) \ - ( (This)->lpVtbl -> SetUnmanagedHandler(This,pCallback) ) +#define ICorDebug_SetUnmanagedHandler(This,pCallback) \ + ( (This)->lpVtbl -> SetUnmanagedHandler(This,pCallback) ) -#define ICorDebug_CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ - ( (This)->lpVtbl -> CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) +#define ICorDebug_CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ + ( (This)->lpVtbl -> CreateProcess(This,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) -#define ICorDebug_DebugActiveProcess(This,id,win32Attach,ppProcess) \ - ( (This)->lpVtbl -> DebugActiveProcess(This,id,win32Attach,ppProcess) ) +#define ICorDebug_DebugActiveProcess(This,id,win32Attach,ppProcess) \ + ( (This)->lpVtbl -> DebugActiveProcess(This,id,win32Attach,ppProcess) ) -#define ICorDebug_EnumerateProcesses(This,ppProcess) \ - ( (This)->lpVtbl -> EnumerateProcesses(This,ppProcess) ) +#define ICorDebug_EnumerateProcesses(This,ppProcess) \ + ( (This)->lpVtbl -> EnumerateProcesses(This,ppProcess) ) -#define ICorDebug_GetProcess(This,dwProcessId,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,dwProcessId,ppProcess) ) +#define ICorDebug_GetProcess(This,dwProcessId,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,dwProcessId,ppProcess) ) -#define ICorDebug_CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) \ - ( (This)->lpVtbl -> CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) ) +#define ICorDebug_CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) \ + ( (This)->lpVtbl -> CanLaunchOrAttach(This,dwProcessId,win32DebuggingEnabled) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebug_INTERFACE_DEFINED__ */ +#endif /* __ICorDebug_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0021 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -4452,53 +4631,57 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0021_v0_0_s_ifspec; #define __ICorDebugRemoteTarget_INTERFACE_DEFINED__ /* interface ICorDebugRemoteTarget */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRemoteTarget; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("C3ED8383-5A49-4cf5-B4B7-01864D9E582D") ICorDebugRemoteTarget : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetHostName( + virtual HRESULT STDMETHODCALLTYPE GetHostName( /* [in] */ ULONG32 cchHostName, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchHostName, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_opt_(cchHostName, *pcchHostName) WCHAR szHostName[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRemoteTargetVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRemoteTarget * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRemoteTarget * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRemoteTarget * This); - - HRESULT ( STDMETHODCALLTYPE *GetHostName )( + + DECLSPEC_XFGVIRT(ICorDebugRemoteTarget, GetHostName) + HRESULT ( STDMETHODCALLTYPE *GetHostName )( ICorDebugRemoteTarget * This, /* [in] */ ULONG32 cchHostName, - /* [annotation][out] */ + /* [annotation][out] */ _Out_ ULONG32 *pcchHostName, - /* [annotation][length_is][size_is][out] */ + /* [annotation][length_is][size_is][out] */ _Out_writes_to_opt_(cchHostName, *pcchHostName) WCHAR szHostName[ ]); - + END_INTERFACE } ICorDebugRemoteTargetVtbl; @@ -4507,54 +4690,54 @@ EXTERN_C const IID IID_ICorDebugRemoteTarget; CONST_VTBL struct ICorDebugRemoteTargetVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRemoteTarget_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRemoteTarget_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRemoteTarget_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRemoteTarget_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRemoteTarget_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRemoteTarget_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRemoteTarget_GetHostName(This,cchHostName,pcchHostName,szHostName) \ - ( (This)->lpVtbl -> GetHostName(This,cchHostName,pcchHostName,szHostName) ) +#define ICorDebugRemoteTarget_GetHostName(This,cchHostName,pcchHostName,szHostName) \ + ( (This)->lpVtbl -> GetHostName(This,cchHostName,pcchHostName,szHostName) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRemoteTarget_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRemoteTarget_INTERFACE_DEFINED__ */ #ifndef __ICorDebugRemote_INTERFACE_DEFINED__ #define __ICorDebugRemote_INTERFACE_DEFINED__ /* interface ICorDebugRemote */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRemote; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D5EBB8E2-7BBE-4c1d-98A6-A3C04CBDEF64") ICorDebugRemote : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateProcessEx( + virtual HRESULT STDMETHODCALLTYPE CreateProcessEx( /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ LPCWSTR lpApplicationName, - /* [annotation][in] */ + /* [annotation][in] */ _In_ LPWSTR lpCommandLine, /* [in] */ LPSECURITY_ATTRIBUTES lpProcessAttributes, /* [in] */ LPSECURITY_ATTRIBUTES lpThreadAttributes, @@ -4566,39 +4749,43 @@ EXTERN_C const IID IID_ICorDebugRemote; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE DebugActiveProcessEx( + + virtual HRESULT STDMETHODCALLTYPE DebugActiveProcessEx( /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ DWORD dwProcessId, /* [in] */ BOOL fWin32Attach, /* [out] */ ICorDebugProcess **ppProcess) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRemoteVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRemote * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRemote * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRemote * This); - - HRESULT ( STDMETHODCALLTYPE *CreateProcessEx )( + + DECLSPEC_XFGVIRT(ICorDebugRemote, CreateProcessEx) + HRESULT ( STDMETHODCALLTYPE *CreateProcessEx )( ICorDebugRemote * This, /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ LPCWSTR lpApplicationName, - /* [annotation][in] */ + /* [annotation][in] */ _In_ LPWSTR lpCommandLine, /* [in] */ LPSECURITY_ATTRIBUTES lpProcessAttributes, /* [in] */ LPSECURITY_ATTRIBUTES lpThreadAttributes, @@ -4610,14 +4797,15 @@ EXTERN_C const IID IID_ICorDebugRemote; /* [in] */ LPPROCESS_INFORMATION lpProcessInformation, /* [in] */ CorDebugCreateProcessFlags debuggingFlags, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *DebugActiveProcessEx )( + + DECLSPEC_XFGVIRT(ICorDebugRemote, DebugActiveProcessEx) + HRESULT ( STDMETHODCALLTYPE *DebugActiveProcessEx )( ICorDebugRemote * This, /* [in] */ ICorDebugRemoteTarget *pRemoteTarget, /* [in] */ DWORD dwProcessId, /* [in] */ BOOL fWin32Attach, /* [out] */ ICorDebugProcess **ppProcess); - + END_INTERFACE } ICorDebugRemoteVtbl; @@ -4626,40 +4814,40 @@ EXTERN_C const IID IID_ICorDebugRemote; CONST_VTBL struct ICorDebugRemoteVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRemote_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRemote_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRemote_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRemote_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRemote_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRemote_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRemote_CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ - ( (This)->lpVtbl -> CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) +#define ICorDebugRemote_CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) \ + ( (This)->lpVtbl -> CreateProcessEx(This,pRemoteTarget,lpApplicationName,lpCommandLine,lpProcessAttributes,lpThreadAttributes,bInheritHandles,dwCreationFlags,lpEnvironment,lpCurrentDirectory,lpStartupInfo,lpProcessInformation,debuggingFlags,ppProcess) ) -#define ICorDebugRemote_DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) \ - ( (This)->lpVtbl -> DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) ) +#define ICorDebugRemote_DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) \ + ( (This)->lpVtbl -> DebugActiveProcessEx(This,pRemoteTarget,dwProcessId,fWin32Attach,ppProcess) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRemote_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRemote_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0023 */ -/* [local] */ +/* [local] */ typedef struct _COR_VERSION { @@ -4667,7 +4855,7 @@ typedef struct _COR_VERSION DWORD dwMinor; DWORD dwBuild; DWORD dwSubBuild; - } COR_VERSION; + } COR_VERSION; @@ -4678,128 +4866,131 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0023_v0_0_s_ifspec; #define __ICorDebug2_INTERFACE_DEFINED__ /* interface ICorDebug2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugInterfaceVersion { - CorDebugInvalidVersion = 0, - CorDebugVersion_1_0 = ( CorDebugInvalidVersion + 1 ) , - ver_ICorDebugManagedCallback = CorDebugVersion_1_0, - ver_ICorDebugUnmanagedCallback = CorDebugVersion_1_0, - ver_ICorDebug = CorDebugVersion_1_0, - ver_ICorDebugController = CorDebugVersion_1_0, - ver_ICorDebugAppDomain = CorDebugVersion_1_0, - ver_ICorDebugAssembly = CorDebugVersion_1_0, - ver_ICorDebugProcess = CorDebugVersion_1_0, - ver_ICorDebugBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugFunctionBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugModuleBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugValueBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugStepper = CorDebugVersion_1_0, - ver_ICorDebugRegisterSet = CorDebugVersion_1_0, - ver_ICorDebugThread = CorDebugVersion_1_0, - ver_ICorDebugChain = CorDebugVersion_1_0, - ver_ICorDebugFrame = CorDebugVersion_1_0, - ver_ICorDebugILFrame = CorDebugVersion_1_0, - ver_ICorDebugNativeFrame = CorDebugVersion_1_0, - ver_ICorDebugModule = CorDebugVersion_1_0, - ver_ICorDebugFunction = CorDebugVersion_1_0, - ver_ICorDebugCode = CorDebugVersion_1_0, - ver_ICorDebugClass = CorDebugVersion_1_0, - ver_ICorDebugEval = CorDebugVersion_1_0, - ver_ICorDebugValue = CorDebugVersion_1_0, - ver_ICorDebugGenericValue = CorDebugVersion_1_0, - ver_ICorDebugReferenceValue = CorDebugVersion_1_0, - ver_ICorDebugHeapValue = CorDebugVersion_1_0, - ver_ICorDebugObjectValue = CorDebugVersion_1_0, - ver_ICorDebugBoxValue = CorDebugVersion_1_0, - ver_ICorDebugStringValue = CorDebugVersion_1_0, - ver_ICorDebugArrayValue = CorDebugVersion_1_0, - ver_ICorDebugContext = CorDebugVersion_1_0, - ver_ICorDebugEnum = CorDebugVersion_1_0, - ver_ICorDebugObjectEnum = CorDebugVersion_1_0, - ver_ICorDebugBreakpointEnum = CorDebugVersion_1_0, - ver_ICorDebugStepperEnum = CorDebugVersion_1_0, - ver_ICorDebugProcessEnum = CorDebugVersion_1_0, - ver_ICorDebugThreadEnum = CorDebugVersion_1_0, - ver_ICorDebugFrameEnum = CorDebugVersion_1_0, - ver_ICorDebugChainEnum = CorDebugVersion_1_0, - ver_ICorDebugModuleEnum = CorDebugVersion_1_0, - ver_ICorDebugValueEnum = CorDebugVersion_1_0, - ver_ICorDebugCodeEnum = CorDebugVersion_1_0, - ver_ICorDebugTypeEnum = CorDebugVersion_1_0, - ver_ICorDebugErrorInfoEnum = CorDebugVersion_1_0, - ver_ICorDebugAppDomainEnum = CorDebugVersion_1_0, - ver_ICorDebugAssemblyEnum = CorDebugVersion_1_0, - ver_ICorDebugEditAndContinueErrorInfo = CorDebugVersion_1_0, - ver_ICorDebugEditAndContinueSnapshot = CorDebugVersion_1_0, - CorDebugVersion_1_1 = ( CorDebugVersion_1_0 + 1 ) , - CorDebugVersion_2_0 = ( CorDebugVersion_1_1 + 1 ) , - ver_ICorDebugManagedCallback2 = CorDebugVersion_2_0, - ver_ICorDebugAppDomain2 = CorDebugVersion_2_0, - ver_ICorDebugAssembly2 = CorDebugVersion_2_0, - ver_ICorDebugProcess2 = CorDebugVersion_2_0, - ver_ICorDebugStepper2 = CorDebugVersion_2_0, - ver_ICorDebugRegisterSet2 = CorDebugVersion_2_0, - ver_ICorDebugThread2 = CorDebugVersion_2_0, - ver_ICorDebugILFrame2 = CorDebugVersion_2_0, - ver_ICorDebugInternalFrame = CorDebugVersion_2_0, - ver_ICorDebugModule2 = CorDebugVersion_2_0, - ver_ICorDebugFunction2 = CorDebugVersion_2_0, - ver_ICorDebugCode2 = CorDebugVersion_2_0, - ver_ICorDebugClass2 = CorDebugVersion_2_0, - ver_ICorDebugValue2 = CorDebugVersion_2_0, - ver_ICorDebugEval2 = CorDebugVersion_2_0, - ver_ICorDebugObjectValue2 = CorDebugVersion_2_0, - CorDebugVersion_4_0 = ( CorDebugVersion_2_0 + 1 ) , - ver_ICorDebugThread3 = CorDebugVersion_4_0, - ver_ICorDebugThread4 = CorDebugVersion_4_0, - ver_ICorDebugStackWalk = CorDebugVersion_4_0, - ver_ICorDebugNativeFrame2 = CorDebugVersion_4_0, - ver_ICorDebugInternalFrame2 = CorDebugVersion_4_0, - ver_ICorDebugRuntimeUnwindableFrame = CorDebugVersion_4_0, - ver_ICorDebugHeapValue3 = CorDebugVersion_4_0, - ver_ICorDebugBlockingObjectEnum = CorDebugVersion_4_0, - ver_ICorDebugValue3 = CorDebugVersion_4_0, - CorDebugVersion_4_5 = ( CorDebugVersion_4_0 + 1 ) , - ver_ICorDebugComObjectValue = CorDebugVersion_4_5, - ver_ICorDebugAppDomain3 = CorDebugVersion_4_5, - ver_ICorDebugCode3 = CorDebugVersion_4_5, - ver_ICorDebugILFrame3 = CorDebugVersion_4_5, - CorDebugLatestVersion = CorDebugVersion_4_5 - } CorDebugInterfaceVersion; + CorDebugInvalidVersion = 0, + CorDebugVersion_1_0 = ( CorDebugInvalidVersion + 1 ) , + ver_ICorDebugManagedCallback = CorDebugVersion_1_0, + ver_ICorDebugUnmanagedCallback = CorDebugVersion_1_0, + ver_ICorDebug = CorDebugVersion_1_0, + ver_ICorDebugController = CorDebugVersion_1_0, + ver_ICorDebugAppDomain = CorDebugVersion_1_0, + ver_ICorDebugAssembly = CorDebugVersion_1_0, + ver_ICorDebugProcess = CorDebugVersion_1_0, + ver_ICorDebugBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugFunctionBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugModuleBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugValueBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugStepper = CorDebugVersion_1_0, + ver_ICorDebugRegisterSet = CorDebugVersion_1_0, + ver_ICorDebugThread = CorDebugVersion_1_0, + ver_ICorDebugChain = CorDebugVersion_1_0, + ver_ICorDebugFrame = CorDebugVersion_1_0, + ver_ICorDebugILFrame = CorDebugVersion_1_0, + ver_ICorDebugNativeFrame = CorDebugVersion_1_0, + ver_ICorDebugModule = CorDebugVersion_1_0, + ver_ICorDebugFunction = CorDebugVersion_1_0, + ver_ICorDebugCode = CorDebugVersion_1_0, + ver_ICorDebugClass = CorDebugVersion_1_0, + ver_ICorDebugEval = CorDebugVersion_1_0, + ver_ICorDebugValue = CorDebugVersion_1_0, + ver_ICorDebugGenericValue = CorDebugVersion_1_0, + ver_ICorDebugReferenceValue = CorDebugVersion_1_0, + ver_ICorDebugHeapValue = CorDebugVersion_1_0, + ver_ICorDebugObjectValue = CorDebugVersion_1_0, + ver_ICorDebugBoxValue = CorDebugVersion_1_0, + ver_ICorDebugStringValue = CorDebugVersion_1_0, + ver_ICorDebugArrayValue = CorDebugVersion_1_0, + ver_ICorDebugContext = CorDebugVersion_1_0, + ver_ICorDebugEnum = CorDebugVersion_1_0, + ver_ICorDebugObjectEnum = CorDebugVersion_1_0, + ver_ICorDebugBreakpointEnum = CorDebugVersion_1_0, + ver_ICorDebugStepperEnum = CorDebugVersion_1_0, + ver_ICorDebugProcessEnum = CorDebugVersion_1_0, + ver_ICorDebugThreadEnum = CorDebugVersion_1_0, + ver_ICorDebugFrameEnum = CorDebugVersion_1_0, + ver_ICorDebugChainEnum = CorDebugVersion_1_0, + ver_ICorDebugModuleEnum = CorDebugVersion_1_0, + ver_ICorDebugValueEnum = CorDebugVersion_1_0, + ver_ICorDebugCodeEnum = CorDebugVersion_1_0, + ver_ICorDebugTypeEnum = CorDebugVersion_1_0, + ver_ICorDebugErrorInfoEnum = CorDebugVersion_1_0, + ver_ICorDebugAppDomainEnum = CorDebugVersion_1_0, + ver_ICorDebugAssemblyEnum = CorDebugVersion_1_0, + ver_ICorDebugEditAndContinueErrorInfo = CorDebugVersion_1_0, + ver_ICorDebugEditAndContinueSnapshot = CorDebugVersion_1_0, + CorDebugVersion_1_1 = ( CorDebugVersion_1_0 + 1 ) , + CorDebugVersion_2_0 = ( CorDebugVersion_1_1 + 1 ) , + ver_ICorDebugManagedCallback2 = CorDebugVersion_2_0, + ver_ICorDebugAppDomain2 = CorDebugVersion_2_0, + ver_ICorDebugAssembly2 = CorDebugVersion_2_0, + ver_ICorDebugProcess2 = CorDebugVersion_2_0, + ver_ICorDebugStepper2 = CorDebugVersion_2_0, + ver_ICorDebugRegisterSet2 = CorDebugVersion_2_0, + ver_ICorDebugThread2 = CorDebugVersion_2_0, + ver_ICorDebugILFrame2 = CorDebugVersion_2_0, + ver_ICorDebugInternalFrame = CorDebugVersion_2_0, + ver_ICorDebugModule2 = CorDebugVersion_2_0, + ver_ICorDebugFunction2 = CorDebugVersion_2_0, + ver_ICorDebugCode2 = CorDebugVersion_2_0, + ver_ICorDebugClass2 = CorDebugVersion_2_0, + ver_ICorDebugValue2 = CorDebugVersion_2_0, + ver_ICorDebugEval2 = CorDebugVersion_2_0, + ver_ICorDebugObjectValue2 = CorDebugVersion_2_0, + CorDebugVersion_4_0 = ( CorDebugVersion_2_0 + 1 ) , + ver_ICorDebugThread3 = CorDebugVersion_4_0, + ver_ICorDebugThread4 = CorDebugVersion_4_0, + ver_ICorDebugStackWalk = CorDebugVersion_4_0, + ver_ICorDebugNativeFrame2 = CorDebugVersion_4_0, + ver_ICorDebugInternalFrame2 = CorDebugVersion_4_0, + ver_ICorDebugRuntimeUnwindableFrame = CorDebugVersion_4_0, + ver_ICorDebugHeapValue3 = CorDebugVersion_4_0, + ver_ICorDebugBlockingObjectEnum = CorDebugVersion_4_0, + ver_ICorDebugValue3 = CorDebugVersion_4_0, + CorDebugVersion_4_5 = ( CorDebugVersion_4_0 + 1 ) , + ver_ICorDebugComObjectValue = CorDebugVersion_4_5, + ver_ICorDebugAppDomain3 = CorDebugVersion_4_5, + ver_ICorDebugCode3 = CorDebugVersion_4_5, + ver_ICorDebugILFrame3 = CorDebugVersion_4_5, + CorDebugLatestVersion = CorDebugVersion_4_5 + } CorDebugInterfaceVersion; EXTERN_C const IID IID_ICorDebug2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("ECCCCF2E-B286-4b3e-A983-860A8793D105") ICorDebug2 : public IUnknown { public: }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebug2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebug2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebug2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebug2 * This); - + END_INTERFACE } ICorDebug2Vtbl; @@ -4808,41 +4999,41 @@ EXTERN_C const IID IID_ICorDebug2; CONST_VTBL struct ICorDebug2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebug2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebug2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebug2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebug2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebug2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebug2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebug2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebug2_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0024 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugThreadState { - THREAD_RUN = 0, - THREAD_SUSPEND = ( THREAD_RUN + 1 ) - } CorDebugThreadState; + THREAD_RUN = 0, + THREAD_SUSPEND = ( THREAD_RUN + 1 ) + } CorDebugThreadState; @@ -4853,118 +5044,131 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0024_v0_0_s_ifspec; #define __ICorDebugController_INTERFACE_DEFINED__ /* interface ICorDebugController */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugController; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f62-7538-11d3-8d5b-00104b35e7ef") ICorDebugController : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Stop( + virtual HRESULT STDMETHODCALLTYPE Stop( /* [in] */ DWORD dwTimeoutIgnored) = 0; - - virtual HRESULT STDMETHODCALLTYPE Continue( + + virtual HRESULT STDMETHODCALLTYPE Continue( /* [in] */ BOOL fIsOutOfBand) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsRunning( + + virtual HRESULT STDMETHODCALLTYPE IsRunning( /* [out] */ BOOL *pbRunning) = 0; - - virtual HRESULT STDMETHODCALLTYPE HasQueuedCallbacks( + + virtual HRESULT STDMETHODCALLTYPE HasQueuedCallbacks( /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateThreads( + + virtual HRESULT STDMETHODCALLTYPE EnumerateThreads( /* [out] */ ICorDebugThreadEnum **ppThreads) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetAllThreadsDebugState( + + virtual HRESULT STDMETHODCALLTYPE SetAllThreadsDebugState( /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread) = 0; - + virtual HRESULT STDMETHODCALLTYPE Detach( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Terminate( + + virtual HRESULT STDMETHODCALLTYPE Terminate( /* [in] */ UINT exitCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanCommitChanges( + + virtual HRESULT STDMETHODCALLTYPE CanCommitChanges( /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError) = 0; - - virtual HRESULT STDMETHODCALLTYPE CommitChanges( + + virtual HRESULT STDMETHODCALLTYPE CommitChanges( /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugControllerVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugController * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugController * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugController * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( + + DECLSPEC_XFGVIRT(ICorDebugController, Stop) + HRESULT ( STDMETHODCALLTYPE *Stop )( ICorDebugController * This, /* [in] */ DWORD dwTimeoutIgnored); - - HRESULT ( STDMETHODCALLTYPE *Continue )( + + DECLSPEC_XFGVIRT(ICorDebugController, Continue) + HRESULT ( STDMETHODCALLTYPE *Continue )( ICorDebugController * This, /* [in] */ BOOL fIsOutOfBand); - - HRESULT ( STDMETHODCALLTYPE *IsRunning )( + + DECLSPEC_XFGVIRT(ICorDebugController, IsRunning) + HRESULT ( STDMETHODCALLTYPE *IsRunning )( ICorDebugController * This, /* [out] */ BOOL *pbRunning); - - HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( + + DECLSPEC_XFGVIRT(ICorDebugController, HasQueuedCallbacks) + HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( ICorDebugController * This, /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued); - - HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( + + DECLSPEC_XFGVIRT(ICorDebugController, EnumerateThreads) + HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( ICorDebugController * This, /* [out] */ ICorDebugThreadEnum **ppThreads); - - HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( + + DECLSPEC_XFGVIRT(ICorDebugController, SetAllThreadsDebugState) + HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( ICorDebugController * This, /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread); - - HRESULT ( STDMETHODCALLTYPE *Detach )( + + DECLSPEC_XFGVIRT(ICorDebugController, Detach) + HRESULT ( STDMETHODCALLTYPE *Detach )( ICorDebugController * This); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + DECLSPEC_XFGVIRT(ICorDebugController, Terminate) + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebugController * This, /* [in] */ UINT exitCode); - - HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( + + DECLSPEC_XFGVIRT(ICorDebugController, CanCommitChanges) + HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( ICorDebugController * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *CommitChanges )( + + DECLSPEC_XFGVIRT(ICorDebugController, CommitChanges) + HRESULT ( STDMETHODCALLTYPE *CommitChanges )( ICorDebugController * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - + END_INTERFACE } ICorDebugControllerVtbl; @@ -4973,67 +5177,67 @@ EXTERN_C const IID IID_ICorDebugController; CONST_VTBL struct ICorDebugControllerVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugController_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugController_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugController_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugController_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugController_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugController_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugController_Stop(This,dwTimeoutIgnored) \ - ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) +#define ICorDebugController_Stop(This,dwTimeoutIgnored) \ + ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) -#define ICorDebugController_Continue(This,fIsOutOfBand) \ - ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) +#define ICorDebugController_Continue(This,fIsOutOfBand) \ + ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) -#define ICorDebugController_IsRunning(This,pbRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) +#define ICorDebugController_IsRunning(This,pbRunning) \ + ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) -#define ICorDebugController_HasQueuedCallbacks(This,pThread,pbQueued) \ - ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) +#define ICorDebugController_HasQueuedCallbacks(This,pThread,pbQueued) \ + ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) -#define ICorDebugController_EnumerateThreads(This,ppThreads) \ - ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) +#define ICorDebugController_EnumerateThreads(This,ppThreads) \ + ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) -#define ICorDebugController_SetAllThreadsDebugState(This,state,pExceptThisThread) \ - ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) +#define ICorDebugController_SetAllThreadsDebugState(This,state,pExceptThisThread) \ + ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) -#define ICorDebugController_Detach(This) \ - ( (This)->lpVtbl -> Detach(This) ) +#define ICorDebugController_Detach(This) \ + ( (This)->lpVtbl -> Detach(This) ) -#define ICorDebugController_Terminate(This,exitCode) \ - ( (This)->lpVtbl -> Terminate(This,exitCode) ) +#define ICorDebugController_Terminate(This,exitCode) \ + ( (This)->lpVtbl -> Terminate(This,exitCode) ) -#define ICorDebugController_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugController_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugController_CommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugController_CommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugController_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugController_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0025 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_c_ifspec; @@ -5043,157 +5247,180 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0025_v0_0_s_ifspec; #define __ICorDebugAppDomain_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f63-7538-11d3-8d5b-00104b35e7ef") ICorDebugAppDomain : public ICorDebugController { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateAssemblies( + + virtual HRESULT STDMETHODCALLTYPE EnumerateAssemblies( /* [out] */ ICorDebugAssemblyEnum **ppAssemblies) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetModuleFromMetaDataInterface( + + virtual HRESULT STDMETHODCALLTYPE GetModuleFromMetaDataInterface( /* [in] */ IUnknown *pIMetaData, /* [out] */ ICorDebugModule **ppModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateBreakpoints( + + virtual HRESULT STDMETHODCALLTYPE EnumerateBreakpoints( /* [out] */ ICorDebugBreakpointEnum **ppBreakpoints) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateSteppers( + + virtual HRESULT STDMETHODCALLTYPE EnumerateSteppers( /* [out] */ ICorDebugStepperEnum **ppSteppers) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsAttached( + + virtual HRESULT STDMETHODCALLTYPE IsAttached( /* [out] */ BOOL *pbAttached) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugValue **ppObject) = 0; - + virtual HRESULT STDMETHODCALLTYPE Attach( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetID( + + virtual HRESULT STDMETHODCALLTYPE GetID( /* [out] */ ULONG32 *pId) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomainVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( + + DECLSPEC_XFGVIRT(ICorDebugController, Stop) + HRESULT ( STDMETHODCALLTYPE *Stop )( ICorDebugAppDomain * This, /* [in] */ DWORD dwTimeoutIgnored); - - HRESULT ( STDMETHODCALLTYPE *Continue )( + + DECLSPEC_XFGVIRT(ICorDebugController, Continue) + HRESULT ( STDMETHODCALLTYPE *Continue )( ICorDebugAppDomain * This, /* [in] */ BOOL fIsOutOfBand); - - HRESULT ( STDMETHODCALLTYPE *IsRunning )( + + DECLSPEC_XFGVIRT(ICorDebugController, IsRunning) + HRESULT ( STDMETHODCALLTYPE *IsRunning )( ICorDebugAppDomain * This, /* [out] */ BOOL *pbRunning); - - HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( + + DECLSPEC_XFGVIRT(ICorDebugController, HasQueuedCallbacks) + HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( ICorDebugAppDomain * This, /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued); - - HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( + + DECLSPEC_XFGVIRT(ICorDebugController, EnumerateThreads) + HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( ICorDebugAppDomain * This, /* [out] */ ICorDebugThreadEnum **ppThreads); - - HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( + + DECLSPEC_XFGVIRT(ICorDebugController, SetAllThreadsDebugState) + HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( ICorDebugAppDomain * This, /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread); - - HRESULT ( STDMETHODCALLTYPE *Detach )( + + DECLSPEC_XFGVIRT(ICorDebugController, Detach) + HRESULT ( STDMETHODCALLTYPE *Detach )( ICorDebugAppDomain * This); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + DECLSPEC_XFGVIRT(ICorDebugController, Terminate) + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebugAppDomain * This, /* [in] */ UINT exitCode); - - HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( + + DECLSPEC_XFGVIRT(ICorDebugController, CanCommitChanges) + HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( ICorDebugAppDomain * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *CommitChanges )( + + DECLSPEC_XFGVIRT(ICorDebugController, CommitChanges) + HRESULT ( STDMETHODCALLTYPE *CommitChanges )( ICorDebugAppDomain * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetProcess) + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugAppDomain * This, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *EnumerateAssemblies )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, EnumerateAssemblies) + HRESULT ( STDMETHODCALLTYPE *EnumerateAssemblies )( ICorDebugAppDomain * This, /* [out] */ ICorDebugAssemblyEnum **ppAssemblies); - - HRESULT ( STDMETHODCALLTYPE *GetModuleFromMetaDataInterface )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetModuleFromMetaDataInterface) + HRESULT ( STDMETHODCALLTYPE *GetModuleFromMetaDataInterface )( ICorDebugAppDomain * This, /* [in] */ IUnknown *pIMetaData, /* [out] */ ICorDebugModule **ppModule); - - HRESULT ( STDMETHODCALLTYPE *EnumerateBreakpoints )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, EnumerateBreakpoints) + HRESULT ( STDMETHODCALLTYPE *EnumerateBreakpoints )( ICorDebugAppDomain * This, /* [out] */ ICorDebugBreakpointEnum **ppBreakpoints); - - HRESULT ( STDMETHODCALLTYPE *EnumerateSteppers )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, EnumerateSteppers) + HRESULT ( STDMETHODCALLTYPE *EnumerateSteppers )( ICorDebugAppDomain * This, /* [out] */ ICorDebugStepperEnum **ppSteppers); - - HRESULT ( STDMETHODCALLTYPE *IsAttached )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, IsAttached) + HRESULT ( STDMETHODCALLTYPE *IsAttached )( ICorDebugAppDomain * This, /* [out] */ BOOL *pbAttached); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetName) + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugAppDomain * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetObject) + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugAppDomain * This, /* [out] */ ICorDebugValue **ppObject); - - HRESULT ( STDMETHODCALLTYPE *Attach )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, Attach) + HRESULT ( STDMETHODCALLTYPE *Attach )( ICorDebugAppDomain * This); - - HRESULT ( STDMETHODCALLTYPE *GetID )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain, GetID) + HRESULT ( STDMETHODCALLTYPE *GetID )( ICorDebugAppDomain * This, /* [out] */ ULONG32 *pId); - + END_INTERFACE } ICorDebugAppDomainVtbl; @@ -5202,95 +5429,95 @@ EXTERN_C const IID IID_ICorDebugAppDomain; CONST_VTBL struct ICorDebugAppDomainVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomain_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomain_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomain_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomain_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomain_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomain_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomain_Stop(This,dwTimeoutIgnored) \ - ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) +#define ICorDebugAppDomain_Stop(This,dwTimeoutIgnored) \ + ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) -#define ICorDebugAppDomain_Continue(This,fIsOutOfBand) \ - ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) +#define ICorDebugAppDomain_Continue(This,fIsOutOfBand) \ + ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) -#define ICorDebugAppDomain_IsRunning(This,pbRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) +#define ICorDebugAppDomain_IsRunning(This,pbRunning) \ + ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) -#define ICorDebugAppDomain_HasQueuedCallbacks(This,pThread,pbQueued) \ - ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) +#define ICorDebugAppDomain_HasQueuedCallbacks(This,pThread,pbQueued) \ + ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) -#define ICorDebugAppDomain_EnumerateThreads(This,ppThreads) \ - ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) +#define ICorDebugAppDomain_EnumerateThreads(This,ppThreads) \ + ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) -#define ICorDebugAppDomain_SetAllThreadsDebugState(This,state,pExceptThisThread) \ - ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) +#define ICorDebugAppDomain_SetAllThreadsDebugState(This,state,pExceptThisThread) \ + ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) -#define ICorDebugAppDomain_Detach(This) \ - ( (This)->lpVtbl -> Detach(This) ) +#define ICorDebugAppDomain_Detach(This) \ + ( (This)->lpVtbl -> Detach(This) ) -#define ICorDebugAppDomain_Terminate(This,exitCode) \ - ( (This)->lpVtbl -> Terminate(This,exitCode) ) +#define ICorDebugAppDomain_Terminate(This,exitCode) \ + ( (This)->lpVtbl -> Terminate(This,exitCode) ) -#define ICorDebugAppDomain_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugAppDomain_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugAppDomain_CommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugAppDomain_CommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugAppDomain_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) +#define ICorDebugAppDomain_GetProcess(This,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) -#define ICorDebugAppDomain_EnumerateAssemblies(This,ppAssemblies) \ - ( (This)->lpVtbl -> EnumerateAssemblies(This,ppAssemblies) ) +#define ICorDebugAppDomain_EnumerateAssemblies(This,ppAssemblies) \ + ( (This)->lpVtbl -> EnumerateAssemblies(This,ppAssemblies) ) -#define ICorDebugAppDomain_GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) \ - ( (This)->lpVtbl -> GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) ) +#define ICorDebugAppDomain_GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) \ + ( (This)->lpVtbl -> GetModuleFromMetaDataInterface(This,pIMetaData,ppModule) ) -#define ICorDebugAppDomain_EnumerateBreakpoints(This,ppBreakpoints) \ - ( (This)->lpVtbl -> EnumerateBreakpoints(This,ppBreakpoints) ) +#define ICorDebugAppDomain_EnumerateBreakpoints(This,ppBreakpoints) \ + ( (This)->lpVtbl -> EnumerateBreakpoints(This,ppBreakpoints) ) -#define ICorDebugAppDomain_EnumerateSteppers(This,ppSteppers) \ - ( (This)->lpVtbl -> EnumerateSteppers(This,ppSteppers) ) +#define ICorDebugAppDomain_EnumerateSteppers(This,ppSteppers) \ + ( (This)->lpVtbl -> EnumerateSteppers(This,ppSteppers) ) -#define ICorDebugAppDomain_IsAttached(This,pbAttached) \ - ( (This)->lpVtbl -> IsAttached(This,pbAttached) ) +#define ICorDebugAppDomain_IsAttached(This,pbAttached) \ + ( (This)->lpVtbl -> IsAttached(This,pbAttached) ) -#define ICorDebugAppDomain_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugAppDomain_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugAppDomain_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) +#define ICorDebugAppDomain_GetObject(This,ppObject) \ + ( (This)->lpVtbl -> GetObject(This,ppObject) ) -#define ICorDebugAppDomain_Attach(This) \ - ( (This)->lpVtbl -> Attach(This) ) +#define ICorDebugAppDomain_Attach(This) \ + ( (This)->lpVtbl -> Attach(This) ) -#define ICorDebugAppDomain_GetID(This,pId) \ - ( (This)->lpVtbl -> GetID(This,pId) ) +#define ICorDebugAppDomain_GetID(This,pId) \ + ( (This)->lpVtbl -> GetID(This,pId) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomain_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomain_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0026 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -5302,62 +5529,67 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0026_v0_0_s_ifspec; #define __ICorDebugAppDomain2_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("096E81D5-ECDA-4202-83F5-C65980A9EF75") ICorDebugAppDomain2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetArrayOrPointerType( + virtual HRESULT STDMETHODCALLTYPE GetArrayOrPointerType( /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nRank, /* [in] */ ICorDebugType *pTypeArg, /* [out] */ ICorDebugType **ppType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionPointerType( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionPointerType( /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomain2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetArrayOrPointerType )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain2, GetArrayOrPointerType) + HRESULT ( STDMETHODCALLTYPE *GetArrayOrPointerType )( ICorDebugAppDomain2 * This, /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nRank, /* [in] */ ICorDebugType *pTypeArg, /* [out] */ ICorDebugType **ppType); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionPointerType )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain2, GetFunctionPointerType) + HRESULT ( STDMETHODCALLTYPE *GetFunctionPointerType )( ICorDebugAppDomain2 * This, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType); - + END_INTERFACE } ICorDebugAppDomain2Vtbl; @@ -5366,100 +5598,107 @@ EXTERN_C const IID IID_ICorDebugAppDomain2; CONST_VTBL struct ICorDebugAppDomain2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomain2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomain2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomain2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomain2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomain2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomain2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomain2_GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) \ - ( (This)->lpVtbl -> GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) ) +#define ICorDebugAppDomain2_GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) \ + ( (This)->lpVtbl -> GetArrayOrPointerType(This,elementType,nRank,pTypeArg,ppType) ) -#define ICorDebugAppDomain2_GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) \ - ( (This)->lpVtbl -> GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) ) +#define ICorDebugAppDomain2_GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) \ + ( (This)->lpVtbl -> GetFunctionPointerType(This,nTypeArgs,ppTypeArgs,ppType) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomain2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomain2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugEnum_INTERFACE_DEFINED__ #define __ICorDebugEnum_INTERFACE_DEFINED__ /* interface ICorDebugEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB01-8A68-11d2-983C-0000F808342D") ICorDebugEnum : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Skip( + virtual HRESULT STDMETHODCALLTYPE Skip( /* [in] */ ULONG celt) = 0; - + virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE Clone( + + virtual HRESULT STDMETHODCALLTYPE Clone( /* [out] */ ICorDebugEnum **ppEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCount( + + virtual HRESULT STDMETHODCALLTYPE GetCount( /* [out] */ ULONG *pcelt) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugEnum * This, /* [out] */ ULONG *pcelt); - + END_INTERFACE } ICorDebugEnumVtbl; @@ -5468,106 +5707,114 @@ EXTERN_C const IID IID_ICorDebugEnum; CONST_VTBL struct ICorDebugEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugGuidToTypeEnum_INTERFACE_DEFINED__ #define __ICorDebugGuidToTypeEnum_INTERFACE_DEFINED__ /* interface ICorDebugGuidToTypeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugGuidToTypeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("6164D242-1015-4BD6-8CBE-D0DBD4B8275A") ICorDebugGuidToTypeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugGuidToTypeMapping values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugGuidToTypeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugGuidToTypeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugGuidToTypeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugGuidToTypeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugGuidToTypeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugGuidToTypeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugGuidToTypeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugGuidToTypeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugGuidToTypeEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugGuidToTypeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugGuidToTypeMapping values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugGuidToTypeEnumVtbl; @@ -5576,102 +5823,107 @@ EXTERN_C const IID IID_ICorDebugGuidToTypeEnum; CONST_VTBL struct ICorDebugGuidToTypeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugGuidToTypeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugGuidToTypeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugGuidToTypeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugGuidToTypeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugGuidToTypeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugGuidToTypeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugGuidToTypeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugGuidToTypeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugGuidToTypeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugGuidToTypeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugGuidToTypeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugGuidToTypeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugGuidToTypeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugGuidToTypeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugGuidToTypeEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugGuidToTypeEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugGuidToTypeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugGuidToTypeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAppDomain3_INTERFACE_DEFINED__ #define __ICorDebugAppDomain3_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("8CB96A16-B588-42E2-B71C-DD849FC2ECCC") ICorDebugAppDomain3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypesForIIDs( + virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypesForIIDs( /* [in] */ ULONG32 cReqTypes, /* [size_is][in] */ GUID *iidsToResolve, /* [out] */ ICorDebugTypeEnum **ppTypesEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypes( + + virtual HRESULT STDMETHODCALLTYPE GetCachedWinRTTypes( /* [out] */ ICorDebugGuidToTypeEnum **ppGuidToTypeEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomain3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypesForIIDs )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain3, GetCachedWinRTTypesForIIDs) + HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypesForIIDs )( ICorDebugAppDomain3 * This, /* [in] */ ULONG32 cReqTypes, /* [size_is][in] */ GUID *iidsToResolve, /* [out] */ ICorDebugTypeEnum **ppTypesEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypes )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain3, GetCachedWinRTTypes) + HRESULT ( STDMETHODCALLTYPE *GetCachedWinRTTypes )( ICorDebugAppDomain3 * This, /* [out] */ ICorDebugGuidToTypeEnum **ppGuidToTypeEnum); - + END_INTERFACE } ICorDebugAppDomain3Vtbl; @@ -5680,83 +5932,87 @@ EXTERN_C const IID IID_ICorDebugAppDomain3; CONST_VTBL struct ICorDebugAppDomain3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomain3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomain3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomain3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomain3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomain3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomain3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomain3_GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) \ - ( (This)->lpVtbl -> GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) ) +#define ICorDebugAppDomain3_GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) \ + ( (This)->lpVtbl -> GetCachedWinRTTypesForIIDs(This,cReqTypes,iidsToResolve,ppTypesEnum) ) -#define ICorDebugAppDomain3_GetCachedWinRTTypes(This,ppGuidToTypeEnum) \ - ( (This)->lpVtbl -> GetCachedWinRTTypes(This,ppGuidToTypeEnum) ) +#define ICorDebugAppDomain3_GetCachedWinRTTypes(This,ppGuidToTypeEnum) \ + ( (This)->lpVtbl -> GetCachedWinRTTypes(This,ppGuidToTypeEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomain3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomain3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAppDomain4_INTERFACE_DEFINED__ #define __ICorDebugAppDomain4_INTERFACE_DEFINED__ /* interface ICorDebugAppDomain4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomain4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FB99CC40-83BE-4724-AB3B-768E796EBAC2") ICorDebugAppDomain4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetObjectForCCW( + virtual HRESULT STDMETHODCALLTYPE GetObjectForCCW( /* [in] */ CORDB_ADDRESS ccwPointer, /* [out] */ ICorDebugValue **ppManagedObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomain4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomain4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomain4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomain4 * This); - - HRESULT ( STDMETHODCALLTYPE *GetObjectForCCW )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomain4, GetObjectForCCW) + HRESULT ( STDMETHODCALLTYPE *GetObjectForCCW )( ICorDebugAppDomain4 * This, /* [in] */ CORDB_ADDRESS ccwPointer, /* [out] */ ICorDebugValue **ppManagedObject); - + END_INTERFACE } ICorDebugAppDomain4Vtbl; @@ -5765,40 +6021,40 @@ EXTERN_C const IID IID_ICorDebugAppDomain4; CONST_VTBL struct ICorDebugAppDomain4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomain4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomain4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomain4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomain4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomain4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomain4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomain4_GetObjectForCCW(This,ccwPointer,ppManagedObject) \ - ( (This)->lpVtbl -> GetObjectForCCW(This,ccwPointer,ppManagedObject) ) +#define ICorDebugAppDomain4_GetObjectForCCW(This,ccwPointer,ppManagedObject) \ + ( (This)->lpVtbl -> GetObjectForCCW(This,ccwPointer,ppManagedObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomain4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomain4_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0030 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_c_ifspec; @@ -5808,81 +6064,89 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0030_v0_0_s_ifspec; #define __ICorDebugAssembly_INTERFACE_DEFINED__ /* interface ICorDebugAssembly */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssembly; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("df59507c-d47a-459e-bce2-6427eac8fd06") ICorDebugAssembly : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAppDomain( + + virtual HRESULT STDMETHODCALLTYPE GetAppDomain( /* [out] */ ICorDebugAppDomain **ppAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateModules( + + virtual HRESULT STDMETHODCALLTYPE EnumerateModules( /* [out] */ ICorDebugModuleEnum **ppModules) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodeBase( + + virtual HRESULT STDMETHODCALLTYPE GetCodeBase( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAssemblyVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssembly * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssembly * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssembly * This); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + DECLSPEC_XFGVIRT(ICorDebugAssembly, GetProcess) + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugAssembly * This, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( + + DECLSPEC_XFGVIRT(ICorDebugAssembly, GetAppDomain) + HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( ICorDebugAssembly * This, /* [out] */ ICorDebugAppDomain **ppAppDomain); - - HRESULT ( STDMETHODCALLTYPE *EnumerateModules )( + + DECLSPEC_XFGVIRT(ICorDebugAssembly, EnumerateModules) + HRESULT ( STDMETHODCALLTYPE *EnumerateModules )( ICorDebugAssembly * This, /* [out] */ ICorDebugModuleEnum **ppModules); - - HRESULT ( STDMETHODCALLTYPE *GetCodeBase )( + + DECLSPEC_XFGVIRT(ICorDebugAssembly, GetCodeBase) + HRESULT ( STDMETHODCALLTYPE *GetCodeBase )( ICorDebugAssembly * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + DECLSPEC_XFGVIRT(ICorDebugAssembly, GetName) + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugAssembly * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - + END_INTERFACE } ICorDebugAssemblyVtbl; @@ -5891,49 +6155,49 @@ EXTERN_C const IID IID_ICorDebugAssembly; CONST_VTBL struct ICorDebugAssemblyVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAssembly_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAssembly_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAssembly_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAssembly_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAssembly_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAssembly_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAssembly_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) +#define ICorDebugAssembly_GetProcess(This,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) -#define ICorDebugAssembly_GetAppDomain(This,ppAppDomain) \ - ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) +#define ICorDebugAssembly_GetAppDomain(This,ppAppDomain) \ + ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) -#define ICorDebugAssembly_EnumerateModules(This,ppModules) \ - ( (This)->lpVtbl -> EnumerateModules(This,ppModules) ) +#define ICorDebugAssembly_EnumerateModules(This,ppModules) \ + ( (This)->lpVtbl -> EnumerateModules(This,ppModules) ) -#define ICorDebugAssembly_GetCodeBase(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetCodeBase(This,cchName,pcchName,szName) ) +#define ICorDebugAssembly_GetCodeBase(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetCodeBase(This,cchName,pcchName,szName) ) -#define ICorDebugAssembly_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugAssembly_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAssembly_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAssembly_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0031 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -5945,45 +6209,49 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0031_v0_0_s_ifspec; #define __ICorDebugAssembly2_INTERFACE_DEFINED__ /* interface ICorDebugAssembly2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssembly2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("426d1f9e-6dd4-44c8-aec7-26cdbaf4e398") ICorDebugAssembly2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsFullyTrusted( + virtual HRESULT STDMETHODCALLTYPE IsFullyTrusted( /* [out] */ BOOL *pbFullyTrusted) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAssembly2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssembly2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssembly2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssembly2 * This); - - HRESULT ( STDMETHODCALLTYPE *IsFullyTrusted )( + + DECLSPEC_XFGVIRT(ICorDebugAssembly2, IsFullyTrusted) + HRESULT ( STDMETHODCALLTYPE *IsFullyTrusted )( ICorDebugAssembly2 * This, /* [out] */ BOOL *pbFullyTrusted); - + END_INTERFACE } ICorDebugAssembly2Vtbl; @@ -5992,85 +6260,90 @@ EXTERN_C const IID IID_ICorDebugAssembly2; CONST_VTBL struct ICorDebugAssembly2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAssembly2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAssembly2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAssembly2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAssembly2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAssembly2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAssembly2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAssembly2_IsFullyTrusted(This,pbFullyTrusted) \ - ( (This)->lpVtbl -> IsFullyTrusted(This,pbFullyTrusted) ) +#define ICorDebugAssembly2_IsFullyTrusted(This,pbFullyTrusted) \ + ( (This)->lpVtbl -> IsFullyTrusted(This,pbFullyTrusted) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAssembly2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAssembly2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAssembly3_INTERFACE_DEFINED__ #define __ICorDebugAssembly3_INTERFACE_DEFINED__ /* interface ICorDebugAssembly3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssembly3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("76361AB2-8C86-4FE9-96F2-F73D8843570A") ICorDebugAssembly3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetContainerAssembly( + virtual HRESULT STDMETHODCALLTYPE GetContainerAssembly( ICorDebugAssembly **ppAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateContainedAssemblies( + + virtual HRESULT STDMETHODCALLTYPE EnumerateContainedAssemblies( ICorDebugAssemblyEnum **ppAssemblies) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAssembly3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssembly3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssembly3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssembly3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetContainerAssembly )( + + DECLSPEC_XFGVIRT(ICorDebugAssembly3, GetContainerAssembly) + HRESULT ( STDMETHODCALLTYPE *GetContainerAssembly )( ICorDebugAssembly3 * This, ICorDebugAssembly **ppAssembly); - - HRESULT ( STDMETHODCALLTYPE *EnumerateContainedAssemblies )( + + DECLSPEC_XFGVIRT(ICorDebugAssembly3, EnumerateContainedAssemblies) + HRESULT ( STDMETHODCALLTYPE *EnumerateContainedAssemblies )( ICorDebugAssembly3 * This, ICorDebugAssemblyEnum **ppAssemblies); - + END_INTERFACE } ICorDebugAssembly3Vtbl; @@ -6079,40 +6352,40 @@ EXTERN_C const IID IID_ICorDebugAssembly3; CONST_VTBL struct ICorDebugAssembly3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAssembly3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAssembly3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAssembly3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAssembly3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAssembly3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAssembly3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAssembly3_GetContainerAssembly(This,ppAssembly) \ - ( (This)->lpVtbl -> GetContainerAssembly(This,ppAssembly) ) +#define ICorDebugAssembly3_GetContainerAssembly(This,ppAssembly) \ + ( (This)->lpVtbl -> GetContainerAssembly(This,ppAssembly) ) -#define ICorDebugAssembly3_EnumerateContainedAssemblies(This,ppAssemblies) \ - ( (This)->lpVtbl -> EnumerateContainedAssemblies(This,ppAssemblies) ) +#define ICorDebugAssembly3_EnumerateContainedAssemblies(This,ppAssemblies) \ + ( (This)->lpVtbl -> EnumerateContainedAssemblies(This,ppAssemblies) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAssembly3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAssembly3_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0033 */ -/* [local] */ +/* [local] */ #ifndef _DEF_COR_TYPEID_ #define _DEF_COR_TYPEID_ @@ -6120,7 +6393,7 @@ typedef struct COR_TYPEID { UINT64 token1; UINT64 token2; - } COR_TYPEID; + } COR_TYPEID; #endif // _DEF_COR_TYPEID_ typedef struct _COR_HEAPOBJECT @@ -6128,7 +6401,7 @@ typedef struct _COR_HEAPOBJECT CORDB_ADDRESS address; ULONG64 size; COR_TYPEID type; - } COR_HEAPOBJECT; + } COR_HEAPOBJECT; @@ -6139,64 +6412,72 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0033_v0_0_s_ifspec; #define __ICorDebugHeapEnum_INTERFACE_DEFINED__ /* interface ICorDebugHeapEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("76D7DAB8-D044-11DF-9A15-7E29DFD72085") ICorDebugHeapEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_HEAPOBJECT objects[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugHeapEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugHeapEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugHeapEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugHeapEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugHeapEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugHeapEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_HEAPOBJECT objects[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugHeapEnumVtbl; @@ -6205,60 +6486,60 @@ EXTERN_C const IID IID_ICorDebugHeapEnum; CONST_VTBL struct ICorDebugHeapEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugHeapEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugHeapEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugHeapEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugHeapEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugHeapEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugHeapEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugHeapEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugHeapEnum_Next(This,celt,objects,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) +#define ICorDebugHeapEnum_Next(This,celt,objects,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapEnum_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0034 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugGenerationTypes { - CorDebug_Gen0 = 0, - CorDebug_Gen1 = 1, - CorDebug_Gen2 = 2, - CorDebug_LOH = 3, - CorDebug_POH = 4 - } CorDebugGenerationTypes; + CorDebug_Gen0 = 0, + CorDebug_Gen1 = 1, + CorDebug_Gen2 = 2, + CorDebug_LOH = 3, + CorDebug_POH = 4 + } CorDebugGenerationTypes; typedef struct _COR_SEGMENT { @@ -6266,14 +6547,14 @@ typedef struct _COR_SEGMENT CORDB_ADDRESS end; CorDebugGenerationTypes type; ULONG heap; - } COR_SEGMENT; + } COR_SEGMENT; -typedef +typedef enum CorDebugGCType { - CorDebugWorkstationGC = 0, - CorDebugServerGC = ( CorDebugWorkstationGC + 1 ) - } CorDebugGCType; + CorDebugWorkstationGC = 0, + CorDebugServerGC = ( CorDebugWorkstationGC + 1 ) + } CorDebugGCType; typedef struct _COR_HEAPINFO { @@ -6282,7 +6563,7 @@ typedef struct _COR_HEAPINFO DWORD numHeaps; BOOL concurrent; CorDebugGCType gcType; - } COR_HEAPINFO; + } COR_HEAPINFO; @@ -6293,64 +6574,72 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0034_v0_0_s_ifspec; #define __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ /* interface ICorDebugHeapSegmentEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapSegmentEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A2FA0F8E-D045-11DF-AC8E-CE2ADFD72085") ICorDebugHeapSegmentEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_SEGMENT segments[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapSegmentEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapSegmentEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapSegmentEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapSegmentEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugHeapSegmentEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugHeapSegmentEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugHeapSegmentEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugHeapSegmentEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugHeapSegmentEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugHeapSegmentEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_SEGMENT segments[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugHeapSegmentEnumVtbl; @@ -6359,71 +6648,71 @@ EXTERN_C const IID IID_ICorDebugHeapSegmentEnum; CONST_VTBL struct ICorDebugHeapSegmentEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapSegmentEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapSegmentEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapSegmentEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapSegmentEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapSegmentEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapSegmentEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapSegmentEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugHeapSegmentEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugHeapSegmentEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugHeapSegmentEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugHeapSegmentEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugHeapSegmentEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugHeapSegmentEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugHeapSegmentEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugHeapSegmentEnum_Next(This,celt,segments,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,segments,pceltFetched) ) +#define ICorDebugHeapSegmentEnum_Next(This,celt,segments,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,segments,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapSegmentEnum_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0035 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorGCReferenceType { - CorHandleStrong = ( 1 << 0 ) , - CorHandleStrongPinning = ( 1 << 1 ) , - CorHandleWeakShort = ( 1 << 2 ) , - CorHandleWeakLong = ( 1 << 3 ) , - CorHandleWeakRefCount = ( 1 << 4 ) , - CorHandleStrongRefCount = ( 1 << 5 ) , - CorHandleStrongDependent = ( 1 << 6 ) , - CorHandleStrongAsyncPinned = ( 1 << 7 ) , - CorHandleStrongSizedByref = ( 1 << 8 ) , - CorHandleWeakNativeCom = ( 1 << 9 ) , - CorHandleWeakWinRT = CorHandleWeakNativeCom, - CorReferenceStack = 0x80000001, - CorReferenceFinalizer = 80000002, - CorHandleStrongOnly = 0x1e3, - CorHandleWeakOnly = 0x21c, - CorHandleAll = 0x7fffffff - } CorGCReferenceType; + CorHandleStrong = ( 1 << 0 ) , + CorHandleStrongPinning = ( 1 << 1 ) , + CorHandleWeakShort = ( 1 << 2 ) , + CorHandleWeakLong = ( 1 << 3 ) , + CorHandleWeakRefCount = ( 1 << 4 ) , + CorHandleStrongRefCount = ( 1 << 5 ) , + CorHandleStrongDependent = ( 1 << 6 ) , + CorHandleStrongAsyncPinned = ( 1 << 7 ) , + CorHandleStrongSizedByref = ( 1 << 8 ) , + CorHandleWeakNativeCom = ( 1 << 9 ) , + CorHandleWeakWinRT = CorHandleWeakNativeCom, + CorReferenceStack = 0x80000001, + CorReferenceFinalizer = 80000002, + CorHandleStrongOnly = 0x1e3, + CorHandleWeakOnly = 0x21c, + CorHandleAll = 0x7fffffff + } CorGCReferenceType; #ifndef _DEF_COR_GC_REFERENCE_ #define _DEF_COR_GC_REFERENCE_ @@ -6433,7 +6722,7 @@ typedef struct COR_GC_REFERENCE ICorDebugValue *Location; CorGCReferenceType Type; UINT64 ExtraData; - } COR_GC_REFERENCE; + } COR_GC_REFERENCE; #endif // _DEF_COR_GC_REFERENCE_ @@ -6445,64 +6734,72 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0035_v0_0_s_ifspec; #define __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ /* interface ICorDebugGCReferenceEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugGCReferenceEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("7F3C24D3-7E1D-4245-AC3A-F72F8859C80C") ICorDebugGCReferenceEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_GC_REFERENCE roots[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugGCReferenceEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugGCReferenceEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugGCReferenceEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugGCReferenceEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugGCReferenceEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugGCReferenceEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugGCReferenceEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugGCReferenceEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugGCReferenceEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugGCReferenceEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_GC_REFERENCE roots[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugGCReferenceEnumVtbl; @@ -6511,50 +6808,50 @@ EXTERN_C const IID IID_ICorDebugGCReferenceEnum; CONST_VTBL struct ICorDebugGCReferenceEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugGCReferenceEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugGCReferenceEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugGCReferenceEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugGCReferenceEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugGCReferenceEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugGCReferenceEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugGCReferenceEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugGCReferenceEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugGCReferenceEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugGCReferenceEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugGCReferenceEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugGCReferenceEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugGCReferenceEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugGCReferenceEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugGCReferenceEnum_Next(This,celt,roots,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,roots,pceltFetched) ) +#define ICorDebugGCReferenceEnum_Next(This,celt,roots,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,roots,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugGCReferenceEnum_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0036 */ -/* [local] */ +/* [local] */ #ifndef _DEF_COR_ARRAY_LAYOUT_ #define _DEF_COR_ARRAY_LAYOUT_ @@ -6568,7 +6865,7 @@ typedef struct COR_ARRAY_LAYOUT ULONG32 rankSize; ULONG32 numRanks; ULONG32 rankOffset; - } COR_ARRAY_LAYOUT; + } COR_ARRAY_LAYOUT; #endif // _DEF_COR_ARRAY_LAYOUT_ #ifndef _DEF_COR_TYPE_LAYOUT_ @@ -6580,7 +6877,7 @@ typedef struct COR_TYPE_LAYOUT ULONG32 numFields; ULONG32 boxOffset; CorElementType type; - } COR_TYPE_LAYOUT; + } COR_TYPE_LAYOUT; #endif // _DEF_COR_TYPE_LAYOUT_ #ifndef _DEF_COR_FIELD_ @@ -6591,11 +6888,11 @@ typedef struct COR_FIELD ULONG32 offset; COR_TYPEID id; CorElementType fieldType; - } COR_FIELD; + } COR_FIELD; #endif // _DEF_COR_FIELD_ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_c_ifspec; @@ -6605,234 +6902,264 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0036_v0_0_s_ifspec; #define __ICorDebugProcess_INTERFACE_DEFINED__ /* interface ICorDebugProcess */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3d6f5f64-7538-11d3-8d5b-00104b35e7ef") ICorDebugProcess : public ICorDebugController { public: - virtual HRESULT STDMETHODCALLTYPE GetID( + virtual HRESULT STDMETHODCALLTYPE GetID( /* [out] */ DWORD *pdwProcessId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHandle( + + virtual HRESULT STDMETHODCALLTYPE GetHandle( /* [out] */ HPROCESS *phProcessHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThread( + + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateObjects( + + virtual HRESULT STDMETHODCALLTYPE EnumerateObjects( /* [out] */ ICorDebugObjectEnum **ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsTransitionStub( + + virtual HRESULT STDMETHODCALLTYPE IsTransitionStub( /* [in] */ CORDB_ADDRESS address, /* [out] */ BOOL *pbTransitionStub) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsOSSuspended( + + virtual HRESULT STDMETHODCALLTYPE IsOSSuspended( /* [in] */ DWORD threadID, /* [out] */ BOOL *pbSuspended) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE GetThreadContext( /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE SetThreadContext( /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE ReadMemory( + + virtual HRESULT STDMETHODCALLTYPE ReadMemory( /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ SIZE_T *read) = 0; - - virtual HRESULT STDMETHODCALLTYPE WriteMemory( + + virtual HRESULT STDMETHODCALLTYPE WriteMemory( /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [size_is][in] */ BYTE buffer[ ], /* [out] */ SIZE_T *written) = 0; - - virtual HRESULT STDMETHODCALLTYPE ClearCurrentException( + + virtual HRESULT STDMETHODCALLTYPE ClearCurrentException( /* [in] */ DWORD threadID) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableLogMessages( + + virtual HRESULT STDMETHODCALLTYPE EnableLogMessages( /* [in] */ BOOL fOnOff) = 0; - - virtual HRESULT STDMETHODCALLTYPE ModifyLogSwitch( - /* [annotation][in] */ + + virtual HRESULT STDMETHODCALLTYPE ModifyLogSwitch( + /* [annotation][in] */ _In_ WCHAR *pLogSwitchName, /* [in] */ LONG lLevel) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateAppDomains( + + virtual HRESULT STDMETHODCALLTYPE EnumerateAppDomains( /* [out] */ ICorDebugAppDomainEnum **ppAppDomains) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugValue **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE ThreadForFiberCookie( + + virtual HRESULT STDMETHODCALLTYPE ThreadForFiberCookie( /* [in] */ DWORD fiberCookie, /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHelperThreadID( + + virtual HRESULT STDMETHODCALLTYPE GetHelperThreadID( /* [out] */ DWORD *pThreadID) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcessVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess * This); - - HRESULT ( STDMETHODCALLTYPE *Stop )( + + DECLSPEC_XFGVIRT(ICorDebugController, Stop) + HRESULT ( STDMETHODCALLTYPE *Stop )( ICorDebugProcess * This, /* [in] */ DWORD dwTimeoutIgnored); - - HRESULT ( STDMETHODCALLTYPE *Continue )( + + DECLSPEC_XFGVIRT(ICorDebugController, Continue) + HRESULT ( STDMETHODCALLTYPE *Continue )( ICorDebugProcess * This, /* [in] */ BOOL fIsOutOfBand); - - HRESULT ( STDMETHODCALLTYPE *IsRunning )( + + DECLSPEC_XFGVIRT(ICorDebugController, IsRunning) + HRESULT ( STDMETHODCALLTYPE *IsRunning )( ICorDebugProcess * This, /* [out] */ BOOL *pbRunning); - - HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( + + DECLSPEC_XFGVIRT(ICorDebugController, HasQueuedCallbacks) + HRESULT ( STDMETHODCALLTYPE *HasQueuedCallbacks )( ICorDebugProcess * This, /* [in] */ ICorDebugThread *pThread, /* [out] */ BOOL *pbQueued); - - HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( + + DECLSPEC_XFGVIRT(ICorDebugController, EnumerateThreads) + HRESULT ( STDMETHODCALLTYPE *EnumerateThreads )( ICorDebugProcess * This, /* [out] */ ICorDebugThreadEnum **ppThreads); - - HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( + + DECLSPEC_XFGVIRT(ICorDebugController, SetAllThreadsDebugState) + HRESULT ( STDMETHODCALLTYPE *SetAllThreadsDebugState )( ICorDebugProcess * This, /* [in] */ CorDebugThreadState state, /* [in] */ ICorDebugThread *pExceptThisThread); - - HRESULT ( STDMETHODCALLTYPE *Detach )( + + DECLSPEC_XFGVIRT(ICorDebugController, Detach) + HRESULT ( STDMETHODCALLTYPE *Detach )( ICorDebugProcess * This); - - HRESULT ( STDMETHODCALLTYPE *Terminate )( + + DECLSPEC_XFGVIRT(ICorDebugController, Terminate) + HRESULT ( STDMETHODCALLTYPE *Terminate )( ICorDebugProcess * This, /* [in] */ UINT exitCode); - - HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( + + DECLSPEC_XFGVIRT(ICorDebugController, CanCommitChanges) + HRESULT ( STDMETHODCALLTYPE *CanCommitChanges )( ICorDebugProcess * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *CommitChanges )( + + DECLSPEC_XFGVIRT(ICorDebugController, CommitChanges) + HRESULT ( STDMETHODCALLTYPE *CommitChanges )( ICorDebugProcess * This, /* [in] */ ULONG cSnapshots, /* [size_is][in] */ ICorDebugEditAndContinueSnapshot *pSnapshots[ ], /* [out] */ ICorDebugErrorInfoEnum **pError); - - HRESULT ( STDMETHODCALLTYPE *GetID )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, GetID) + HRESULT ( STDMETHODCALLTYPE *GetID )( ICorDebugProcess * This, /* [out] */ DWORD *pdwProcessId); - - HRESULT ( STDMETHODCALLTYPE *GetHandle )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, GetHandle) + HRESULT ( STDMETHODCALLTYPE *GetHandle )( ICorDebugProcess * This, /* [out] */ HPROCESS *phProcessHandle); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, GetThread) + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugProcess * This, /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *EnumerateObjects )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, EnumerateObjects) + HRESULT ( STDMETHODCALLTYPE *EnumerateObjects )( ICorDebugProcess * This, /* [out] */ ICorDebugObjectEnum **ppObjects); - - HRESULT ( STDMETHODCALLTYPE *IsTransitionStub )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, IsTransitionStub) + HRESULT ( STDMETHODCALLTYPE *IsTransitionStub )( ICorDebugProcess * This, /* [in] */ CORDB_ADDRESS address, /* [out] */ BOOL *pbTransitionStub); - - HRESULT ( STDMETHODCALLTYPE *IsOSSuspended )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, IsOSSuspended) + HRESULT ( STDMETHODCALLTYPE *IsOSSuspended )( ICorDebugProcess * This, /* [in] */ DWORD threadID, /* [out] */ BOOL *pbSuspended); - - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, GetThreadContext) + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugProcess * This, /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, SetThreadContext) + HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( ICorDebugProcess * This, /* [in] */ DWORD threadID, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]); - - HRESULT ( STDMETHODCALLTYPE *ReadMemory )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, ReadMemory) + HRESULT ( STDMETHODCALLTYPE *ReadMemory )( ICorDebugProcess * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ SIZE_T *read); - - HRESULT ( STDMETHODCALLTYPE *WriteMemory )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, WriteMemory) + HRESULT ( STDMETHODCALLTYPE *WriteMemory )( ICorDebugProcess * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ DWORD size, /* [size_is][in] */ BYTE buffer[ ], /* [out] */ SIZE_T *written); - - HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, ClearCurrentException) + HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( ICorDebugProcess * This, /* [in] */ DWORD threadID); - - HRESULT ( STDMETHODCALLTYPE *EnableLogMessages )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, EnableLogMessages) + HRESULT ( STDMETHODCALLTYPE *EnableLogMessages )( ICorDebugProcess * This, /* [in] */ BOOL fOnOff); - - HRESULT ( STDMETHODCALLTYPE *ModifyLogSwitch )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, ModifyLogSwitch) + HRESULT ( STDMETHODCALLTYPE *ModifyLogSwitch )( ICorDebugProcess * This, - /* [annotation][in] */ + /* [annotation][in] */ _In_ WCHAR *pLogSwitchName, /* [in] */ LONG lLevel); - - HRESULT ( STDMETHODCALLTYPE *EnumerateAppDomains )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, EnumerateAppDomains) + HRESULT ( STDMETHODCALLTYPE *EnumerateAppDomains )( ICorDebugProcess * This, /* [out] */ ICorDebugAppDomainEnum **ppAppDomains); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, GetObject) + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugProcess * This, /* [out] */ ICorDebugValue **ppObject); - - HRESULT ( STDMETHODCALLTYPE *ThreadForFiberCookie )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, ThreadForFiberCookie) + HRESULT ( STDMETHODCALLTYPE *ThreadForFiberCookie )( ICorDebugProcess * This, /* [in] */ DWORD fiberCookie, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetHelperThreadID )( + + DECLSPEC_XFGVIRT(ICorDebugProcess, GetHelperThreadID) + HRESULT ( STDMETHODCALLTYPE *GetHelperThreadID )( ICorDebugProcess * This, /* [out] */ DWORD *pThreadID); - + END_INTERFACE } ICorDebugProcessVtbl; @@ -6841,116 +7168,116 @@ EXTERN_C const IID IID_ICorDebugProcess; CONST_VTBL struct ICorDebugProcessVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess_Stop(This,dwTimeoutIgnored) \ - ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) +#define ICorDebugProcess_Stop(This,dwTimeoutIgnored) \ + ( (This)->lpVtbl -> Stop(This,dwTimeoutIgnored) ) -#define ICorDebugProcess_Continue(This,fIsOutOfBand) \ - ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) +#define ICorDebugProcess_Continue(This,fIsOutOfBand) \ + ( (This)->lpVtbl -> Continue(This,fIsOutOfBand) ) -#define ICorDebugProcess_IsRunning(This,pbRunning) \ - ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) +#define ICorDebugProcess_IsRunning(This,pbRunning) \ + ( (This)->lpVtbl -> IsRunning(This,pbRunning) ) -#define ICorDebugProcess_HasQueuedCallbacks(This,pThread,pbQueued) \ - ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) +#define ICorDebugProcess_HasQueuedCallbacks(This,pThread,pbQueued) \ + ( (This)->lpVtbl -> HasQueuedCallbacks(This,pThread,pbQueued) ) -#define ICorDebugProcess_EnumerateThreads(This,ppThreads) \ - ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) +#define ICorDebugProcess_EnumerateThreads(This,ppThreads) \ + ( (This)->lpVtbl -> EnumerateThreads(This,ppThreads) ) -#define ICorDebugProcess_SetAllThreadsDebugState(This,state,pExceptThisThread) \ - ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) +#define ICorDebugProcess_SetAllThreadsDebugState(This,state,pExceptThisThread) \ + ( (This)->lpVtbl -> SetAllThreadsDebugState(This,state,pExceptThisThread) ) -#define ICorDebugProcess_Detach(This) \ - ( (This)->lpVtbl -> Detach(This) ) +#define ICorDebugProcess_Detach(This) \ + ( (This)->lpVtbl -> Detach(This) ) -#define ICorDebugProcess_Terminate(This,exitCode) \ - ( (This)->lpVtbl -> Terminate(This,exitCode) ) +#define ICorDebugProcess_Terminate(This,exitCode) \ + ( (This)->lpVtbl -> Terminate(This,exitCode) ) -#define ICorDebugProcess_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugProcess_CanCommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CanCommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugProcess_CommitChanges(This,cSnapshots,pSnapshots,pError) \ - ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) +#define ICorDebugProcess_CommitChanges(This,cSnapshots,pSnapshots,pError) \ + ( (This)->lpVtbl -> CommitChanges(This,cSnapshots,pSnapshots,pError) ) -#define ICorDebugProcess_GetID(This,pdwProcessId) \ - ( (This)->lpVtbl -> GetID(This,pdwProcessId) ) +#define ICorDebugProcess_GetID(This,pdwProcessId) \ + ( (This)->lpVtbl -> GetID(This,pdwProcessId) ) -#define ICorDebugProcess_GetHandle(This,phProcessHandle) \ - ( (This)->lpVtbl -> GetHandle(This,phProcessHandle) ) +#define ICorDebugProcess_GetHandle(This,phProcessHandle) \ + ( (This)->lpVtbl -> GetHandle(This,phProcessHandle) ) -#define ICorDebugProcess_GetThread(This,dwThreadId,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,dwThreadId,ppThread) ) +#define ICorDebugProcess_GetThread(This,dwThreadId,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,dwThreadId,ppThread) ) -#define ICorDebugProcess_EnumerateObjects(This,ppObjects) \ - ( (This)->lpVtbl -> EnumerateObjects(This,ppObjects) ) +#define ICorDebugProcess_EnumerateObjects(This,ppObjects) \ + ( (This)->lpVtbl -> EnumerateObjects(This,ppObjects) ) -#define ICorDebugProcess_IsTransitionStub(This,address,pbTransitionStub) \ - ( (This)->lpVtbl -> IsTransitionStub(This,address,pbTransitionStub) ) +#define ICorDebugProcess_IsTransitionStub(This,address,pbTransitionStub) \ + ( (This)->lpVtbl -> IsTransitionStub(This,address,pbTransitionStub) ) -#define ICorDebugProcess_IsOSSuspended(This,threadID,pbSuspended) \ - ( (This)->lpVtbl -> IsOSSuspended(This,threadID,pbSuspended) ) +#define ICorDebugProcess_IsOSSuspended(This,threadID,pbSuspended) \ + ( (This)->lpVtbl -> IsOSSuspended(This,threadID,pbSuspended) ) -#define ICorDebugProcess_GetThreadContext(This,threadID,contextSize,context) \ - ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextSize,context) ) +#define ICorDebugProcess_GetThreadContext(This,threadID,contextSize,context) \ + ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextSize,context) ) -#define ICorDebugProcess_SetThreadContext(This,threadID,contextSize,context) \ - ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) ) +#define ICorDebugProcess_SetThreadContext(This,threadID,contextSize,context) \ + ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) ) -#define ICorDebugProcess_ReadMemory(This,address,size,buffer,read) \ - ( (This)->lpVtbl -> ReadMemory(This,address,size,buffer,read) ) +#define ICorDebugProcess_ReadMemory(This,address,size,buffer,read) \ + ( (This)->lpVtbl -> ReadMemory(This,address,size,buffer,read) ) -#define ICorDebugProcess_WriteMemory(This,address,size,buffer,written) \ - ( (This)->lpVtbl -> WriteMemory(This,address,size,buffer,written) ) +#define ICorDebugProcess_WriteMemory(This,address,size,buffer,written) \ + ( (This)->lpVtbl -> WriteMemory(This,address,size,buffer,written) ) -#define ICorDebugProcess_ClearCurrentException(This,threadID) \ - ( (This)->lpVtbl -> ClearCurrentException(This,threadID) ) +#define ICorDebugProcess_ClearCurrentException(This,threadID) \ + ( (This)->lpVtbl -> ClearCurrentException(This,threadID) ) -#define ICorDebugProcess_EnableLogMessages(This,fOnOff) \ - ( (This)->lpVtbl -> EnableLogMessages(This,fOnOff) ) +#define ICorDebugProcess_EnableLogMessages(This,fOnOff) \ + ( (This)->lpVtbl -> EnableLogMessages(This,fOnOff) ) -#define ICorDebugProcess_ModifyLogSwitch(This,pLogSwitchName,lLevel) \ - ( (This)->lpVtbl -> ModifyLogSwitch(This,pLogSwitchName,lLevel) ) +#define ICorDebugProcess_ModifyLogSwitch(This,pLogSwitchName,lLevel) \ + ( (This)->lpVtbl -> ModifyLogSwitch(This,pLogSwitchName,lLevel) ) -#define ICorDebugProcess_EnumerateAppDomains(This,ppAppDomains) \ - ( (This)->lpVtbl -> EnumerateAppDomains(This,ppAppDomains) ) +#define ICorDebugProcess_EnumerateAppDomains(This,ppAppDomains) \ + ( (This)->lpVtbl -> EnumerateAppDomains(This,ppAppDomains) ) -#define ICorDebugProcess_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) +#define ICorDebugProcess_GetObject(This,ppObject) \ + ( (This)->lpVtbl -> GetObject(This,ppObject) ) -#define ICorDebugProcess_ThreadForFiberCookie(This,fiberCookie,ppThread) \ - ( (This)->lpVtbl -> ThreadForFiberCookie(This,fiberCookie,ppThread) ) +#define ICorDebugProcess_ThreadForFiberCookie(This,fiberCookie,ppThread) \ + ( (This)->lpVtbl -> ThreadForFiberCookie(This,fiberCookie,ppThread) ) -#define ICorDebugProcess_GetHelperThreadID(This,pThreadID) \ - ( (This)->lpVtbl -> GetHelperThreadID(This,pThreadID) ) +#define ICorDebugProcess_GetHelperThreadID(This,pThreadID) \ + ( (This)->lpVtbl -> GetHelperThreadID(This,pThreadID) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0037 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -6962,97 +7289,107 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0037_v0_0_s_ifspec; #define __ICorDebugProcess2_INTERFACE_DEFINED__ /* interface ICorDebugProcess2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AD1B3588-0EF0-4744-A496-AA09A9F80371") ICorDebugProcess2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetThreadForTaskID( + virtual HRESULT STDMETHODCALLTYPE GetThreadForTaskID( /* [in] */ TASKID taskid, /* [out] */ ICorDebugThread2 **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersion( + + virtual HRESULT STDMETHODCALLTYPE GetVersion( /* [out] */ COR_VERSION *version) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnmanagedBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE SetUnmanagedBreakpoint( /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG32 bufsize, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *bufLen) = 0; - - virtual HRESULT STDMETHODCALLTYPE ClearUnmanagedBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE ClearUnmanagedBreakpoint( /* [in] */ CORDB_ADDRESS address) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDesiredNGENCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE SetDesiredNGENCompilerFlags( /* [in] */ DWORD pdwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDesiredNGENCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE GetDesiredNGENCompilerFlags( /* [out] */ DWORD *pdwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetReferenceValueFromGCHandle( + + virtual HRESULT STDMETHODCALLTYPE GetReferenceValueFromGCHandle( /* [in] */ UINT_PTR handle, /* [out] */ ICorDebugReferenceValue **pOutValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetThreadForTaskID )( + + DECLSPEC_XFGVIRT(ICorDebugProcess2, GetThreadForTaskID) + HRESULT ( STDMETHODCALLTYPE *GetThreadForTaskID )( ICorDebugProcess2 * This, /* [in] */ TASKID taskid, /* [out] */ ICorDebugThread2 **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetVersion )( + + DECLSPEC_XFGVIRT(ICorDebugProcess2, GetVersion) + HRESULT ( STDMETHODCALLTYPE *GetVersion )( ICorDebugProcess2 * This, /* [out] */ COR_VERSION *version); - - HRESULT ( STDMETHODCALLTYPE *SetUnmanagedBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugProcess2, SetUnmanagedBreakpoint) + HRESULT ( STDMETHODCALLTYPE *SetUnmanagedBreakpoint )( ICorDebugProcess2 * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG32 bufsize, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *bufLen); - - HRESULT ( STDMETHODCALLTYPE *ClearUnmanagedBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugProcess2, ClearUnmanagedBreakpoint) + HRESULT ( STDMETHODCALLTYPE *ClearUnmanagedBreakpoint )( ICorDebugProcess2 * This, /* [in] */ CORDB_ADDRESS address); - - HRESULT ( STDMETHODCALLTYPE *SetDesiredNGENCompilerFlags )( + + DECLSPEC_XFGVIRT(ICorDebugProcess2, SetDesiredNGENCompilerFlags) + HRESULT ( STDMETHODCALLTYPE *SetDesiredNGENCompilerFlags )( ICorDebugProcess2 * This, /* [in] */ DWORD pdwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetDesiredNGENCompilerFlags )( + + DECLSPEC_XFGVIRT(ICorDebugProcess2, GetDesiredNGENCompilerFlags) + HRESULT ( STDMETHODCALLTYPE *GetDesiredNGENCompilerFlags )( ICorDebugProcess2 * This, /* [out] */ DWORD *pdwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetReferenceValueFromGCHandle )( + + DECLSPEC_XFGVIRT(ICorDebugProcess2, GetReferenceValueFromGCHandle) + HRESULT ( STDMETHODCALLTYPE *GetReferenceValueFromGCHandle )( ICorDebugProcess2 * This, /* [in] */ UINT_PTR handle, /* [out] */ ICorDebugReferenceValue **pOutValue); - + END_INTERFACE } ICorDebugProcess2Vtbl; @@ -7061,98 +7398,102 @@ EXTERN_C const IID IID_ICorDebugProcess2; CONST_VTBL struct ICorDebugProcess2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess2_GetThreadForTaskID(This,taskid,ppThread) \ - ( (This)->lpVtbl -> GetThreadForTaskID(This,taskid,ppThread) ) +#define ICorDebugProcess2_GetThreadForTaskID(This,taskid,ppThread) \ + ( (This)->lpVtbl -> GetThreadForTaskID(This,taskid,ppThread) ) -#define ICorDebugProcess2_GetVersion(This,version) \ - ( (This)->lpVtbl -> GetVersion(This,version) ) +#define ICorDebugProcess2_GetVersion(This,version) \ + ( (This)->lpVtbl -> GetVersion(This,version) ) -#define ICorDebugProcess2_SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) \ - ( (This)->lpVtbl -> SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) ) +#define ICorDebugProcess2_SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) \ + ( (This)->lpVtbl -> SetUnmanagedBreakpoint(This,address,bufsize,buffer,bufLen) ) -#define ICorDebugProcess2_ClearUnmanagedBreakpoint(This,address) \ - ( (This)->lpVtbl -> ClearUnmanagedBreakpoint(This,address) ) +#define ICorDebugProcess2_ClearUnmanagedBreakpoint(This,address) \ + ( (This)->lpVtbl -> ClearUnmanagedBreakpoint(This,address) ) -#define ICorDebugProcess2_SetDesiredNGENCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> SetDesiredNGENCompilerFlags(This,pdwFlags) ) +#define ICorDebugProcess2_SetDesiredNGENCompilerFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> SetDesiredNGENCompilerFlags(This,pdwFlags) ) -#define ICorDebugProcess2_GetDesiredNGENCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetDesiredNGENCompilerFlags(This,pdwFlags) ) +#define ICorDebugProcess2_GetDesiredNGENCompilerFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> GetDesiredNGENCompilerFlags(This,pdwFlags) ) -#define ICorDebugProcess2_GetReferenceValueFromGCHandle(This,handle,pOutValue) \ - ( (This)->lpVtbl -> GetReferenceValueFromGCHandle(This,handle,pOutValue) ) +#define ICorDebugProcess2_GetReferenceValueFromGCHandle(This,handle,pOutValue) \ + ( (This)->lpVtbl -> GetReferenceValueFromGCHandle(This,handle,pOutValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess3_INTERFACE_DEFINED__ #define __ICorDebugProcess3_INTERFACE_DEFINED__ /* interface ICorDebugProcess3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2EE06488-C0D4-42B1-B26D-F3795EF606FB") ICorDebugProcess3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetEnableCustomNotification( + virtual HRESULT STDMETHODCALLTYPE SetEnableCustomNotification( ICorDebugClass *pClass, BOOL fEnable) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess3 * This); - - HRESULT ( STDMETHODCALLTYPE *SetEnableCustomNotification )( + + DECLSPEC_XFGVIRT(ICorDebugProcess3, SetEnableCustomNotification) + HRESULT ( STDMETHODCALLTYPE *SetEnableCustomNotification )( ICorDebugProcess3 * This, ICorDebugClass *pClass, BOOL fEnable); - + END_INTERFACE } ICorDebugProcess3Vtbl; @@ -7161,175 +7502,190 @@ EXTERN_C const IID IID_ICorDebugProcess3; CONST_VTBL struct ICorDebugProcess3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess3_SetEnableCustomNotification(This,pClass,fEnable) \ - ( (This)->lpVtbl -> SetEnableCustomNotification(This,pClass,fEnable) ) +#define ICorDebugProcess3_SetEnableCustomNotification(This,pClass,fEnable) \ + ( (This)->lpVtbl -> SetEnableCustomNotification(This,pClass,fEnable) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess5_INTERFACE_DEFINED__ #define __ICorDebugProcess5_INTERFACE_DEFINED__ /* interface ICorDebugProcess5 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess5; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("21e9d9c0-fcb8-11df-8cff-0800200c9a66") ICorDebugProcess5 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetGCHeapInformation( + virtual HRESULT STDMETHODCALLTYPE GetGCHeapInformation( /* [out] */ COR_HEAPINFO *pHeapInfo) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateHeap( + + virtual HRESULT STDMETHODCALLTYPE EnumerateHeap( /* [out] */ ICorDebugHeapEnum **ppObjects) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateHeapRegions( + + virtual HRESULT STDMETHODCALLTYPE EnumerateHeapRegions( /* [out] */ ICorDebugHeapSegmentEnum **ppRegions) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [in] */ CORDB_ADDRESS addr, /* [out] */ ICorDebugObjectValue **pObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateGCReferences( + + virtual HRESULT STDMETHODCALLTYPE EnumerateGCReferences( /* [in] */ BOOL enumerateWeakReferences, /* [out] */ ICorDebugGCReferenceEnum **ppEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateHandles( + + virtual HRESULT STDMETHODCALLTYPE EnumerateHandles( /* [in] */ CorGCReferenceType types, /* [out] */ ICorDebugGCReferenceEnum **ppEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeID( + + virtual HRESULT STDMETHODCALLTYPE GetTypeID( /* [in] */ CORDB_ADDRESS obj, /* [out] */ COR_TYPEID *pId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeForTypeID( + + virtual HRESULT STDMETHODCALLTYPE GetTypeForTypeID( /* [in] */ COR_TYPEID id, /* [out] */ ICorDebugType **ppType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetArrayLayout( + + virtual HRESULT STDMETHODCALLTYPE GetArrayLayout( /* [in] */ COR_TYPEID id, /* [out] */ COR_ARRAY_LAYOUT *pLayout) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeLayout( + + virtual HRESULT STDMETHODCALLTYPE GetTypeLayout( /* [in] */ COR_TYPEID id, /* [out] */ COR_TYPE_LAYOUT *pLayout) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTypeFields( + + virtual HRESULT STDMETHODCALLTYPE GetTypeFields( /* [in] */ COR_TYPEID id, ULONG32 celt, COR_FIELD fields[ ], ULONG32 *pceltNeeded) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableNGENPolicy( + + virtual HRESULT STDMETHODCALLTYPE EnableNGENPolicy( /* [in] */ CorDebugNGENPolicy ePolicy) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess5Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess5 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess5 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess5 * This); - - HRESULT ( STDMETHODCALLTYPE *GetGCHeapInformation )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, GetGCHeapInformation) + HRESULT ( STDMETHODCALLTYPE *GetGCHeapInformation )( ICorDebugProcess5 * This, /* [out] */ COR_HEAPINFO *pHeapInfo); - - HRESULT ( STDMETHODCALLTYPE *EnumerateHeap )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, EnumerateHeap) + HRESULT ( STDMETHODCALLTYPE *EnumerateHeap )( ICorDebugProcess5 * This, /* [out] */ ICorDebugHeapEnum **ppObjects); - - HRESULT ( STDMETHODCALLTYPE *EnumerateHeapRegions )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, EnumerateHeapRegions) + HRESULT ( STDMETHODCALLTYPE *EnumerateHeapRegions )( ICorDebugProcess5 * This, /* [out] */ ICorDebugHeapSegmentEnum **ppRegions); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, GetObject) + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugProcess5 * This, /* [in] */ CORDB_ADDRESS addr, /* [out] */ ICorDebugObjectValue **pObject); - - HRESULT ( STDMETHODCALLTYPE *EnumerateGCReferences )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, EnumerateGCReferences) + HRESULT ( STDMETHODCALLTYPE *EnumerateGCReferences )( ICorDebugProcess5 * This, /* [in] */ BOOL enumerateWeakReferences, /* [out] */ ICorDebugGCReferenceEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *EnumerateHandles )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, EnumerateHandles) + HRESULT ( STDMETHODCALLTYPE *EnumerateHandles )( ICorDebugProcess5 * This, /* [in] */ CorGCReferenceType types, /* [out] */ ICorDebugGCReferenceEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetTypeID )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, GetTypeID) + HRESULT ( STDMETHODCALLTYPE *GetTypeID )( ICorDebugProcess5 * This, /* [in] */ CORDB_ADDRESS obj, /* [out] */ COR_TYPEID *pId); - - HRESULT ( STDMETHODCALLTYPE *GetTypeForTypeID )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, GetTypeForTypeID) + HRESULT ( STDMETHODCALLTYPE *GetTypeForTypeID )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, /* [out] */ ICorDebugType **ppType); - - HRESULT ( STDMETHODCALLTYPE *GetArrayLayout )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, GetArrayLayout) + HRESULT ( STDMETHODCALLTYPE *GetArrayLayout )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, /* [out] */ COR_ARRAY_LAYOUT *pLayout); - - HRESULT ( STDMETHODCALLTYPE *GetTypeLayout )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, GetTypeLayout) + HRESULT ( STDMETHODCALLTYPE *GetTypeLayout )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, /* [out] */ COR_TYPE_LAYOUT *pLayout); - - HRESULT ( STDMETHODCALLTYPE *GetTypeFields )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, GetTypeFields) + HRESULT ( STDMETHODCALLTYPE *GetTypeFields )( ICorDebugProcess5 * This, /* [in] */ COR_TYPEID id, ULONG32 celt, COR_FIELD fields[ ], ULONG32 *pceltNeeded); - - HRESULT ( STDMETHODCALLTYPE *EnableNGENPolicy )( + + DECLSPEC_XFGVIRT(ICorDebugProcess5, EnableNGENPolicy) + HRESULT ( STDMETHODCALLTYPE *EnableNGENPolicy )( ICorDebugProcess5 * This, /* [in] */ CorDebugNGENPolicy ePolicy); - + END_INTERFACE } ICorDebugProcess5Vtbl; @@ -7338,101 +7694,101 @@ EXTERN_C const IID IID_ICorDebugProcess5; CONST_VTBL struct ICorDebugProcess5Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess5_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess5_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess5_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess5_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess5_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess5_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess5_GetGCHeapInformation(This,pHeapInfo) \ - ( (This)->lpVtbl -> GetGCHeapInformation(This,pHeapInfo) ) +#define ICorDebugProcess5_GetGCHeapInformation(This,pHeapInfo) \ + ( (This)->lpVtbl -> GetGCHeapInformation(This,pHeapInfo) ) -#define ICorDebugProcess5_EnumerateHeap(This,ppObjects) \ - ( (This)->lpVtbl -> EnumerateHeap(This,ppObjects) ) +#define ICorDebugProcess5_EnumerateHeap(This,ppObjects) \ + ( (This)->lpVtbl -> EnumerateHeap(This,ppObjects) ) -#define ICorDebugProcess5_EnumerateHeapRegions(This,ppRegions) \ - ( (This)->lpVtbl -> EnumerateHeapRegions(This,ppRegions) ) +#define ICorDebugProcess5_EnumerateHeapRegions(This,ppRegions) \ + ( (This)->lpVtbl -> EnumerateHeapRegions(This,ppRegions) ) -#define ICorDebugProcess5_GetObject(This,addr,pObject) \ - ( (This)->lpVtbl -> GetObject(This,addr,pObject) ) +#define ICorDebugProcess5_GetObject(This,addr,pObject) \ + ( (This)->lpVtbl -> GetObject(This,addr,pObject) ) -#define ICorDebugProcess5_EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) \ - ( (This)->lpVtbl -> EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) ) +#define ICorDebugProcess5_EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) \ + ( (This)->lpVtbl -> EnumerateGCReferences(This,enumerateWeakReferences,ppEnum) ) -#define ICorDebugProcess5_EnumerateHandles(This,types,ppEnum) \ - ( (This)->lpVtbl -> EnumerateHandles(This,types,ppEnum) ) +#define ICorDebugProcess5_EnumerateHandles(This,types,ppEnum) \ + ( (This)->lpVtbl -> EnumerateHandles(This,types,ppEnum) ) -#define ICorDebugProcess5_GetTypeID(This,obj,pId) \ - ( (This)->lpVtbl -> GetTypeID(This,obj,pId) ) +#define ICorDebugProcess5_GetTypeID(This,obj,pId) \ + ( (This)->lpVtbl -> GetTypeID(This,obj,pId) ) -#define ICorDebugProcess5_GetTypeForTypeID(This,id,ppType) \ - ( (This)->lpVtbl -> GetTypeForTypeID(This,id,ppType) ) +#define ICorDebugProcess5_GetTypeForTypeID(This,id,ppType) \ + ( (This)->lpVtbl -> GetTypeForTypeID(This,id,ppType) ) -#define ICorDebugProcess5_GetArrayLayout(This,id,pLayout) \ - ( (This)->lpVtbl -> GetArrayLayout(This,id,pLayout) ) +#define ICorDebugProcess5_GetArrayLayout(This,id,pLayout) \ + ( (This)->lpVtbl -> GetArrayLayout(This,id,pLayout) ) -#define ICorDebugProcess5_GetTypeLayout(This,id,pLayout) \ - ( (This)->lpVtbl -> GetTypeLayout(This,id,pLayout) ) +#define ICorDebugProcess5_GetTypeLayout(This,id,pLayout) \ + ( (This)->lpVtbl -> GetTypeLayout(This,id,pLayout) ) -#define ICorDebugProcess5_GetTypeFields(This,id,celt,fields,pceltNeeded) \ - ( (This)->lpVtbl -> GetTypeFields(This,id,celt,fields,pceltNeeded) ) +#define ICorDebugProcess5_GetTypeFields(This,id,celt,fields,pceltNeeded) \ + ( (This)->lpVtbl -> GetTypeFields(This,id,celt,fields,pceltNeeded) ) -#define ICorDebugProcess5_EnableNGENPolicy(This,ePolicy) \ - ( (This)->lpVtbl -> EnableNGENPolicy(This,ePolicy) ) +#define ICorDebugProcess5_EnableNGENPolicy(This,ePolicy) \ + ( (This)->lpVtbl -> EnableNGENPolicy(This,ePolicy) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess5_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess5_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0040 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugRecordFormat { - FORMAT_WINDOWS_EXCEPTIONRECORD32 = 1, - FORMAT_WINDOWS_EXCEPTIONRECORD64 = 2 - } CorDebugRecordFormat; + FORMAT_WINDOWS_EXCEPTIONRECORD32 = 1, + FORMAT_WINDOWS_EXCEPTIONRECORD64 = 2 + } CorDebugRecordFormat; -typedef +typedef enum CorDebugDecodeEventFlagsWindows { - IS_FIRST_CHANCE = 1 - } CorDebugDecodeEventFlagsWindows; + IS_FIRST_CHANCE = 1 + } CorDebugDecodeEventFlagsWindows; -typedef +typedef enum CorDebugDebugEventKind { - DEBUG_EVENT_KIND_MODULE_LOADED = 1, - DEBUG_EVENT_KIND_MODULE_UNLOADED = 2, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_FIRST_CHANCE = 3, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_USER_FIRST_CHANCE = 4, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_CATCH_HANDLER_FOUND = 5, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED = 6 - } CorDebugDebugEventKind; + DEBUG_EVENT_KIND_MODULE_LOADED = 1, + DEBUG_EVENT_KIND_MODULE_UNLOADED = 2, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_FIRST_CHANCE = 3, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_USER_FIRST_CHANCE = 4, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_CATCH_HANDLER_FOUND = 5, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED = 6 + } CorDebugDebugEventKind; -typedef +typedef enum CorDebugStateChange { - PROCESS_RUNNING = 0x1, - FLUSH_ALL = 0x2 - } CorDebugStateChange; + PROCESS_RUNNING = 0x1, + FLUSH_ALL = 0x2 + } CorDebugStateChange; @@ -7443,52 +7799,57 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0040_v0_0_s_ifspec; #define __ICorDebugDebugEvent_INTERFACE_DEFINED__ /* interface ICorDebugDebugEvent */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugDebugEvent; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("41BD395D-DE99-48F1-BF7A-CC0F44A6D281") ICorDebugDebugEvent : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetEventKind( + virtual HRESULT STDMETHODCALLTYPE GetEventKind( /* [out] */ CorDebugDebugEventKind *pDebugEventKind) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThread( + + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [out] */ ICorDebugThread **ppThread) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDebugEventVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDebugEvent * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDebugEvent * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDebugEvent * This); - - HRESULT ( STDMETHODCALLTYPE *GetEventKind )( + + DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetEventKind) + HRESULT ( STDMETHODCALLTYPE *GetEventKind )( ICorDebugDebugEvent * This, /* [out] */ CorDebugDebugEventKind *pDebugEventKind); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetThread) + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugDebugEvent * This, /* [out] */ ICorDebugThread **ppThread); - + END_INTERFACE } ICorDebugDebugEventVtbl; @@ -7497,57 +7858,57 @@ EXTERN_C const IID IID_ICorDebugDebugEvent; CONST_VTBL struct ICorDebugDebugEventVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDebugEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDebugEvent_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDebugEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDebugEvent_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDebugEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDebugEvent_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDebugEvent_GetEventKind(This,pDebugEventKind) \ - ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) +#define ICorDebugDebugEvent_GetEventKind(This,pDebugEventKind) \ + ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) -#define ICorDebugDebugEvent_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugDebugEvent_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDebugEvent_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDebugEvent_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0041 */ -/* [local] */ +/* [local] */ -typedef +typedef enum CorDebugCodeInvokeKind { - CODE_INVOKE_KIND_NONE = 0, - CODE_INVOKE_KIND_RETURN = ( CODE_INVOKE_KIND_NONE + 1 ) , - CODE_INVOKE_KIND_TAILCALL = ( CODE_INVOKE_KIND_RETURN + 1 ) - } CorDebugCodeInvokeKind; + CODE_INVOKE_KIND_NONE = 0, + CODE_INVOKE_KIND_RETURN = ( CODE_INVOKE_KIND_NONE + 1 ) , + CODE_INVOKE_KIND_TAILCALL = ( CODE_INVOKE_KIND_RETURN + 1 ) + } CorDebugCodeInvokeKind; -typedef +typedef enum CorDebugCodeInvokePurpose { - CODE_INVOKE_PURPOSE_NONE = 0, - CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION = ( CODE_INVOKE_PURPOSE_NONE + 1 ) , - CODE_INVOKE_PURPOSE_CLASS_INIT = ( CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION + 1 ) , - CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH = ( CODE_INVOKE_PURPOSE_CLASS_INIT + 1 ) - } CorDebugCodeInvokePurpose; + CODE_INVOKE_PURPOSE_NONE = 0, + CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION = ( CODE_INVOKE_PURPOSE_NONE + 1 ) , + CODE_INVOKE_PURPOSE_CLASS_INIT = ( CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION + 1 ) , + CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH = ( CODE_INVOKE_PURPOSE_CLASS_INIT + 1 ) + } CorDebugCodeInvokePurpose; @@ -7558,65 +7919,69 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0041_v0_0_s_ifspec; #define __ICorDebugProcess6_INTERFACE_DEFINED__ /* interface ICorDebugProcess6 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess6; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("11588775-7205-4CEB-A41A-93753C3153E9") ICorDebugProcess6 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE DecodeEvent( + virtual HRESULT STDMETHODCALLTYPE DecodeEvent( /* [size_is][length_is][in] */ const BYTE pRecord[ ], /* [in] */ DWORD countBytes, /* [in] */ CorDebugRecordFormat format, /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugDebugEvent **ppEvent) = 0; - - virtual HRESULT STDMETHODCALLTYPE ProcessStateChanged( + + virtual HRESULT STDMETHODCALLTYPE ProcessStateChanged( /* [in] */ CorDebugStateChange change) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCode( + + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [in] */ CORDB_ADDRESS codeAddress, /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableVirtualModuleSplitting( + + virtual HRESULT STDMETHODCALLTYPE EnableVirtualModuleSplitting( BOOL enableSplitting) = 0; - - virtual HRESULT STDMETHODCALLTYPE MarkDebuggerAttached( + + virtual HRESULT STDMETHODCALLTYPE MarkDebuggerAttached( BOOL fIsAttached) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetExportStepInfo( + + virtual HRESULT STDMETHODCALLTYPE GetExportStepInfo( /* [in] */ LPCWSTR pszExportName, /* [out] */ CorDebugCodeInvokeKind *pInvokeKind, /* [out] */ CorDebugCodeInvokePurpose *pInvokePurpose) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess6Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess6 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess6 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess6 * This); - - HRESULT ( STDMETHODCALLTYPE *DecodeEvent )( + + DECLSPEC_XFGVIRT(ICorDebugProcess6, DecodeEvent) + HRESULT ( STDMETHODCALLTYPE *DecodeEvent )( ICorDebugProcess6 * This, /* [size_is][length_is][in] */ const BYTE pRecord[ ], /* [in] */ DWORD countBytes, @@ -7624,30 +7989,35 @@ EXTERN_C const IID IID_ICorDebugProcess6; /* [in] */ DWORD dwFlags, /* [in] */ DWORD dwThreadId, /* [out] */ ICorDebugDebugEvent **ppEvent); - - HRESULT ( STDMETHODCALLTYPE *ProcessStateChanged )( + + DECLSPEC_XFGVIRT(ICorDebugProcess6, ProcessStateChanged) + HRESULT ( STDMETHODCALLTYPE *ProcessStateChanged )( ICorDebugProcess6 * This, /* [in] */ CorDebugStateChange change); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + DECLSPEC_XFGVIRT(ICorDebugProcess6, GetCode) + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugProcess6 * This, /* [in] */ CORDB_ADDRESS codeAddress, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *EnableVirtualModuleSplitting )( + + DECLSPEC_XFGVIRT(ICorDebugProcess6, EnableVirtualModuleSplitting) + HRESULT ( STDMETHODCALLTYPE *EnableVirtualModuleSplitting )( ICorDebugProcess6 * This, BOOL enableSplitting); - - HRESULT ( STDMETHODCALLTYPE *MarkDebuggerAttached )( + + DECLSPEC_XFGVIRT(ICorDebugProcess6, MarkDebuggerAttached) + HRESULT ( STDMETHODCALLTYPE *MarkDebuggerAttached )( ICorDebugProcess6 * This, BOOL fIsAttached); - - HRESULT ( STDMETHODCALLTYPE *GetExportStepInfo )( + + DECLSPEC_XFGVIRT(ICorDebugProcess6, GetExportStepInfo) + HRESULT ( STDMETHODCALLTYPE *GetExportStepInfo )( ICorDebugProcess6 * This, /* [in] */ LPCWSTR pszExportName, /* [out] */ CorDebugCodeInvokeKind *pInvokeKind, /* [out] */ CorDebugCodeInvokePurpose *pInvokePurpose); - + END_INTERFACE } ICorDebugProcess6Vtbl; @@ -7656,59 +8026,59 @@ EXTERN_C const IID IID_ICorDebugProcess6; CONST_VTBL struct ICorDebugProcess6Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess6_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess6_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess6_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess6_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess6_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess6_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess6_DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) \ - ( (This)->lpVtbl -> DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) ) +#define ICorDebugProcess6_DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) \ + ( (This)->lpVtbl -> DecodeEvent(This,pRecord,countBytes,format,dwFlags,dwThreadId,ppEvent) ) -#define ICorDebugProcess6_ProcessStateChanged(This,change) \ - ( (This)->lpVtbl -> ProcessStateChanged(This,change) ) +#define ICorDebugProcess6_ProcessStateChanged(This,change) \ + ( (This)->lpVtbl -> ProcessStateChanged(This,change) ) -#define ICorDebugProcess6_GetCode(This,codeAddress,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,codeAddress,ppCode) ) +#define ICorDebugProcess6_GetCode(This,codeAddress,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,codeAddress,ppCode) ) -#define ICorDebugProcess6_EnableVirtualModuleSplitting(This,enableSplitting) \ - ( (This)->lpVtbl -> EnableVirtualModuleSplitting(This,enableSplitting) ) +#define ICorDebugProcess6_EnableVirtualModuleSplitting(This,enableSplitting) \ + ( (This)->lpVtbl -> EnableVirtualModuleSplitting(This,enableSplitting) ) -#define ICorDebugProcess6_MarkDebuggerAttached(This,fIsAttached) \ - ( (This)->lpVtbl -> MarkDebuggerAttached(This,fIsAttached) ) +#define ICorDebugProcess6_MarkDebuggerAttached(This,fIsAttached) \ + ( (This)->lpVtbl -> MarkDebuggerAttached(This,fIsAttached) ) -#define ICorDebugProcess6_GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) \ - ( (This)->lpVtbl -> GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) ) +#define ICorDebugProcess6_GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) \ + ( (This)->lpVtbl -> GetExportStepInfo(This,pszExportName,pInvokeKind,pInvokePurpose) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess6_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess6_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0042 */ -/* [local] */ +/* [local] */ -typedef +typedef enum WriteableMetadataUpdateMode { - LegacyCompatPolicy = 0, - AlwaysShowUpdates = ( LegacyCompatPolicy + 1 ) - } WriteableMetadataUpdateMode; + LegacyCompatPolicy = 0, + AlwaysShowUpdates = ( LegacyCompatPolicy + 1 ) + } WriteableMetadataUpdateMode; @@ -7719,45 +8089,49 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0042_v0_0_s_ifspec; #define __ICorDebugProcess7_INTERFACE_DEFINED__ /* interface ICorDebugProcess7 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess7; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("9B2C54E4-119F-4D6F-B402-527603266D69") ICorDebugProcess7 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetWriteableMetadataUpdateMode( + virtual HRESULT STDMETHODCALLTYPE SetWriteableMetadataUpdateMode( WriteableMetadataUpdateMode flags) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess7Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess7 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess7 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess7 * This); - - HRESULT ( STDMETHODCALLTYPE *SetWriteableMetadataUpdateMode )( + + DECLSPEC_XFGVIRT(ICorDebugProcess7, SetWriteableMetadataUpdateMode) + HRESULT ( STDMETHODCALLTYPE *SetWriteableMetadataUpdateMode )( ICorDebugProcess7 * This, WriteableMetadataUpdateMode flags); - + END_INTERFACE } ICorDebugProcess7Vtbl; @@ -7766,78 +8140,82 @@ EXTERN_C const IID IID_ICorDebugProcess7; CONST_VTBL struct ICorDebugProcess7Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess7_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess7_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess7_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess7_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess7_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess7_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess7_SetWriteableMetadataUpdateMode(This,flags) \ - ( (This)->lpVtbl -> SetWriteableMetadataUpdateMode(This,flags) ) +#define ICorDebugProcess7_SetWriteableMetadataUpdateMode(This,flags) \ + ( (This)->lpVtbl -> SetWriteableMetadataUpdateMode(This,flags) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess7_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess7_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess8_INTERFACE_DEFINED__ #define __ICorDebugProcess8_INTERFACE_DEFINED__ /* interface ICorDebugProcess8 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess8; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2E6F28C1-85EB-4141-80AD-0A90944B9639") ICorDebugProcess8 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnableExceptionCallbacksOutsideOfMyCode( + virtual HRESULT STDMETHODCALLTYPE EnableExceptionCallbacksOutsideOfMyCode( /* [in] */ BOOL enableExceptionsOutsideOfJMC) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess8Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess8 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess8 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess8 * This); - - HRESULT ( STDMETHODCALLTYPE *EnableExceptionCallbacksOutsideOfMyCode )( + + DECLSPEC_XFGVIRT(ICorDebugProcess8, EnableExceptionCallbacksOutsideOfMyCode) + HRESULT ( STDMETHODCALLTYPE *EnableExceptionCallbacksOutsideOfMyCode )( ICorDebugProcess8 * This, /* [in] */ BOOL enableExceptionsOutsideOfJMC); - + END_INTERFACE } ICorDebugProcess8Vtbl; @@ -7846,78 +8224,82 @@ EXTERN_C const IID IID_ICorDebugProcess8; CONST_VTBL struct ICorDebugProcess8Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess8_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess8_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess8_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess8_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess8_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess8_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess8_EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) \ - ( (This)->lpVtbl -> EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) ) +#define ICorDebugProcess8_EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) \ + ( (This)->lpVtbl -> EnableExceptionCallbacksOutsideOfMyCode(This,enableExceptionsOutsideOfJMC) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess8_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess8_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess10_INTERFACE_DEFINED__ #define __ICorDebugProcess10_INTERFACE_DEFINED__ /* interface ICorDebugProcess10 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess10; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("8F378F6F-1017-4461-9890-ECF64C54079F") ICorDebugProcess10 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnableGCNotificationEvents( + virtual HRESULT STDMETHODCALLTYPE EnableGCNotificationEvents( BOOL fEnable) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess10Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess10 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess10 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess10 * This); - - HRESULT ( STDMETHODCALLTYPE *EnableGCNotificationEvents )( + + DECLSPEC_XFGVIRT(ICorDebugProcess10, EnableGCNotificationEvents) + HRESULT ( STDMETHODCALLTYPE *EnableGCNotificationEvents )( ICorDebugProcess10 * This, BOOL fEnable); - + END_INTERFACE } ICorDebugProcess10Vtbl; @@ -7926,43 +8308,43 @@ EXTERN_C const IID IID_ICorDebugProcess10; CONST_VTBL struct ICorDebugProcess10Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess10_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess10_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess10_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess10_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess10_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess10_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess10_EnableGCNotificationEvents(This,fEnable) \ - ( (This)->lpVtbl -> EnableGCNotificationEvents(This,fEnable) ) +#define ICorDebugProcess10_EnableGCNotificationEvents(This,fEnable) \ + ( (This)->lpVtbl -> EnableGCNotificationEvents(This,fEnable) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess10_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess10_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0045 */ -/* [local] */ +/* [local] */ typedef struct _COR_MEMORY_RANGE { CORDB_ADDRESS start; CORDB_ADDRESS end; - } COR_MEMORY_RANGE; + } COR_MEMORY_RANGE; @@ -7973,64 +8355,72 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0045_v0_0_s_ifspec; #define __ICorDebugMemoryRangeEnum_INTERFACE_DEFINED__ /* interface ICorDebugMemoryRangeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugMemoryRangeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D1A0BCFC-5865-4437-BE3F-36F022951F8A") ICorDebugMemoryRangeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_MEMORY_RANGE objects[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMemoryRangeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMemoryRangeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMemoryRangeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMemoryRangeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugMemoryRangeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugMemoryRangeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugMemoryRangeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugMemoryRangeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugMemoryRangeEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugMemoryRangeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ COR_MEMORY_RANGE objects[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugMemoryRangeEnumVtbl; @@ -8039,91 +8429,95 @@ EXTERN_C const IID IID_ICorDebugMemoryRangeEnum; CONST_VTBL struct ICorDebugMemoryRangeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMemoryRangeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMemoryRangeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMemoryRangeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMemoryRangeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMemoryRangeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMemoryRangeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMemoryRangeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugMemoryRangeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugMemoryRangeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugMemoryRangeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugMemoryRangeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugMemoryRangeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugMemoryRangeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugMemoryRangeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugMemoryRangeEnum_Next(This,celt,objects,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) +#define ICorDebugMemoryRangeEnum_Next(This,celt,objects,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMemoryRangeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMemoryRangeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcess11_INTERFACE_DEFINED__ #define __ICorDebugProcess11_INTERFACE_DEFINED__ /* interface ICorDebugProcess11 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcess11; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("344B37AA-F2C0-4D3B-9909-91CCF787DA8C") ICorDebugProcess11 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateLoaderHeapMemoryRegions( + virtual HRESULT STDMETHODCALLTYPE EnumerateLoaderHeapMemoryRegions( /* [out] */ ICorDebugMemoryRangeEnum **ppRanges) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcess11Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcess11 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcess11 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcess11 * This); - - HRESULT ( STDMETHODCALLTYPE *EnumerateLoaderHeapMemoryRegions )( + + DECLSPEC_XFGVIRT(ICorDebugProcess11, EnumerateLoaderHeapMemoryRegions) + HRESULT ( STDMETHODCALLTYPE *EnumerateLoaderHeapMemoryRegions )( ICorDebugProcess11 * This, /* [out] */ ICorDebugMemoryRangeEnum **ppRanges); - + END_INTERFACE } ICorDebugProcess11Vtbl; @@ -8132,86 +8526,92 @@ EXTERN_C const IID IID_ICorDebugProcess11; CONST_VTBL struct ICorDebugProcess11Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcess11_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcess11_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcess11_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcess11_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcess11_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcess11_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcess11_EnumerateLoaderHeapMemoryRegions(This,ppRanges) \ - ( (This)->lpVtbl -> EnumerateLoaderHeapMemoryRegions(This,ppRanges) ) +#define ICorDebugProcess11_EnumerateLoaderHeapMemoryRegions(This,ppRanges) \ + ( (This)->lpVtbl -> EnumerateLoaderHeapMemoryRegions(This,ppRanges) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcess11_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcess11_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ #define __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ /* interface ICorDebugModuleDebugEvent */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModuleDebugEvent; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("51A15E8D-9FFF-4864-9B87-F4FBDEA747A2") ICorDebugModuleDebugEvent : public ICorDebugDebugEvent { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModuleDebugEventVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModuleDebugEvent * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModuleDebugEvent * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModuleDebugEvent * This); - - HRESULT ( STDMETHODCALLTYPE *GetEventKind )( + + DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetEventKind) + HRESULT ( STDMETHODCALLTYPE *GetEventKind )( ICorDebugModuleDebugEvent * This, /* [out] */ CorDebugDebugEventKind *pDebugEventKind); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetThread) + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugModuleDebugEvent * This, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + DECLSPEC_XFGVIRT(ICorDebugModuleDebugEvent, GetModule) + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugModuleDebugEvent * This, /* [out] */ ICorDebugModule **ppModule); - + END_INTERFACE } ICorDebugModuleDebugEventVtbl; @@ -8220,107 +8620,115 @@ EXTERN_C const IID IID_ICorDebugModuleDebugEvent; CONST_VTBL struct ICorDebugModuleDebugEventVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModuleDebugEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModuleDebugEvent_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModuleDebugEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModuleDebugEvent_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModuleDebugEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModuleDebugEvent_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModuleDebugEvent_GetEventKind(This,pDebugEventKind) \ - ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) +#define ICorDebugModuleDebugEvent_GetEventKind(This,pDebugEventKind) \ + ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) -#define ICorDebugModuleDebugEvent_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugModuleDebugEvent_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) -#define ICorDebugModuleDebugEvent_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) +#define ICorDebugModuleDebugEvent_GetModule(This,ppModule) \ + ( (This)->lpVtbl -> GetModule(This,ppModule) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModuleDebugEvent_INTERFACE_DEFINED__ */ #ifndef __ICorDebugExceptionDebugEvent_INTERFACE_DEFINED__ #define __ICorDebugExceptionDebugEvent_INTERFACE_DEFINED__ /* interface ICorDebugExceptionDebugEvent */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugExceptionDebugEvent; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AF79EC94-4752-419C-A626-5FB1CC1A5AB7") ICorDebugExceptionDebugEvent : public ICorDebugDebugEvent { public: - virtual HRESULT STDMETHODCALLTYPE GetStackPointer( + virtual HRESULT STDMETHODCALLTYPE GetStackPointer( /* [out] */ CORDB_ADDRESS *pStackPointer) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNativeIP( + + virtual HRESULT STDMETHODCALLTYPE GetNativeIP( /* [out] */ CORDB_ADDRESS *pIP) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFlags( + + virtual HRESULT STDMETHODCALLTYPE GetFlags( /* [out] */ CorDebugExceptionFlags *pdwFlags) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugExceptionDebugEventVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugExceptionDebugEvent * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugExceptionDebugEvent * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugExceptionDebugEvent * This); - - HRESULT ( STDMETHODCALLTYPE *GetEventKind )( + + DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetEventKind) + HRESULT ( STDMETHODCALLTYPE *GetEventKind )( ICorDebugExceptionDebugEvent * This, /* [out] */ CorDebugDebugEventKind *pDebugEventKind); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + DECLSPEC_XFGVIRT(ICorDebugDebugEvent, GetThread) + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugExceptionDebugEvent * This, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetStackPointer )( + + DECLSPEC_XFGVIRT(ICorDebugExceptionDebugEvent, GetStackPointer) + HRESULT ( STDMETHODCALLTYPE *GetStackPointer )( ICorDebugExceptionDebugEvent * This, /* [out] */ CORDB_ADDRESS *pStackPointer); - - HRESULT ( STDMETHODCALLTYPE *GetNativeIP )( + + DECLSPEC_XFGVIRT(ICorDebugExceptionDebugEvent, GetNativeIP) + HRESULT ( STDMETHODCALLTYPE *GetNativeIP )( ICorDebugExceptionDebugEvent * This, /* [out] */ CORDB_ADDRESS *pIP); - - HRESULT ( STDMETHODCALLTYPE *GetFlags )( + + DECLSPEC_XFGVIRT(ICorDebugExceptionDebugEvent, GetFlags) + HRESULT ( STDMETHODCALLTYPE *GetFlags )( ICorDebugExceptionDebugEvent * This, /* [out] */ CorDebugExceptionFlags *pdwFlags); - + END_INTERFACE } ICorDebugExceptionDebugEventVtbl; @@ -8329,98 +8737,103 @@ EXTERN_C const IID IID_ICorDebugExceptionDebugEvent; CONST_VTBL struct ICorDebugExceptionDebugEventVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugExceptionDebugEvent_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugExceptionDebugEvent_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugExceptionDebugEvent_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugExceptionDebugEvent_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugExceptionDebugEvent_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugExceptionDebugEvent_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugExceptionDebugEvent_GetEventKind(This,pDebugEventKind) \ - ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) +#define ICorDebugExceptionDebugEvent_GetEventKind(This,pDebugEventKind) \ + ( (This)->lpVtbl -> GetEventKind(This,pDebugEventKind) ) -#define ICorDebugExceptionDebugEvent_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugExceptionDebugEvent_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) -#define ICorDebugExceptionDebugEvent_GetStackPointer(This,pStackPointer) \ - ( (This)->lpVtbl -> GetStackPointer(This,pStackPointer) ) +#define ICorDebugExceptionDebugEvent_GetStackPointer(This,pStackPointer) \ + ( (This)->lpVtbl -> GetStackPointer(This,pStackPointer) ) -#define ICorDebugExceptionDebugEvent_GetNativeIP(This,pIP) \ - ( (This)->lpVtbl -> GetNativeIP(This,pIP) ) +#define ICorDebugExceptionDebugEvent_GetNativeIP(This,pIP) \ + ( (This)->lpVtbl -> GetNativeIP(This,pIP) ) -#define ICorDebugExceptionDebugEvent_GetFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetFlags(This,pdwFlags) ) +#define ICorDebugExceptionDebugEvent_GetFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> GetFlags(This,pdwFlags) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugExceptionDebugEvent_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugExceptionDebugEvent_INTERFACE_DEFINED__ */ #ifndef __ICorDebugBreakpoint_INTERFACE_DEFINED__ #define __ICorDebugBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAE8-8A68-11d2-983C-0000F808342D") ICorDebugBreakpoint : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE Activate( + virtual HRESULT STDMETHODCALLTYPE Activate( /* [in] */ BOOL bActive) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsActive( + + virtual HRESULT STDMETHODCALLTYPE IsActive( /* [out] */ BOOL *pbActive) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugBreakpointVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBreakpoint * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBreakpoint * This); - - HRESULT ( STDMETHODCALLTYPE *Activate )( + + DECLSPEC_XFGVIRT(ICorDebugBreakpoint, Activate) + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugBreakpoint * This, /* [in] */ BOOL bActive); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + DECLSPEC_XFGVIRT(ICorDebugBreakpoint, IsActive) + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugBreakpoint * This, /* [out] */ BOOL *pbActive); - + END_INTERFACE } ICorDebugBreakpointVtbl; @@ -8429,96 +8842,103 @@ EXTERN_C const IID IID_ICorDebugBreakpoint; CONST_VTBL struct ICorDebugBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugBreakpoint_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugBreakpoint_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugBreakpoint_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) +#define ICorDebugBreakpoint_Activate(This,bActive) \ + ( (This)->lpVtbl -> Activate(This,bActive) ) -#define ICorDebugBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugBreakpoint_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugBreakpoint_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugBreakpoint_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunctionBreakpoint_INTERFACE_DEFINED__ #define __ICorDebugFunctionBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugFunctionBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunctionBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAE9-8A68-11d2-983C-0000F808342D") ICorDebugFunctionBreakpoint : public ICorDebugBreakpoint { public: - virtual HRESULT STDMETHODCALLTYPE GetFunction( + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOffset( + + virtual HRESULT STDMETHODCALLTYPE GetOffset( /* [out] */ ULONG32 *pnOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunctionBreakpointVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunctionBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunctionBreakpoint * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunctionBreakpoint * This); - - HRESULT ( STDMETHODCALLTYPE *Activate )( + + DECLSPEC_XFGVIRT(ICorDebugBreakpoint, Activate) + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugFunctionBreakpoint * This, /* [in] */ BOOL bActive); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + DECLSPEC_XFGVIRT(ICorDebugBreakpoint, IsActive) + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugFunctionBreakpoint * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + DECLSPEC_XFGVIRT(ICorDebugFunctionBreakpoint, GetFunction) + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugFunctionBreakpoint * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetOffset )( + + DECLSPEC_XFGVIRT(ICorDebugFunctionBreakpoint, GetOffset) + HRESULT ( STDMETHODCALLTYPE *GetOffset )( ICorDebugFunctionBreakpoint * This, /* [out] */ ULONG32 *pnOffset); - + END_INTERFACE } ICorDebugFunctionBreakpointVtbl; @@ -8527,96 +8947,102 @@ EXTERN_C const IID IID_ICorDebugFunctionBreakpoint; CONST_VTBL struct ICorDebugFunctionBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFunctionBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunctionBreakpoint_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunctionBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunctionBreakpoint_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunctionBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunctionBreakpoint_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunctionBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) +#define ICorDebugFunctionBreakpoint_Activate(This,bActive) \ + ( (This)->lpVtbl -> Activate(This,bActive) ) -#define ICorDebugFunctionBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugFunctionBreakpoint_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugFunctionBreakpoint_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugFunctionBreakpoint_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugFunctionBreakpoint_GetOffset(This,pnOffset) \ - ( (This)->lpVtbl -> GetOffset(This,pnOffset) ) +#define ICorDebugFunctionBreakpoint_GetOffset(This,pnOffset) \ + ( (This)->lpVtbl -> GetOffset(This,pnOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunctionBreakpoint_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunctionBreakpoint_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModuleBreakpoint_INTERFACE_DEFINED__ #define __ICorDebugModuleBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugModuleBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModuleBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEA-8A68-11d2-983C-0000F808342D") ICorDebugModuleBreakpoint : public ICorDebugBreakpoint { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModuleBreakpointVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModuleBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModuleBreakpoint * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModuleBreakpoint * This); - - HRESULT ( STDMETHODCALLTYPE *Activate )( + + DECLSPEC_XFGVIRT(ICorDebugBreakpoint, Activate) + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugModuleBreakpoint * This, /* [in] */ BOOL bActive); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + DECLSPEC_XFGVIRT(ICorDebugBreakpoint, IsActive) + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugModuleBreakpoint * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + DECLSPEC_XFGVIRT(ICorDebugModuleBreakpoint, GetModule) + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugModuleBreakpoint * This, /* [out] */ ICorDebugModule **ppModule); - + END_INTERFACE } ICorDebugModuleBreakpointVtbl; @@ -8625,93 +9051,99 @@ EXTERN_C const IID IID_ICorDebugModuleBreakpoint; CONST_VTBL struct ICorDebugModuleBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModuleBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModuleBreakpoint_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModuleBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModuleBreakpoint_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModuleBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModuleBreakpoint_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModuleBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) +#define ICorDebugModuleBreakpoint_Activate(This,bActive) \ + ( (This)->lpVtbl -> Activate(This,bActive) ) -#define ICorDebugModuleBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugModuleBreakpoint_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugModuleBreakpoint_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) +#define ICorDebugModuleBreakpoint_GetModule(This,ppModule) \ + ( (This)->lpVtbl -> GetModule(This,ppModule) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModuleBreakpoint_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModuleBreakpoint_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValueBreakpoint_INTERFACE_DEFINED__ #define __ICorDebugValueBreakpoint_INTERFACE_DEFINED__ /* interface ICorDebugValueBreakpoint */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValueBreakpoint; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEB-8A68-11d2-983C-0000F808342D") ICorDebugValueBreakpoint : public ICorDebugBreakpoint { public: - virtual HRESULT STDMETHODCALLTYPE GetValue( + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValueBreakpointVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValueBreakpoint * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValueBreakpoint * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValueBreakpoint * This); - - HRESULT ( STDMETHODCALLTYPE *Activate )( + + DECLSPEC_XFGVIRT(ICorDebugBreakpoint, Activate) + HRESULT ( STDMETHODCALLTYPE *Activate )( ICorDebugValueBreakpoint * This, /* [in] */ BOOL bActive); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + DECLSPEC_XFGVIRT(ICorDebugBreakpoint, IsActive) + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugValueBreakpoint * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + DECLSPEC_XFGVIRT(ICorDebugValueBreakpoint, GetValue) + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugValueBreakpoint * This, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugValueBreakpointVtbl; @@ -8720,164 +9152,175 @@ EXTERN_C const IID IID_ICorDebugValueBreakpoint; CONST_VTBL struct ICorDebugValueBreakpointVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValueBreakpoint_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValueBreakpoint_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValueBreakpoint_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValueBreakpoint_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValueBreakpoint_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValueBreakpoint_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValueBreakpoint_Activate(This,bActive) \ - ( (This)->lpVtbl -> Activate(This,bActive) ) +#define ICorDebugValueBreakpoint_Activate(This,bActive) \ + ( (This)->lpVtbl -> Activate(This,bActive) ) -#define ICorDebugValueBreakpoint_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugValueBreakpoint_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugValueBreakpoint_GetValue(This,ppValue) \ - ( (This)->lpVtbl -> GetValue(This,ppValue) ) +#define ICorDebugValueBreakpoint_GetValue(This,ppValue) \ + ( (This)->lpVtbl -> GetValue(This,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValueBreakpoint_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValueBreakpoint_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStepper_INTERFACE_DEFINED__ #define __ICorDebugStepper_INTERFACE_DEFINED__ /* interface ICorDebugStepper */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugIntercept { - INTERCEPT_NONE = 0, - INTERCEPT_CLASS_INIT = 0x1, - INTERCEPT_EXCEPTION_FILTER = 0x2, - INTERCEPT_SECURITY = 0x4, - INTERCEPT_CONTEXT_POLICY = 0x8, - INTERCEPT_INTERCEPTION = 0x10, - INTERCEPT_ALL = 0xffff - } CorDebugIntercept; + INTERCEPT_NONE = 0, + INTERCEPT_CLASS_INIT = 0x1, + INTERCEPT_EXCEPTION_FILTER = 0x2, + INTERCEPT_SECURITY = 0x4, + INTERCEPT_CONTEXT_POLICY = 0x8, + INTERCEPT_INTERCEPTION = 0x10, + INTERCEPT_ALL = 0xffff + } CorDebugIntercept; -typedef +typedef enum CorDebugUnmappedStop { - STOP_NONE = 0, - STOP_PROLOG = 0x1, - STOP_EPILOG = 0x2, - STOP_NO_MAPPING_INFO = 0x4, - STOP_OTHER_UNMAPPED = 0x8, - STOP_UNMANAGED = 0x10, - STOP_ALL = 0xffff - } CorDebugUnmappedStop; + STOP_NONE = 0, + STOP_PROLOG = 0x1, + STOP_EPILOG = 0x2, + STOP_NO_MAPPING_INFO = 0x4, + STOP_OTHER_UNMAPPED = 0x8, + STOP_UNMANAGED = 0x10, + STOP_ALL = 0xffff + } CorDebugUnmappedStop; typedef struct COR_DEBUG_STEP_RANGE { ULONG32 startOffset; ULONG32 endOffset; - } COR_DEBUG_STEP_RANGE; + } COR_DEBUG_STEP_RANGE; EXTERN_C const IID IID_ICorDebugStepper; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEC-8A68-11d2-983C-0000F808342D") ICorDebugStepper : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsActive( + virtual HRESULT STDMETHODCALLTYPE IsActive( /* [out] */ BOOL *pbActive) = 0; - + virtual HRESULT STDMETHODCALLTYPE Deactivate( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetInterceptMask( + + virtual HRESULT STDMETHODCALLTYPE SetInterceptMask( /* [in] */ CorDebugIntercept mask) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetUnmappedStopMask( + + virtual HRESULT STDMETHODCALLTYPE SetUnmappedStopMask( /* [in] */ CorDebugUnmappedStop mask) = 0; - - virtual HRESULT STDMETHODCALLTYPE Step( + + virtual HRESULT STDMETHODCALLTYPE Step( /* [in] */ BOOL bStepIn) = 0; - - virtual HRESULT STDMETHODCALLTYPE StepRange( + + virtual HRESULT STDMETHODCALLTYPE StepRange( /* [in] */ BOOL bStepIn, /* [size_is][in] */ COR_DEBUG_STEP_RANGE ranges[ ], /* [in] */ ULONG32 cRangeCount) = 0; - + virtual HRESULT STDMETHODCALLTYPE StepOut( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRangeIL( + + virtual HRESULT STDMETHODCALLTYPE SetRangeIL( /* [in] */ BOOL bIL) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStepperVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStepper * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStepper * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStepper * This); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + DECLSPEC_XFGVIRT(ICorDebugStepper, IsActive) + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugStepper * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *Deactivate )( + + DECLSPEC_XFGVIRT(ICorDebugStepper, Deactivate) + HRESULT ( STDMETHODCALLTYPE *Deactivate )( ICorDebugStepper * This); - - HRESULT ( STDMETHODCALLTYPE *SetInterceptMask )( + + DECLSPEC_XFGVIRT(ICorDebugStepper, SetInterceptMask) + HRESULT ( STDMETHODCALLTYPE *SetInterceptMask )( ICorDebugStepper * This, /* [in] */ CorDebugIntercept mask); - - HRESULT ( STDMETHODCALLTYPE *SetUnmappedStopMask )( + + DECLSPEC_XFGVIRT(ICorDebugStepper, SetUnmappedStopMask) + HRESULT ( STDMETHODCALLTYPE *SetUnmappedStopMask )( ICorDebugStepper * This, /* [in] */ CorDebugUnmappedStop mask); - - HRESULT ( STDMETHODCALLTYPE *Step )( + + DECLSPEC_XFGVIRT(ICorDebugStepper, Step) + HRESULT ( STDMETHODCALLTYPE *Step )( ICorDebugStepper * This, /* [in] */ BOOL bStepIn); - - HRESULT ( STDMETHODCALLTYPE *StepRange )( + + DECLSPEC_XFGVIRT(ICorDebugStepper, StepRange) + HRESULT ( STDMETHODCALLTYPE *StepRange )( ICorDebugStepper * This, /* [in] */ BOOL bStepIn, /* [size_is][in] */ COR_DEBUG_STEP_RANGE ranges[ ], /* [in] */ ULONG32 cRangeCount); - - HRESULT ( STDMETHODCALLTYPE *StepOut )( + + DECLSPEC_XFGVIRT(ICorDebugStepper, StepOut) + HRESULT ( STDMETHODCALLTYPE *StepOut )( ICorDebugStepper * This); - - HRESULT ( STDMETHODCALLTYPE *SetRangeIL )( + + DECLSPEC_XFGVIRT(ICorDebugStepper, SetRangeIL) + HRESULT ( STDMETHODCALLTYPE *SetRangeIL )( ICorDebugStepper * This, /* [in] */ BOOL bIL); - + END_INTERFACE } ICorDebugStepperVtbl; @@ -8886,99 +9329,103 @@ EXTERN_C const IID IID_ICorDebugStepper; CONST_VTBL struct ICorDebugStepperVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStepper_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStepper_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStepper_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStepper_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStepper_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStepper_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStepper_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugStepper_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugStepper_Deactivate(This) \ - ( (This)->lpVtbl -> Deactivate(This) ) +#define ICorDebugStepper_Deactivate(This) \ + ( (This)->lpVtbl -> Deactivate(This) ) -#define ICorDebugStepper_SetInterceptMask(This,mask) \ - ( (This)->lpVtbl -> SetInterceptMask(This,mask) ) +#define ICorDebugStepper_SetInterceptMask(This,mask) \ + ( (This)->lpVtbl -> SetInterceptMask(This,mask) ) -#define ICorDebugStepper_SetUnmappedStopMask(This,mask) \ - ( (This)->lpVtbl -> SetUnmappedStopMask(This,mask) ) +#define ICorDebugStepper_SetUnmappedStopMask(This,mask) \ + ( (This)->lpVtbl -> SetUnmappedStopMask(This,mask) ) -#define ICorDebugStepper_Step(This,bStepIn) \ - ( (This)->lpVtbl -> Step(This,bStepIn) ) +#define ICorDebugStepper_Step(This,bStepIn) \ + ( (This)->lpVtbl -> Step(This,bStepIn) ) -#define ICorDebugStepper_StepRange(This,bStepIn,ranges,cRangeCount) \ - ( (This)->lpVtbl -> StepRange(This,bStepIn,ranges,cRangeCount) ) +#define ICorDebugStepper_StepRange(This,bStepIn,ranges,cRangeCount) \ + ( (This)->lpVtbl -> StepRange(This,bStepIn,ranges,cRangeCount) ) -#define ICorDebugStepper_StepOut(This) \ - ( (This)->lpVtbl -> StepOut(This) ) +#define ICorDebugStepper_StepOut(This) \ + ( (This)->lpVtbl -> StepOut(This) ) -#define ICorDebugStepper_SetRangeIL(This,bIL) \ - ( (This)->lpVtbl -> SetRangeIL(This,bIL) ) +#define ICorDebugStepper_SetRangeIL(This,bIL) \ + ( (This)->lpVtbl -> SetRangeIL(This,bIL) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStepper_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStepper_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStepper2_INTERFACE_DEFINED__ #define __ICorDebugStepper2_INTERFACE_DEFINED__ /* interface ICorDebugStepper2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStepper2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("C5B6E9C3-E7D1-4a8e-873B-7F047F0706F7") ICorDebugStepper2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetJMC( + virtual HRESULT STDMETHODCALLTYPE SetJMC( /* [in] */ BOOL fIsJMCStepper) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStepper2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStepper2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStepper2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStepper2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetJMC )( + + DECLSPEC_XFGVIRT(ICorDebugStepper2, SetJMC) + HRESULT ( STDMETHODCALLTYPE *SetJMC )( ICorDebugStepper2 * This, /* [in] */ BOOL fIsJMCStepper); - + END_INTERFACE } ICorDebugStepper2Vtbl; @@ -8987,213 +9434,213 @@ EXTERN_C const IID IID_ICorDebugStepper2; CONST_VTBL struct ICorDebugStepper2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStepper2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStepper2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStepper2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStepper2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStepper2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStepper2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStepper2_SetJMC(This,fIsJMCStepper) \ - ( (This)->lpVtbl -> SetJMC(This,fIsJMCStepper) ) +#define ICorDebugStepper2_SetJMC(This,fIsJMCStepper) \ + ( (This)->lpVtbl -> SetJMC(This,fIsJMCStepper) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStepper2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStepper2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugRegisterSet_INTERFACE_DEFINED__ #define __ICorDebugRegisterSet_INTERFACE_DEFINED__ /* interface ICorDebugRegisterSet */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugRegister { - REGISTER_INSTRUCTION_POINTER = 0, - REGISTER_STACK_POINTER = ( REGISTER_INSTRUCTION_POINTER + 1 ) , - REGISTER_FRAME_POINTER = ( REGISTER_STACK_POINTER + 1 ) , - REGISTER_X86_EIP = 0, - REGISTER_X86_ESP = ( REGISTER_X86_EIP + 1 ) , - REGISTER_X86_EBP = ( REGISTER_X86_ESP + 1 ) , - REGISTER_X86_EAX = ( REGISTER_X86_EBP + 1 ) , - REGISTER_X86_ECX = ( REGISTER_X86_EAX + 1 ) , - REGISTER_X86_EDX = ( REGISTER_X86_ECX + 1 ) , - REGISTER_X86_EBX = ( REGISTER_X86_EDX + 1 ) , - REGISTER_X86_ESI = ( REGISTER_X86_EBX + 1 ) , - REGISTER_X86_EDI = ( REGISTER_X86_ESI + 1 ) , - REGISTER_X86_FPSTACK_0 = ( REGISTER_X86_EDI + 1 ) , - REGISTER_X86_FPSTACK_1 = ( REGISTER_X86_FPSTACK_0 + 1 ) , - REGISTER_X86_FPSTACK_2 = ( REGISTER_X86_FPSTACK_1 + 1 ) , - REGISTER_X86_FPSTACK_3 = ( REGISTER_X86_FPSTACK_2 + 1 ) , - REGISTER_X86_FPSTACK_4 = ( REGISTER_X86_FPSTACK_3 + 1 ) , - REGISTER_X86_FPSTACK_5 = ( REGISTER_X86_FPSTACK_4 + 1 ) , - REGISTER_X86_FPSTACK_6 = ( REGISTER_X86_FPSTACK_5 + 1 ) , - REGISTER_X86_FPSTACK_7 = ( REGISTER_X86_FPSTACK_6 + 1 ) , - REGISTER_AMD64_RIP = 0, - REGISTER_AMD64_RSP = ( REGISTER_AMD64_RIP + 1 ) , - REGISTER_AMD64_RBP = ( REGISTER_AMD64_RSP + 1 ) , - REGISTER_AMD64_RAX = ( REGISTER_AMD64_RBP + 1 ) , - REGISTER_AMD64_RCX = ( REGISTER_AMD64_RAX + 1 ) , - REGISTER_AMD64_RDX = ( REGISTER_AMD64_RCX + 1 ) , - REGISTER_AMD64_RBX = ( REGISTER_AMD64_RDX + 1 ) , - REGISTER_AMD64_RSI = ( REGISTER_AMD64_RBX + 1 ) , - REGISTER_AMD64_RDI = ( REGISTER_AMD64_RSI + 1 ) , - REGISTER_AMD64_R8 = ( REGISTER_AMD64_RDI + 1 ) , - REGISTER_AMD64_R9 = ( REGISTER_AMD64_R8 + 1 ) , - REGISTER_AMD64_R10 = ( REGISTER_AMD64_R9 + 1 ) , - REGISTER_AMD64_R11 = ( REGISTER_AMD64_R10 + 1 ) , - REGISTER_AMD64_R12 = ( REGISTER_AMD64_R11 + 1 ) , - REGISTER_AMD64_R13 = ( REGISTER_AMD64_R12 + 1 ) , - REGISTER_AMD64_R14 = ( REGISTER_AMD64_R13 + 1 ) , - REGISTER_AMD64_R15 = ( REGISTER_AMD64_R14 + 1 ) , - REGISTER_AMD64_XMM0 = ( REGISTER_AMD64_R15 + 1 ) , - REGISTER_AMD64_XMM1 = ( REGISTER_AMD64_XMM0 + 1 ) , - REGISTER_AMD64_XMM2 = ( REGISTER_AMD64_XMM1 + 1 ) , - REGISTER_AMD64_XMM3 = ( REGISTER_AMD64_XMM2 + 1 ) , - REGISTER_AMD64_XMM4 = ( REGISTER_AMD64_XMM3 + 1 ) , - REGISTER_AMD64_XMM5 = ( REGISTER_AMD64_XMM4 + 1 ) , - REGISTER_AMD64_XMM6 = ( REGISTER_AMD64_XMM5 + 1 ) , - REGISTER_AMD64_XMM7 = ( REGISTER_AMD64_XMM6 + 1 ) , - REGISTER_AMD64_XMM8 = ( REGISTER_AMD64_XMM7 + 1 ) , - REGISTER_AMD64_XMM9 = ( REGISTER_AMD64_XMM8 + 1 ) , - REGISTER_AMD64_XMM10 = ( REGISTER_AMD64_XMM9 + 1 ) , - REGISTER_AMD64_XMM11 = ( REGISTER_AMD64_XMM10 + 1 ) , - REGISTER_AMD64_XMM12 = ( REGISTER_AMD64_XMM11 + 1 ) , - REGISTER_AMD64_XMM13 = ( REGISTER_AMD64_XMM12 + 1 ) , - REGISTER_AMD64_XMM14 = ( REGISTER_AMD64_XMM13 + 1 ) , - REGISTER_AMD64_XMM15 = ( REGISTER_AMD64_XMM14 + 1 ) , - REGISTER_IA64_BSP = REGISTER_FRAME_POINTER, - REGISTER_IA64_R0 = ( REGISTER_IA64_BSP + 1 ) , - REGISTER_IA64_F0 = ( REGISTER_IA64_R0 + 128 ) , - REGISTER_ARM_PC = 0, - REGISTER_ARM_SP = ( REGISTER_ARM_PC + 1 ) , - REGISTER_ARM_R0 = ( REGISTER_ARM_SP + 1 ) , - REGISTER_ARM_R1 = ( REGISTER_ARM_R0 + 1 ) , - REGISTER_ARM_R2 = ( REGISTER_ARM_R1 + 1 ) , - REGISTER_ARM_R3 = ( REGISTER_ARM_R2 + 1 ) , - REGISTER_ARM_R4 = ( REGISTER_ARM_R3 + 1 ) , - REGISTER_ARM_R5 = ( REGISTER_ARM_R4 + 1 ) , - REGISTER_ARM_R6 = ( REGISTER_ARM_R5 + 1 ) , - REGISTER_ARM_R7 = ( REGISTER_ARM_R6 + 1 ) , - REGISTER_ARM_R8 = ( REGISTER_ARM_R7 + 1 ) , - REGISTER_ARM_R9 = ( REGISTER_ARM_R8 + 1 ) , - REGISTER_ARM_R10 = ( REGISTER_ARM_R9 + 1 ) , - REGISTER_ARM_R11 = ( REGISTER_ARM_R10 + 1 ) , - REGISTER_ARM_R12 = ( REGISTER_ARM_R11 + 1 ) , - REGISTER_ARM_LR = ( REGISTER_ARM_R12 + 1 ) , - REGISTER_ARM_D0 = ( REGISTER_ARM_LR + 1 ) , - REGISTER_ARM_D1 = ( REGISTER_ARM_D0 + 1 ) , - REGISTER_ARM_D2 = ( REGISTER_ARM_D1 + 1 ) , - REGISTER_ARM_D3 = ( REGISTER_ARM_D2 + 1 ) , - REGISTER_ARM_D4 = ( REGISTER_ARM_D3 + 1 ) , - REGISTER_ARM_D5 = ( REGISTER_ARM_D4 + 1 ) , - REGISTER_ARM_D6 = ( REGISTER_ARM_D5 + 1 ) , - REGISTER_ARM_D7 = ( REGISTER_ARM_D6 + 1 ) , - REGISTER_ARM_D8 = ( REGISTER_ARM_D7 + 1 ) , - REGISTER_ARM_D9 = ( REGISTER_ARM_D8 + 1 ) , - REGISTER_ARM_D10 = ( REGISTER_ARM_D9 + 1 ) , - REGISTER_ARM_D11 = ( REGISTER_ARM_D10 + 1 ) , - REGISTER_ARM_D12 = ( REGISTER_ARM_D11 + 1 ) , - REGISTER_ARM_D13 = ( REGISTER_ARM_D12 + 1 ) , - REGISTER_ARM_D14 = ( REGISTER_ARM_D13 + 1 ) , - REGISTER_ARM_D15 = ( REGISTER_ARM_D14 + 1 ) , - REGISTER_ARM_D16 = ( REGISTER_ARM_D15 + 1 ) , - REGISTER_ARM_D17 = ( REGISTER_ARM_D16 + 1 ) , - REGISTER_ARM_D18 = ( REGISTER_ARM_D17 + 1 ) , - REGISTER_ARM_D19 = ( REGISTER_ARM_D18 + 1 ) , - REGISTER_ARM_D20 = ( REGISTER_ARM_D19 + 1 ) , - REGISTER_ARM_D21 = ( REGISTER_ARM_D20 + 1 ) , - REGISTER_ARM_D22 = ( REGISTER_ARM_D21 + 1 ) , - REGISTER_ARM_D23 = ( REGISTER_ARM_D22 + 1 ) , - REGISTER_ARM_D24 = ( REGISTER_ARM_D23 + 1 ) , - REGISTER_ARM_D25 = ( REGISTER_ARM_D24 + 1 ) , - REGISTER_ARM_D26 = ( REGISTER_ARM_D25 + 1 ) , - REGISTER_ARM_D27 = ( REGISTER_ARM_D26 + 1 ) , - REGISTER_ARM_D28 = ( REGISTER_ARM_D27 + 1 ) , - REGISTER_ARM_D29 = ( REGISTER_ARM_D28 + 1 ) , - REGISTER_ARM_D30 = ( REGISTER_ARM_D29 + 1 ) , - REGISTER_ARM_D31 = ( REGISTER_ARM_D30 + 1 ) , - REGISTER_ARM64_PC = 0, - REGISTER_ARM64_SP = ( REGISTER_ARM64_PC + 1 ) , - REGISTER_ARM64_FP = ( REGISTER_ARM64_SP + 1 ) , - REGISTER_ARM64_X0 = ( REGISTER_ARM64_FP + 1 ) , - REGISTER_ARM64_X1 = ( REGISTER_ARM64_X0 + 1 ) , - REGISTER_ARM64_X2 = ( REGISTER_ARM64_X1 + 1 ) , - REGISTER_ARM64_X3 = ( REGISTER_ARM64_X2 + 1 ) , - REGISTER_ARM64_X4 = ( REGISTER_ARM64_X3 + 1 ) , - REGISTER_ARM64_X5 = ( REGISTER_ARM64_X4 + 1 ) , - REGISTER_ARM64_X6 = ( REGISTER_ARM64_X5 + 1 ) , - REGISTER_ARM64_X7 = ( REGISTER_ARM64_X6 + 1 ) , - REGISTER_ARM64_X8 = ( REGISTER_ARM64_X7 + 1 ) , - REGISTER_ARM64_X9 = ( REGISTER_ARM64_X8 + 1 ) , - REGISTER_ARM64_X10 = ( REGISTER_ARM64_X9 + 1 ) , - REGISTER_ARM64_X11 = ( REGISTER_ARM64_X10 + 1 ) , - REGISTER_ARM64_X12 = ( REGISTER_ARM64_X11 + 1 ) , - REGISTER_ARM64_X13 = ( REGISTER_ARM64_X12 + 1 ) , - REGISTER_ARM64_X14 = ( REGISTER_ARM64_X13 + 1 ) , - REGISTER_ARM64_X15 = ( REGISTER_ARM64_X14 + 1 ) , - REGISTER_ARM64_X16 = ( REGISTER_ARM64_X15 + 1 ) , - REGISTER_ARM64_X17 = ( REGISTER_ARM64_X16 + 1 ) , - REGISTER_ARM64_X18 = ( REGISTER_ARM64_X17 + 1 ) , - REGISTER_ARM64_X19 = ( REGISTER_ARM64_X18 + 1 ) , - REGISTER_ARM64_X20 = ( REGISTER_ARM64_X19 + 1 ) , - REGISTER_ARM64_X21 = ( REGISTER_ARM64_X20 + 1 ) , - REGISTER_ARM64_X22 = ( REGISTER_ARM64_X21 + 1 ) , - REGISTER_ARM64_X23 = ( REGISTER_ARM64_X22 + 1 ) , - REGISTER_ARM64_X24 = ( REGISTER_ARM64_X23 + 1 ) , - REGISTER_ARM64_X25 = ( REGISTER_ARM64_X24 + 1 ) , - REGISTER_ARM64_X26 = ( REGISTER_ARM64_X25 + 1 ) , - REGISTER_ARM64_X27 = ( REGISTER_ARM64_X26 + 1 ) , - REGISTER_ARM64_X28 = ( REGISTER_ARM64_X27 + 1 ) , - REGISTER_ARM64_LR = ( REGISTER_ARM64_X28 + 1 ) , - REGISTER_ARM64_V0 = ( REGISTER_ARM64_LR + 1 ) , - REGISTER_ARM64_V1 = ( REGISTER_ARM64_V0 + 1 ) , - REGISTER_ARM64_V2 = ( REGISTER_ARM64_V1 + 1 ) , - REGISTER_ARM64_V3 = ( REGISTER_ARM64_V2 + 1 ) , - REGISTER_ARM64_V4 = ( REGISTER_ARM64_V3 + 1 ) , - REGISTER_ARM64_V5 = ( REGISTER_ARM64_V4 + 1 ) , - REGISTER_ARM64_V6 = ( REGISTER_ARM64_V5 + 1 ) , - REGISTER_ARM64_V7 = ( REGISTER_ARM64_V6 + 1 ) , - REGISTER_ARM64_V8 = ( REGISTER_ARM64_V7 + 1 ) , - REGISTER_ARM64_V9 = ( REGISTER_ARM64_V8 + 1 ) , - REGISTER_ARM64_V10 = ( REGISTER_ARM64_V9 + 1 ) , - REGISTER_ARM64_V11 = ( REGISTER_ARM64_V10 + 1 ) , - REGISTER_ARM64_V12 = ( REGISTER_ARM64_V11 + 1 ) , - REGISTER_ARM64_V13 = ( REGISTER_ARM64_V12 + 1 ) , - REGISTER_ARM64_V14 = ( REGISTER_ARM64_V13 + 1 ) , - REGISTER_ARM64_V15 = ( REGISTER_ARM64_V14 + 1 ) , - REGISTER_ARM64_V16 = ( REGISTER_ARM64_V15 + 1 ) , - REGISTER_ARM64_V17 = ( REGISTER_ARM64_V16 + 1 ) , - REGISTER_ARM64_V18 = ( REGISTER_ARM64_V17 + 1 ) , - REGISTER_ARM64_V19 = ( REGISTER_ARM64_V18 + 1 ) , - REGISTER_ARM64_V20 = ( REGISTER_ARM64_V19 + 1 ) , - REGISTER_ARM64_V21 = ( REGISTER_ARM64_V20 + 1 ) , - REGISTER_ARM64_V22 = ( REGISTER_ARM64_V21 + 1 ) , - REGISTER_ARM64_V23 = ( REGISTER_ARM64_V22 + 1 ) , - REGISTER_ARM64_V24 = ( REGISTER_ARM64_V23 + 1 ) , - REGISTER_ARM64_V25 = ( REGISTER_ARM64_V24 + 1 ) , - REGISTER_ARM64_V26 = ( REGISTER_ARM64_V25 + 1 ) , - REGISTER_ARM64_V27 = ( REGISTER_ARM64_V26 + 1 ) , - REGISTER_ARM64_V28 = ( REGISTER_ARM64_V27 + 1 ) , - REGISTER_ARM64_V29 = ( REGISTER_ARM64_V28 + 1 ) , - REGISTER_ARM64_V30 = ( REGISTER_ARM64_V29 + 1 ) , - REGISTER_ARM64_V31 = ( REGISTER_ARM64_V30 + 1 ) , + REGISTER_INSTRUCTION_POINTER = 0, + REGISTER_STACK_POINTER = ( REGISTER_INSTRUCTION_POINTER + 1 ) , + REGISTER_FRAME_POINTER = ( REGISTER_STACK_POINTER + 1 ) , + REGISTER_X86_EIP = 0, + REGISTER_X86_ESP = ( REGISTER_X86_EIP + 1 ) , + REGISTER_X86_EBP = ( REGISTER_X86_ESP + 1 ) , + REGISTER_X86_EAX = ( REGISTER_X86_EBP + 1 ) , + REGISTER_X86_ECX = ( REGISTER_X86_EAX + 1 ) , + REGISTER_X86_EDX = ( REGISTER_X86_ECX + 1 ) , + REGISTER_X86_EBX = ( REGISTER_X86_EDX + 1 ) , + REGISTER_X86_ESI = ( REGISTER_X86_EBX + 1 ) , + REGISTER_X86_EDI = ( REGISTER_X86_ESI + 1 ) , + REGISTER_X86_FPSTACK_0 = ( REGISTER_X86_EDI + 1 ) , + REGISTER_X86_FPSTACK_1 = ( REGISTER_X86_FPSTACK_0 + 1 ) , + REGISTER_X86_FPSTACK_2 = ( REGISTER_X86_FPSTACK_1 + 1 ) , + REGISTER_X86_FPSTACK_3 = ( REGISTER_X86_FPSTACK_2 + 1 ) , + REGISTER_X86_FPSTACK_4 = ( REGISTER_X86_FPSTACK_3 + 1 ) , + REGISTER_X86_FPSTACK_5 = ( REGISTER_X86_FPSTACK_4 + 1 ) , + REGISTER_X86_FPSTACK_6 = ( REGISTER_X86_FPSTACK_5 + 1 ) , + REGISTER_X86_FPSTACK_7 = ( REGISTER_X86_FPSTACK_6 + 1 ) , + REGISTER_AMD64_RIP = 0, + REGISTER_AMD64_RSP = ( REGISTER_AMD64_RIP + 1 ) , + REGISTER_AMD64_RBP = ( REGISTER_AMD64_RSP + 1 ) , + REGISTER_AMD64_RAX = ( REGISTER_AMD64_RBP + 1 ) , + REGISTER_AMD64_RCX = ( REGISTER_AMD64_RAX + 1 ) , + REGISTER_AMD64_RDX = ( REGISTER_AMD64_RCX + 1 ) , + REGISTER_AMD64_RBX = ( REGISTER_AMD64_RDX + 1 ) , + REGISTER_AMD64_RSI = ( REGISTER_AMD64_RBX + 1 ) , + REGISTER_AMD64_RDI = ( REGISTER_AMD64_RSI + 1 ) , + REGISTER_AMD64_R8 = ( REGISTER_AMD64_RDI + 1 ) , + REGISTER_AMD64_R9 = ( REGISTER_AMD64_R8 + 1 ) , + REGISTER_AMD64_R10 = ( REGISTER_AMD64_R9 + 1 ) , + REGISTER_AMD64_R11 = ( REGISTER_AMD64_R10 + 1 ) , + REGISTER_AMD64_R12 = ( REGISTER_AMD64_R11 + 1 ) , + REGISTER_AMD64_R13 = ( REGISTER_AMD64_R12 + 1 ) , + REGISTER_AMD64_R14 = ( REGISTER_AMD64_R13 + 1 ) , + REGISTER_AMD64_R15 = ( REGISTER_AMD64_R14 + 1 ) , + REGISTER_AMD64_XMM0 = ( REGISTER_AMD64_R15 + 1 ) , + REGISTER_AMD64_XMM1 = ( REGISTER_AMD64_XMM0 + 1 ) , + REGISTER_AMD64_XMM2 = ( REGISTER_AMD64_XMM1 + 1 ) , + REGISTER_AMD64_XMM3 = ( REGISTER_AMD64_XMM2 + 1 ) , + REGISTER_AMD64_XMM4 = ( REGISTER_AMD64_XMM3 + 1 ) , + REGISTER_AMD64_XMM5 = ( REGISTER_AMD64_XMM4 + 1 ) , + REGISTER_AMD64_XMM6 = ( REGISTER_AMD64_XMM5 + 1 ) , + REGISTER_AMD64_XMM7 = ( REGISTER_AMD64_XMM6 + 1 ) , + REGISTER_AMD64_XMM8 = ( REGISTER_AMD64_XMM7 + 1 ) , + REGISTER_AMD64_XMM9 = ( REGISTER_AMD64_XMM8 + 1 ) , + REGISTER_AMD64_XMM10 = ( REGISTER_AMD64_XMM9 + 1 ) , + REGISTER_AMD64_XMM11 = ( REGISTER_AMD64_XMM10 + 1 ) , + REGISTER_AMD64_XMM12 = ( REGISTER_AMD64_XMM11 + 1 ) , + REGISTER_AMD64_XMM13 = ( REGISTER_AMD64_XMM12 + 1 ) , + REGISTER_AMD64_XMM14 = ( REGISTER_AMD64_XMM13 + 1 ) , + REGISTER_AMD64_XMM15 = ( REGISTER_AMD64_XMM14 + 1 ) , + REGISTER_IA64_BSP = REGISTER_FRAME_POINTER, + REGISTER_IA64_R0 = ( REGISTER_IA64_BSP + 1 ) , + REGISTER_IA64_F0 = ( REGISTER_IA64_R0 + 128 ) , + REGISTER_ARM_PC = 0, + REGISTER_ARM_SP = ( REGISTER_ARM_PC + 1 ) , + REGISTER_ARM_R0 = ( REGISTER_ARM_SP + 1 ) , + REGISTER_ARM_R1 = ( REGISTER_ARM_R0 + 1 ) , + REGISTER_ARM_R2 = ( REGISTER_ARM_R1 + 1 ) , + REGISTER_ARM_R3 = ( REGISTER_ARM_R2 + 1 ) , + REGISTER_ARM_R4 = ( REGISTER_ARM_R3 + 1 ) , + REGISTER_ARM_R5 = ( REGISTER_ARM_R4 + 1 ) , + REGISTER_ARM_R6 = ( REGISTER_ARM_R5 + 1 ) , + REGISTER_ARM_R7 = ( REGISTER_ARM_R6 + 1 ) , + REGISTER_ARM_R8 = ( REGISTER_ARM_R7 + 1 ) , + REGISTER_ARM_R9 = ( REGISTER_ARM_R8 + 1 ) , + REGISTER_ARM_R10 = ( REGISTER_ARM_R9 + 1 ) , + REGISTER_ARM_R11 = ( REGISTER_ARM_R10 + 1 ) , + REGISTER_ARM_R12 = ( REGISTER_ARM_R11 + 1 ) , + REGISTER_ARM_LR = ( REGISTER_ARM_R12 + 1 ) , + REGISTER_ARM_D0 = ( REGISTER_ARM_LR + 1 ) , + REGISTER_ARM_D1 = ( REGISTER_ARM_D0 + 1 ) , + REGISTER_ARM_D2 = ( REGISTER_ARM_D1 + 1 ) , + REGISTER_ARM_D3 = ( REGISTER_ARM_D2 + 1 ) , + REGISTER_ARM_D4 = ( REGISTER_ARM_D3 + 1 ) , + REGISTER_ARM_D5 = ( REGISTER_ARM_D4 + 1 ) , + REGISTER_ARM_D6 = ( REGISTER_ARM_D5 + 1 ) , + REGISTER_ARM_D7 = ( REGISTER_ARM_D6 + 1 ) , + REGISTER_ARM_D8 = ( REGISTER_ARM_D7 + 1 ) , + REGISTER_ARM_D9 = ( REGISTER_ARM_D8 + 1 ) , + REGISTER_ARM_D10 = ( REGISTER_ARM_D9 + 1 ) , + REGISTER_ARM_D11 = ( REGISTER_ARM_D10 + 1 ) , + REGISTER_ARM_D12 = ( REGISTER_ARM_D11 + 1 ) , + REGISTER_ARM_D13 = ( REGISTER_ARM_D12 + 1 ) , + REGISTER_ARM_D14 = ( REGISTER_ARM_D13 + 1 ) , + REGISTER_ARM_D15 = ( REGISTER_ARM_D14 + 1 ) , + REGISTER_ARM_D16 = ( REGISTER_ARM_D15 + 1 ) , + REGISTER_ARM_D17 = ( REGISTER_ARM_D16 + 1 ) , + REGISTER_ARM_D18 = ( REGISTER_ARM_D17 + 1 ) , + REGISTER_ARM_D19 = ( REGISTER_ARM_D18 + 1 ) , + REGISTER_ARM_D20 = ( REGISTER_ARM_D19 + 1 ) , + REGISTER_ARM_D21 = ( REGISTER_ARM_D20 + 1 ) , + REGISTER_ARM_D22 = ( REGISTER_ARM_D21 + 1 ) , + REGISTER_ARM_D23 = ( REGISTER_ARM_D22 + 1 ) , + REGISTER_ARM_D24 = ( REGISTER_ARM_D23 + 1 ) , + REGISTER_ARM_D25 = ( REGISTER_ARM_D24 + 1 ) , + REGISTER_ARM_D26 = ( REGISTER_ARM_D25 + 1 ) , + REGISTER_ARM_D27 = ( REGISTER_ARM_D26 + 1 ) , + REGISTER_ARM_D28 = ( REGISTER_ARM_D27 + 1 ) , + REGISTER_ARM_D29 = ( REGISTER_ARM_D28 + 1 ) , + REGISTER_ARM_D30 = ( REGISTER_ARM_D29 + 1 ) , + REGISTER_ARM_D31 = ( REGISTER_ARM_D30 + 1 ) , + REGISTER_ARM64_PC = 0, + REGISTER_ARM64_SP = ( REGISTER_ARM64_PC + 1 ) , + REGISTER_ARM64_FP = ( REGISTER_ARM64_SP + 1 ) , + REGISTER_ARM64_X0 = ( REGISTER_ARM64_FP + 1 ) , + REGISTER_ARM64_X1 = ( REGISTER_ARM64_X0 + 1 ) , + REGISTER_ARM64_X2 = ( REGISTER_ARM64_X1 + 1 ) , + REGISTER_ARM64_X3 = ( REGISTER_ARM64_X2 + 1 ) , + REGISTER_ARM64_X4 = ( REGISTER_ARM64_X3 + 1 ) , + REGISTER_ARM64_X5 = ( REGISTER_ARM64_X4 + 1 ) , + REGISTER_ARM64_X6 = ( REGISTER_ARM64_X5 + 1 ) , + REGISTER_ARM64_X7 = ( REGISTER_ARM64_X6 + 1 ) , + REGISTER_ARM64_X8 = ( REGISTER_ARM64_X7 + 1 ) , + REGISTER_ARM64_X9 = ( REGISTER_ARM64_X8 + 1 ) , + REGISTER_ARM64_X10 = ( REGISTER_ARM64_X9 + 1 ) , + REGISTER_ARM64_X11 = ( REGISTER_ARM64_X10 + 1 ) , + REGISTER_ARM64_X12 = ( REGISTER_ARM64_X11 + 1 ) , + REGISTER_ARM64_X13 = ( REGISTER_ARM64_X12 + 1 ) , + REGISTER_ARM64_X14 = ( REGISTER_ARM64_X13 + 1 ) , + REGISTER_ARM64_X15 = ( REGISTER_ARM64_X14 + 1 ) , + REGISTER_ARM64_X16 = ( REGISTER_ARM64_X15 + 1 ) , + REGISTER_ARM64_X17 = ( REGISTER_ARM64_X16 + 1 ) , + REGISTER_ARM64_X18 = ( REGISTER_ARM64_X17 + 1 ) , + REGISTER_ARM64_X19 = ( REGISTER_ARM64_X18 + 1 ) , + REGISTER_ARM64_X20 = ( REGISTER_ARM64_X19 + 1 ) , + REGISTER_ARM64_X21 = ( REGISTER_ARM64_X20 + 1 ) , + REGISTER_ARM64_X22 = ( REGISTER_ARM64_X21 + 1 ) , + REGISTER_ARM64_X23 = ( REGISTER_ARM64_X22 + 1 ) , + REGISTER_ARM64_X24 = ( REGISTER_ARM64_X23 + 1 ) , + REGISTER_ARM64_X25 = ( REGISTER_ARM64_X24 + 1 ) , + REGISTER_ARM64_X26 = ( REGISTER_ARM64_X25 + 1 ) , + REGISTER_ARM64_X27 = ( REGISTER_ARM64_X26 + 1 ) , + REGISTER_ARM64_X28 = ( REGISTER_ARM64_X27 + 1 ) , + REGISTER_ARM64_LR = ( REGISTER_ARM64_X28 + 1 ) , + REGISTER_ARM64_V0 = ( REGISTER_ARM64_LR + 1 ) , + REGISTER_ARM64_V1 = ( REGISTER_ARM64_V0 + 1 ) , + REGISTER_ARM64_V2 = ( REGISTER_ARM64_V1 + 1 ) , + REGISTER_ARM64_V3 = ( REGISTER_ARM64_V2 + 1 ) , + REGISTER_ARM64_V4 = ( REGISTER_ARM64_V3 + 1 ) , + REGISTER_ARM64_V5 = ( REGISTER_ARM64_V4 + 1 ) , + REGISTER_ARM64_V6 = ( REGISTER_ARM64_V5 + 1 ) , + REGISTER_ARM64_V7 = ( REGISTER_ARM64_V6 + 1 ) , + REGISTER_ARM64_V8 = ( REGISTER_ARM64_V7 + 1 ) , + REGISTER_ARM64_V9 = ( REGISTER_ARM64_V8 + 1 ) , + REGISTER_ARM64_V10 = ( REGISTER_ARM64_V9 + 1 ) , + REGISTER_ARM64_V11 = ( REGISTER_ARM64_V10 + 1 ) , + REGISTER_ARM64_V12 = ( REGISTER_ARM64_V11 + 1 ) , + REGISTER_ARM64_V13 = ( REGISTER_ARM64_V12 + 1 ) , + REGISTER_ARM64_V14 = ( REGISTER_ARM64_V13 + 1 ) , + REGISTER_ARM64_V15 = ( REGISTER_ARM64_V14 + 1 ) , + REGISTER_ARM64_V16 = ( REGISTER_ARM64_V15 + 1 ) , + REGISTER_ARM64_V17 = ( REGISTER_ARM64_V16 + 1 ) , + REGISTER_ARM64_V18 = ( REGISTER_ARM64_V17 + 1 ) , + REGISTER_ARM64_V19 = ( REGISTER_ARM64_V18 + 1 ) , + REGISTER_ARM64_V20 = ( REGISTER_ARM64_V19 + 1 ) , + REGISTER_ARM64_V21 = ( REGISTER_ARM64_V20 + 1 ) , + REGISTER_ARM64_V22 = ( REGISTER_ARM64_V21 + 1 ) , + REGISTER_ARM64_V23 = ( REGISTER_ARM64_V22 + 1 ) , + REGISTER_ARM64_V24 = ( REGISTER_ARM64_V23 + 1 ) , + REGISTER_ARM64_V25 = ( REGISTER_ARM64_V24 + 1 ) , + REGISTER_ARM64_V26 = ( REGISTER_ARM64_V25 + 1 ) , + REGISTER_ARM64_V27 = ( REGISTER_ARM64_V26 + 1 ) , + REGISTER_ARM64_V28 = ( REGISTER_ARM64_V27 + 1 ) , + REGISTER_ARM64_V29 = ( REGISTER_ARM64_V28 + 1 ) , + REGISTER_ARM64_V30 = ( REGISTER_ARM64_V29 + 1 ) , + REGISTER_ARM64_V31 = ( REGISTER_ARM64_V30 + 1 ) , REGISTER_LOONGARCH64_PC = 0, REGISTER_LOONGARCH64_SP = ( REGISTER_LOONGARCH64_PC + 1 ) , REGISTER_LOONGARCH64_FP = ( REGISTER_LOONGARCH64_SP + 1 ) , @@ -9236,172 +9683,180 @@ enum CorDebugRegister REGISTER_LOONGARCH64_F7 = ( REGISTER_LOONGARCH64_F6 + 1 ) , REGISTER_LOONGARCH64_F8 = ( REGISTER_LOONGARCH64_F7 + 1 ) , REGISTER_LOONGARCH64_F9 = ( REGISTER_LOONGARCH64_F8 + 1 ) , - REGISTER_LOONGARCH64_F10 = ( REGISTER_LOONGARCH64_F9 + 1 ) , - REGISTER_LOONGARCH64_F11 = ( REGISTER_LOONGARCH64_F10 + 1 ) , - REGISTER_LOONGARCH64_F12 = ( REGISTER_LOONGARCH64_F11 + 1 ) , - REGISTER_LOONGARCH64_F13 = ( REGISTER_LOONGARCH64_F12 + 1 ) , - REGISTER_LOONGARCH64_F14 = ( REGISTER_LOONGARCH64_F13 + 1 ) , - REGISTER_LOONGARCH64_F15 = ( REGISTER_LOONGARCH64_F14 + 1 ) , - REGISTER_LOONGARCH64_F16 = ( REGISTER_LOONGARCH64_F15 + 1 ) , - REGISTER_LOONGARCH64_F17 = ( REGISTER_LOONGARCH64_F16 + 1 ) , - REGISTER_LOONGARCH64_F18 = ( REGISTER_LOONGARCH64_F17 + 1 ) , - REGISTER_LOONGARCH64_F19 = ( REGISTER_LOONGARCH64_F18 + 1 ) , - REGISTER_LOONGARCH64_F20 = ( REGISTER_LOONGARCH64_F19 + 1 ) , - REGISTER_LOONGARCH64_F21 = ( REGISTER_LOONGARCH64_F20 + 1 ) , - REGISTER_LOONGARCH64_F22 = ( REGISTER_LOONGARCH64_F21 + 1 ) , - REGISTER_LOONGARCH64_F23 = ( REGISTER_LOONGARCH64_F22 + 1 ) , - REGISTER_LOONGARCH64_F24 = ( REGISTER_LOONGARCH64_F23 + 1 ) , - REGISTER_LOONGARCH64_F25 = ( REGISTER_LOONGARCH64_F24 + 1 ) , - REGISTER_LOONGARCH64_F26 = ( REGISTER_LOONGARCH64_F25 + 1 ) , - REGISTER_LOONGARCH64_F27 = ( REGISTER_LOONGARCH64_F26 + 1 ) , - REGISTER_LOONGARCH64_F28 = ( REGISTER_LOONGARCH64_F27 + 1 ) , - REGISTER_LOONGARCH64_F29 = ( REGISTER_LOONGARCH64_F28 + 1 ) , - REGISTER_LOONGARCH64_F30 = ( REGISTER_LOONGARCH64_F29 + 1 ) , - REGISTER_LOONGARCH64_F31 = ( REGISTER_LOONGARCH64_F30 + 1 ), + REGISTER_LOONGARCH64_F10 = ( REGISTER_LOONGARCH64_F9 + 1 ) , + REGISTER_LOONGARCH64_F11 = ( REGISTER_LOONGARCH64_F10 + 1 ) , + REGISTER_LOONGARCH64_F12 = ( REGISTER_LOONGARCH64_F11 + 1 ) , + REGISTER_LOONGARCH64_F13 = ( REGISTER_LOONGARCH64_F12 + 1 ) , + REGISTER_LOONGARCH64_F14 = ( REGISTER_LOONGARCH64_F13 + 1 ) , + REGISTER_LOONGARCH64_F15 = ( REGISTER_LOONGARCH64_F14 + 1 ) , + REGISTER_LOONGARCH64_F16 = ( REGISTER_LOONGARCH64_F15 + 1 ) , + REGISTER_LOONGARCH64_F17 = ( REGISTER_LOONGARCH64_F16 + 1 ) , + REGISTER_LOONGARCH64_F18 = ( REGISTER_LOONGARCH64_F17 + 1 ) , + REGISTER_LOONGARCH64_F19 = ( REGISTER_LOONGARCH64_F18 + 1 ) , + REGISTER_LOONGARCH64_F20 = ( REGISTER_LOONGARCH64_F19 + 1 ) , + REGISTER_LOONGARCH64_F21 = ( REGISTER_LOONGARCH64_F20 + 1 ) , + REGISTER_LOONGARCH64_F22 = ( REGISTER_LOONGARCH64_F21 + 1 ) , + REGISTER_LOONGARCH64_F23 = ( REGISTER_LOONGARCH64_F22 + 1 ) , + REGISTER_LOONGARCH64_F24 = ( REGISTER_LOONGARCH64_F23 + 1 ) , + REGISTER_LOONGARCH64_F25 = ( REGISTER_LOONGARCH64_F24 + 1 ) , + REGISTER_LOONGARCH64_F26 = ( REGISTER_LOONGARCH64_F25 + 1 ) , + REGISTER_LOONGARCH64_F27 = ( REGISTER_LOONGARCH64_F26 + 1 ) , + REGISTER_LOONGARCH64_F28 = ( REGISTER_LOONGARCH64_F27 + 1 ) , + REGISTER_LOONGARCH64_F29 = ( REGISTER_LOONGARCH64_F28 + 1 ) , + REGISTER_LOONGARCH64_F30 = ( REGISTER_LOONGARCH64_F29 + 1 ) , + REGISTER_LOONGARCH64_F31 = ( REGISTER_LOONGARCH64_F30 + 1 ) , REGISTER_RISCV64_PC = 0, - REGISTER_RISCV64_RA = ( REGISTER_RISCV64_PC + 1), - REGISTER_RISCV64_SP = ( REGISTER_RISCV64_RA + 1), - REGISTER_RISCV64_GP = ( REGISTER_RISCV64_SP + 1), - REGISTER_RISCV64_TP = ( REGISTER_RISCV64_GP + 1 ), - REGISTER_RISCV64_T0 = ( REGISTER_RISCV64_TP + 1 ), - REGISTER_RISCV64_T1 = ( REGISTER_RISCV64_T0 + 1 ), - REGISTER_RISCV64_T2 = ( REGISTER_RISCV64_T1 + 1 ), - REGISTER_RISCV64_FP = ( REGISTER_RISCV64_T2 + 1 ), - REGISTER_RISCV64_S1 = ( REGISTER_RISCV64_FP + 1 ), - REGISTER_RISCV64_A0 = ( REGISTER_RISCV64_S1 + 1 ), - REGISTER_RISCV64_A1 = ( REGISTER_RISCV64_A0 + 1 ), - REGISTER_RISCV64_A2 = ( REGISTER_RISCV64_A1 + 1 ), - REGISTER_RISCV64_A3 = ( REGISTER_RISCV64_A2 + 1 ), - REGISTER_RISCV64_A4 = ( REGISTER_RISCV64_A3 + 1 ), - REGISTER_RISCV64_A5 = ( REGISTER_RISCV64_A4 + 1 ), - REGISTER_RISCV64_A6 = ( REGISTER_RISCV64_A5 + 1 ), - REGISTER_RISCV64_A7 = ( REGISTER_RISCV64_A6 + 1 ), - REGISTER_RISCV64_S2 = ( REGISTER_RISCV64_A7 + 1 ), - REGISTER_RISCV64_S3 = ( REGISTER_RISCV64_S2 + 1 ), - REGISTER_RISCV64_S4 = ( REGISTER_RISCV64_S3 + 1 ), - REGISTER_RISCV64_S5 = ( REGISTER_RISCV64_S4 + 1 ), - REGISTER_RISCV64_S6 = ( REGISTER_RISCV64_S5 + 1 ), - REGISTER_RISCV64_S7 = ( REGISTER_RISCV64_S6 + 1 ), - REGISTER_RISCV64_S8 = ( REGISTER_RISCV64_S7 + 1 ), - REGISTER_RISCV64_S9 = ( REGISTER_RISCV64_S8 + 1 ), - REGISTER_RISCV64_S10 = ( REGISTER_RISCV64_S9 + 1 ), - REGISTER_RISCV64_S11 = ( REGISTER_RISCV64_S10 + 1 ), - REGISTER_RISCV64_T3 = ( REGISTER_RISCV64_S11 + 1 ), - REGISTER_RISCV64_T4 = ( REGISTER_RISCV64_T3 + 1 ), - REGISTER_RISCV64_T5 = ( REGISTER_RISCV64_T4 + 1 ), - REGISTER_RISCV64_T6 = ( REGISTER_RISCV64_T5 + 1 ), - REGISTER_RISCV64_F0 = ( REGISTER_RISCV64_T6 + 1 ), - REGISTER_RISCV64_F1 = ( REGISTER_RISCV64_F0 + 1 ), - REGISTER_RISCV64_F2 = ( REGISTER_RISCV64_F1 + 1 ), - REGISTER_RISCV64_F3 = ( REGISTER_RISCV64_F2 + 1 ), - REGISTER_RISCV64_F4 = ( REGISTER_RISCV64_F3 + 1 ), - REGISTER_RISCV64_F5 = ( REGISTER_RISCV64_F4 + 1 ), - REGISTER_RISCV64_F6 = ( REGISTER_RISCV64_F5 + 1 ), - REGISTER_RISCV64_F7 = ( REGISTER_RISCV64_F6 + 1 ), - REGISTER_RISCV64_F8 = ( REGISTER_RISCV64_F7 + 1 ), - REGISTER_RISCV64_F9 = ( REGISTER_RISCV64_F8 + 1 ), - REGISTER_RISCV64_F10 = ( REGISTER_RISCV64_F9 + 1 ), - REGISTER_RISCV64_F11 = ( REGISTER_RISCV64_F10 + 1 ), - REGISTER_RISCV64_F12 = ( REGISTER_RISCV64_F11 + 1 ), - REGISTER_RISCV64_F13 = ( REGISTER_RISCV64_F12 + 1 ), - REGISTER_RISCV64_F14 = ( REGISTER_RISCV64_F13 + 1 ), - REGISTER_RISCV64_F15 = ( REGISTER_RISCV64_F14 + 1 ), - REGISTER_RISCV64_F16 = ( REGISTER_RISCV64_F15 + 1 ), - REGISTER_RISCV64_F17 = ( REGISTER_RISCV64_F16 + 1 ), - REGISTER_RISCV64_F18 = ( REGISTER_RISCV64_F17 + 1 ), - REGISTER_RISCV64_F19 = ( REGISTER_RISCV64_F18 + 1 ), - REGISTER_RISCV64_F20 = ( REGISTER_RISCV64_F19 + 1 ), - REGISTER_RISCV64_F21 = ( REGISTER_RISCV64_F20 + 1 ), - REGISTER_RISCV64_F22 = ( REGISTER_RISCV64_F21 + 1 ), - REGISTER_RISCV64_F23 = ( REGISTER_RISCV64_F22 + 1 ), - REGISTER_RISCV64_F24 = ( REGISTER_RISCV64_F23 + 1 ), - REGISTER_RISCV64_F25 = ( REGISTER_RISCV64_F24 + 1 ), - REGISTER_RISCV64_F26 = ( REGISTER_RISCV64_F25 + 1 ), - REGISTER_RISCV64_F27 = ( REGISTER_RISCV64_F26 + 1 ), - REGISTER_RISCV64_F28 = ( REGISTER_RISCV64_F27 + 1 ), - REGISTER_RISCV64_F29 = ( REGISTER_RISCV64_F28 + 1 ), - REGISTER_RISCV64_F30 = ( REGISTER_RISCV64_F29 + 1 ), - REGISTER_RISCV64_F31 = ( REGISTER_RISCV64_F30 + 1 ), - REGISTER_RISCV64_X0 = ( REGISTER_RISCV64_F31 + 1 ), // TODO-RISCV64-CQ: Add X0 for an use in debug. Need to check. - } CorDebugRegister; + REGISTER_RISCV64_RA = ( REGISTER_RISCV64_PC + 1 ) , + REGISTER_RISCV64_SP = ( REGISTER_RISCV64_RA + 1 ) , + REGISTER_RISCV64_GP = ( REGISTER_RISCV64_SP + 1 ) , + REGISTER_RISCV64_TP = ( REGISTER_RISCV64_GP + 1 ) , + REGISTER_RISCV64_T0 = ( REGISTER_RISCV64_TP + 1 ) , + REGISTER_RISCV64_T1 = ( REGISTER_RISCV64_T0 + 1 ) , + REGISTER_RISCV64_T2 = ( REGISTER_RISCV64_T1 + 1 ) , + REGISTER_RISCV64_FP = ( REGISTER_RISCV64_T2 + 1 ) , + REGISTER_RISCV64_S1 = ( REGISTER_RISCV64_FP + 1 ) , + REGISTER_RISCV64_A0 = ( REGISTER_RISCV64_S1 + 1 ) , + REGISTER_RISCV64_A1 = ( REGISTER_RISCV64_A0 + 1 ) , + REGISTER_RISCV64_A2 = ( REGISTER_RISCV64_A1 + 1 ) , + REGISTER_RISCV64_A3 = ( REGISTER_RISCV64_A2 + 1 ) , + REGISTER_RISCV64_A4 = ( REGISTER_RISCV64_A3 + 1 ) , + REGISTER_RISCV64_A5 = ( REGISTER_RISCV64_A4 + 1 ) , + REGISTER_RISCV64_A6 = ( REGISTER_RISCV64_A5 + 1 ) , + REGISTER_RISCV64_A7 = ( REGISTER_RISCV64_A6 + 1 ) , + REGISTER_RISCV64_S2 = ( REGISTER_RISCV64_A7 + 1 ) , + REGISTER_RISCV64_S3 = ( REGISTER_RISCV64_S2 + 1 ) , + REGISTER_RISCV64_S4 = ( REGISTER_RISCV64_S3 + 1 ) , + REGISTER_RISCV64_S5 = ( REGISTER_RISCV64_S4 + 1 ) , + REGISTER_RISCV64_S6 = ( REGISTER_RISCV64_S5 + 1 ) , + REGISTER_RISCV64_S7 = ( REGISTER_RISCV64_S6 + 1 ) , + REGISTER_RISCV64_S8 = ( REGISTER_RISCV64_S7 + 1 ) , + REGISTER_RISCV64_S9 = ( REGISTER_RISCV64_S8 + 1 ) , + REGISTER_RISCV64_S10 = ( REGISTER_RISCV64_S9 + 1 ) , + REGISTER_RISCV64_S11 = ( REGISTER_RISCV64_S10 + 1 ) , + REGISTER_RISCV64_T3 = ( REGISTER_RISCV64_S11 + 1 ) , + REGISTER_RISCV64_T4 = ( REGISTER_RISCV64_T3 + 1 ) , + REGISTER_RISCV64_T5 = ( REGISTER_RISCV64_T4 + 1 ) , + REGISTER_RISCV64_T6 = ( REGISTER_RISCV64_T5 + 1 ) , + REGISTER_RISCV64_F0 = ( REGISTER_RISCV64_T6 + 1 ) , + REGISTER_RISCV64_F1 = ( REGISTER_RISCV64_F0 + 1 ) , + REGISTER_RISCV64_F2 = ( REGISTER_RISCV64_F1 + 1 ) , + REGISTER_RISCV64_F3 = ( REGISTER_RISCV64_F2 + 1 ) , + REGISTER_RISCV64_F4 = ( REGISTER_RISCV64_F3 + 1 ) , + REGISTER_RISCV64_F5 = ( REGISTER_RISCV64_F4 + 1 ) , + REGISTER_RISCV64_F6 = ( REGISTER_RISCV64_F5 + 1 ) , + REGISTER_RISCV64_F7 = ( REGISTER_RISCV64_F6 + 1 ) , + REGISTER_RISCV64_F8 = ( REGISTER_RISCV64_F7 + 1 ) , + REGISTER_RISCV64_F9 = ( REGISTER_RISCV64_F8 + 1 ) , + REGISTER_RISCV64_F10 = ( REGISTER_RISCV64_F9 + 1 ) , + REGISTER_RISCV64_F11 = ( REGISTER_RISCV64_F10 + 1 ) , + REGISTER_RISCV64_F12 = ( REGISTER_RISCV64_F11 + 1 ) , + REGISTER_RISCV64_F13 = ( REGISTER_RISCV64_F12 + 1 ) , + REGISTER_RISCV64_F14 = ( REGISTER_RISCV64_F13 + 1 ) , + REGISTER_RISCV64_F15 = ( REGISTER_RISCV64_F14 + 1 ) , + REGISTER_RISCV64_F16 = ( REGISTER_RISCV64_F15 + 1 ) , + REGISTER_RISCV64_F17 = ( REGISTER_RISCV64_F16 + 1 ) , + REGISTER_RISCV64_F18 = ( REGISTER_RISCV64_F17 + 1 ) , + REGISTER_RISCV64_F19 = ( REGISTER_RISCV64_F18 + 1 ) , + REGISTER_RISCV64_F20 = ( REGISTER_RISCV64_F19 + 1 ) , + REGISTER_RISCV64_F21 = ( REGISTER_RISCV64_F20 + 1 ) , + REGISTER_RISCV64_F22 = ( REGISTER_RISCV64_F21 + 1 ) , + REGISTER_RISCV64_F23 = ( REGISTER_RISCV64_F22 + 1 ) , + REGISTER_RISCV64_F24 = ( REGISTER_RISCV64_F23 + 1 ) , + REGISTER_RISCV64_F25 = ( REGISTER_RISCV64_F24 + 1 ) , + REGISTER_RISCV64_F26 = ( REGISTER_RISCV64_F25 + 1 ) , + REGISTER_RISCV64_F27 = ( REGISTER_RISCV64_F26 + 1 ) , + REGISTER_RISCV64_F28 = ( REGISTER_RISCV64_F27 + 1 ) , + REGISTER_RISCV64_F29 = ( REGISTER_RISCV64_F28 + 1 ) , + REGISTER_RISCV64_F30 = ( REGISTER_RISCV64_F29 + 1 ) , + REGISTER_RISCV64_F31 = ( REGISTER_RISCV64_F30 + 1 ) , + REGISTER_RISCV64_X0 = ( REGISTER_RISCV64_F31 + 1 ) + } CorDebugRegister; EXTERN_C const IID IID_ICorDebugRegisterSet; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB0B-8A68-11d2-983C-0000F808342D") ICorDebugRegisterSet : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( + virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( /* [out] */ ULONG64 *pAvailable) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisters( + + virtual HRESULT STDMETHODCALLTYPE GetRegisters( /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [length_is][size_is][out] */ CORDB_REGISTER regBuffer[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRegisters( + + virtual HRESULT STDMETHODCALLTYPE SetRegisters( /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE GetThreadContext( /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetThreadContext( + + virtual HRESULT STDMETHODCALLTYPE SetThreadContext( /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRegisterSetVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRegisterSet * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRegisterSet * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRegisterSet * This); - - HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( + + DECLSPEC_XFGVIRT(ICorDebugRegisterSet, GetRegistersAvailable) + HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( ICorDebugRegisterSet * This, /* [out] */ ULONG64 *pAvailable); - - HRESULT ( STDMETHODCALLTYPE *GetRegisters )( + + DECLSPEC_XFGVIRT(ICorDebugRegisterSet, GetRegisters) + HRESULT ( STDMETHODCALLTYPE *GetRegisters )( ICorDebugRegisterSet * This, /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [length_is][size_is][out] */ CORDB_REGISTER regBuffer[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetRegisters )( + + DECLSPEC_XFGVIRT(ICorDebugRegisterSet, SetRegisters) + HRESULT ( STDMETHODCALLTYPE *SetRegisters )( ICorDebugRegisterSet * This, /* [in] */ ULONG64 mask, /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( + + DECLSPEC_XFGVIRT(ICorDebugRegisterSet, GetThreadContext) + HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( ICorDebugRegisterSet * This, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][out][in] */ BYTE context[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( + + DECLSPEC_XFGVIRT(ICorDebugRegisterSet, SetThreadContext) + HRESULT ( STDMETHODCALLTYPE *SetThreadContext )( ICorDebugRegisterSet * This, /* [in] */ ULONG32 contextSize, /* [size_is][length_is][in] */ BYTE context[ ]); - + END_INTERFACE } ICorDebugRegisterSetVtbl; @@ -9410,118 +9865,124 @@ EXTERN_C const IID IID_ICorDebugRegisterSet; CONST_VTBL struct ICorDebugRegisterSetVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRegisterSet_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRegisterSet_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRegisterSet_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRegisterSet_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRegisterSet_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRegisterSet_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRegisterSet_GetRegistersAvailable(This,pAvailable) \ - ( (This)->lpVtbl -> GetRegistersAvailable(This,pAvailable) ) +#define ICorDebugRegisterSet_GetRegistersAvailable(This,pAvailable) \ + ( (This)->lpVtbl -> GetRegistersAvailable(This,pAvailable) ) -#define ICorDebugRegisterSet_GetRegisters(This,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> GetRegisters(This,mask,regCount,regBuffer) ) +#define ICorDebugRegisterSet_GetRegisters(This,mask,regCount,regBuffer) \ + ( (This)->lpVtbl -> GetRegisters(This,mask,regCount,regBuffer) ) -#define ICorDebugRegisterSet_SetRegisters(This,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> SetRegisters(This,mask,regCount,regBuffer) ) +#define ICorDebugRegisterSet_SetRegisters(This,mask,regCount,regBuffer) \ + ( (This)->lpVtbl -> SetRegisters(This,mask,regCount,regBuffer) ) -#define ICorDebugRegisterSet_GetThreadContext(This,contextSize,context) \ - ( (This)->lpVtbl -> GetThreadContext(This,contextSize,context) ) +#define ICorDebugRegisterSet_GetThreadContext(This,contextSize,context) \ + ( (This)->lpVtbl -> GetThreadContext(This,contextSize,context) ) -#define ICorDebugRegisterSet_SetThreadContext(This,contextSize,context) \ - ( (This)->lpVtbl -> SetThreadContext(This,contextSize,context) ) +#define ICorDebugRegisterSet_SetThreadContext(This,contextSize,context) \ + ( (This)->lpVtbl -> SetThreadContext(This,contextSize,context) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRegisterSet_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRegisterSet_INTERFACE_DEFINED__ */ #ifndef __ICorDebugRegisterSet2_INTERFACE_DEFINED__ #define __ICorDebugRegisterSet2_INTERFACE_DEFINED__ /* interface ICorDebugRegisterSet2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRegisterSet2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("6DC7BA3F-89BA-4459-9EC1-9D60937B468D") ICorDebugRegisterSet2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( + virtual HRESULT STDMETHODCALLTYPE GetRegistersAvailable( /* [in] */ ULONG32 numChunks, /* [size_is][out] */ BYTE availableRegChunks[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisters( + + virtual HRESULT STDMETHODCALLTYPE GetRegisters( /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][out] */ CORDB_REGISTER regBuffer[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetRegisters( + + virtual HRESULT STDMETHODCALLTYPE SetRegisters( /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRegisterSet2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRegisterSet2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRegisterSet2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRegisterSet2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( + + DECLSPEC_XFGVIRT(ICorDebugRegisterSet2, GetRegistersAvailable) + HRESULT ( STDMETHODCALLTYPE *GetRegistersAvailable )( ICorDebugRegisterSet2 * This, /* [in] */ ULONG32 numChunks, /* [size_is][out] */ BYTE availableRegChunks[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetRegisters )( + + DECLSPEC_XFGVIRT(ICorDebugRegisterSet2, GetRegisters) + HRESULT ( STDMETHODCALLTYPE *GetRegisters )( ICorDebugRegisterSet2 * This, /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][out] */ CORDB_REGISTER regBuffer[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetRegisters )( + + DECLSPEC_XFGVIRT(ICorDebugRegisterSet2, SetRegisters) + HRESULT ( STDMETHODCALLTYPE *SetRegisters )( ICorDebugRegisterSet2 * This, /* [in] */ ULONG32 maskCount, /* [size_is][in] */ BYTE mask[ ], /* [in] */ ULONG32 regCount, /* [size_is][in] */ CORDB_REGISTER regBuffer[ ]); - + END_INTERFACE } ICorDebugRegisterSet2Vtbl; @@ -9530,201 +9991,220 @@ EXTERN_C const IID IID_ICorDebugRegisterSet2; CONST_VTBL struct ICorDebugRegisterSet2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRegisterSet2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRegisterSet2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRegisterSet2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRegisterSet2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRegisterSet2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRegisterSet2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRegisterSet2_GetRegistersAvailable(This,numChunks,availableRegChunks) \ - ( (This)->lpVtbl -> GetRegistersAvailable(This,numChunks,availableRegChunks) ) +#define ICorDebugRegisterSet2_GetRegistersAvailable(This,numChunks,availableRegChunks) \ + ( (This)->lpVtbl -> GetRegistersAvailable(This,numChunks,availableRegChunks) ) -#define ICorDebugRegisterSet2_GetRegisters(This,maskCount,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> GetRegisters(This,maskCount,mask,regCount,regBuffer) ) +#define ICorDebugRegisterSet2_GetRegisters(This,maskCount,mask,regCount,regBuffer) \ + ( (This)->lpVtbl -> GetRegisters(This,maskCount,mask,regCount,regBuffer) ) -#define ICorDebugRegisterSet2_SetRegisters(This,maskCount,mask,regCount,regBuffer) \ - ( (This)->lpVtbl -> SetRegisters(This,maskCount,mask,regCount,regBuffer) ) +#define ICorDebugRegisterSet2_SetRegisters(This,maskCount,mask,regCount,regBuffer) \ + ( (This)->lpVtbl -> SetRegisters(This,maskCount,mask,regCount,regBuffer) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRegisterSet2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRegisterSet2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread_INTERFACE_DEFINED__ #define __ICorDebugThread_INTERFACE_DEFINED__ /* interface ICorDebugThread */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugUserState { - USER_STOP_REQUESTED = 0x1, - USER_SUSPEND_REQUESTED = 0x2, - USER_BACKGROUND = 0x4, - USER_UNSTARTED = 0x8, - USER_STOPPED = 0x10, - USER_WAIT_SLEEP_JOIN = 0x20, - USER_SUSPENDED = 0x40, - USER_UNSAFE_POINT = 0x80, - USER_THREADPOOL = 0x100 - } CorDebugUserState; + USER_STOP_REQUESTED = 0x1, + USER_SUSPEND_REQUESTED = 0x2, + USER_BACKGROUND = 0x4, + USER_UNSTARTED = 0x8, + USER_STOPPED = 0x10, + USER_WAIT_SLEEP_JOIN = 0x20, + USER_SUSPENDED = 0x40, + USER_UNSAFE_POINT = 0x80, + USER_THREADPOOL = 0x100 + } CorDebugUserState; EXTERN_C const IID IID_ICorDebugThread; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("938c6d66-7fb6-4f69-b389-425b8987329b") ICorDebugThread : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetID( + + virtual HRESULT STDMETHODCALLTYPE GetID( /* [out] */ DWORD *pdwThreadId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetHandle( + + virtual HRESULT STDMETHODCALLTYPE GetHandle( /* [out] */ HTHREAD *phThreadHandle) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAppDomain( + + virtual HRESULT STDMETHODCALLTYPE GetAppDomain( /* [out] */ ICorDebugAppDomain **ppAppDomain) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetDebugState( + + virtual HRESULT STDMETHODCALLTYPE SetDebugState( /* [in] */ CorDebugThreadState state) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDebugState( + + virtual HRESULT STDMETHODCALLTYPE GetDebugState( /* [out] */ CorDebugThreadState *pState) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetUserState( + + virtual HRESULT STDMETHODCALLTYPE GetUserState( /* [out] */ CorDebugUserState *pState) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentException( + + virtual HRESULT STDMETHODCALLTYPE GetCurrentException( /* [out] */ ICorDebugValue **ppExceptionObject) = 0; - + virtual HRESULT STDMETHODCALLTYPE ClearCurrentException( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStepper( + + virtual HRESULT STDMETHODCALLTYPE CreateStepper( /* [out] */ ICorDebugStepper **ppStepper) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateChains( + + virtual HRESULT STDMETHODCALLTYPE EnumerateChains( /* [out] */ ICorDebugChainEnum **ppChains) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveChain( + + virtual HRESULT STDMETHODCALLTYPE GetActiveChain( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( + + virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( + + virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( /* [out] */ ICorDebugRegisterSet **ppRegisters) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateEval( + + virtual HRESULT STDMETHODCALLTYPE CreateEval( /* [out] */ ICorDebugEval **ppEval) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetObject( + + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugValue **ppObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThreadVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread * This); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetProcess) + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugThread * This, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *GetID )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetID) + HRESULT ( STDMETHODCALLTYPE *GetID )( ICorDebugThread * This, /* [out] */ DWORD *pdwThreadId); - - HRESULT ( STDMETHODCALLTYPE *GetHandle )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetHandle) + HRESULT ( STDMETHODCALLTYPE *GetHandle )( ICorDebugThread * This, /* [out] */ HTHREAD *phThreadHandle); - - HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetAppDomain) + HRESULT ( STDMETHODCALLTYPE *GetAppDomain )( ICorDebugThread * This, /* [out] */ ICorDebugAppDomain **ppAppDomain); - - HRESULT ( STDMETHODCALLTYPE *SetDebugState )( + + DECLSPEC_XFGVIRT(ICorDebugThread, SetDebugState) + HRESULT ( STDMETHODCALLTYPE *SetDebugState )( ICorDebugThread * This, /* [in] */ CorDebugThreadState state); - - HRESULT ( STDMETHODCALLTYPE *GetDebugState )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetDebugState) + HRESULT ( STDMETHODCALLTYPE *GetDebugState )( ICorDebugThread * This, /* [out] */ CorDebugThreadState *pState); - - HRESULT ( STDMETHODCALLTYPE *GetUserState )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetUserState) + HRESULT ( STDMETHODCALLTYPE *GetUserState )( ICorDebugThread * This, /* [out] */ CorDebugUserState *pState); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentException )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetCurrentException) + HRESULT ( STDMETHODCALLTYPE *GetCurrentException )( ICorDebugThread * This, /* [out] */ ICorDebugValue **ppExceptionObject); - - HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( + + DECLSPEC_XFGVIRT(ICorDebugThread, ClearCurrentException) + HRESULT ( STDMETHODCALLTYPE *ClearCurrentException )( ICorDebugThread * This); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + DECLSPEC_XFGVIRT(ICorDebugThread, CreateStepper) + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugThread * This, /* [out] */ ICorDebugStepper **ppStepper); - - HRESULT ( STDMETHODCALLTYPE *EnumerateChains )( + + DECLSPEC_XFGVIRT(ICorDebugThread, EnumerateChains) + HRESULT ( STDMETHODCALLTYPE *EnumerateChains )( ICorDebugThread * This, /* [out] */ ICorDebugChainEnum **ppChains); - - HRESULT ( STDMETHODCALLTYPE *GetActiveChain )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetActiveChain) + HRESULT ( STDMETHODCALLTYPE *GetActiveChain )( ICorDebugThread * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetActiveFrame) + HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( ICorDebugThread * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetRegisterSet) + HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( ICorDebugThread * This, /* [out] */ ICorDebugRegisterSet **ppRegisters); - - HRESULT ( STDMETHODCALLTYPE *CreateEval )( + + DECLSPEC_XFGVIRT(ICorDebugThread, CreateEval) + HRESULT ( STDMETHODCALLTYPE *CreateEval )( ICorDebugThread * This, /* [out] */ ICorDebugEval **ppEval); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + DECLSPEC_XFGVIRT(ICorDebugThread, GetObject) + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugThread * This, /* [out] */ ICorDebugValue **ppObject); - + END_INTERFACE } ICorDebugThreadVtbl; @@ -9733,85 +10213,85 @@ EXTERN_C const IID IID_ICorDebugThread; CONST_VTBL struct ICorDebugThreadVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) +#define ICorDebugThread_GetProcess(This,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) -#define ICorDebugThread_GetID(This,pdwThreadId) \ - ( (This)->lpVtbl -> GetID(This,pdwThreadId) ) +#define ICorDebugThread_GetID(This,pdwThreadId) \ + ( (This)->lpVtbl -> GetID(This,pdwThreadId) ) -#define ICorDebugThread_GetHandle(This,phThreadHandle) \ - ( (This)->lpVtbl -> GetHandle(This,phThreadHandle) ) +#define ICorDebugThread_GetHandle(This,phThreadHandle) \ + ( (This)->lpVtbl -> GetHandle(This,phThreadHandle) ) -#define ICorDebugThread_GetAppDomain(This,ppAppDomain) \ - ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) +#define ICorDebugThread_GetAppDomain(This,ppAppDomain) \ + ( (This)->lpVtbl -> GetAppDomain(This,ppAppDomain) ) -#define ICorDebugThread_SetDebugState(This,state) \ - ( (This)->lpVtbl -> SetDebugState(This,state) ) +#define ICorDebugThread_SetDebugState(This,state) \ + ( (This)->lpVtbl -> SetDebugState(This,state) ) -#define ICorDebugThread_GetDebugState(This,pState) \ - ( (This)->lpVtbl -> GetDebugState(This,pState) ) +#define ICorDebugThread_GetDebugState(This,pState) \ + ( (This)->lpVtbl -> GetDebugState(This,pState) ) -#define ICorDebugThread_GetUserState(This,pState) \ - ( (This)->lpVtbl -> GetUserState(This,pState) ) +#define ICorDebugThread_GetUserState(This,pState) \ + ( (This)->lpVtbl -> GetUserState(This,pState) ) -#define ICorDebugThread_GetCurrentException(This,ppExceptionObject) \ - ( (This)->lpVtbl -> GetCurrentException(This,ppExceptionObject) ) +#define ICorDebugThread_GetCurrentException(This,ppExceptionObject) \ + ( (This)->lpVtbl -> GetCurrentException(This,ppExceptionObject) ) -#define ICorDebugThread_ClearCurrentException(This) \ - ( (This)->lpVtbl -> ClearCurrentException(This) ) +#define ICorDebugThread_ClearCurrentException(This) \ + ( (This)->lpVtbl -> ClearCurrentException(This) ) -#define ICorDebugThread_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugThread_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) -#define ICorDebugThread_EnumerateChains(This,ppChains) \ - ( (This)->lpVtbl -> EnumerateChains(This,ppChains) ) +#define ICorDebugThread_EnumerateChains(This,ppChains) \ + ( (This)->lpVtbl -> EnumerateChains(This,ppChains) ) -#define ICorDebugThread_GetActiveChain(This,ppChain) \ - ( (This)->lpVtbl -> GetActiveChain(This,ppChain) ) +#define ICorDebugThread_GetActiveChain(This,ppChain) \ + ( (This)->lpVtbl -> GetActiveChain(This,ppChain) ) -#define ICorDebugThread_GetActiveFrame(This,ppFrame) \ - ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) +#define ICorDebugThread_GetActiveFrame(This,ppFrame) \ + ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) -#define ICorDebugThread_GetRegisterSet(This,ppRegisters) \ - ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) +#define ICorDebugThread_GetRegisterSet(This,ppRegisters) \ + ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) -#define ICorDebugThread_CreateEval(This,ppEval) \ - ( (This)->lpVtbl -> CreateEval(This,ppEval) ) +#define ICorDebugThread_CreateEval(This,ppEval) \ + ( (This)->lpVtbl -> CreateEval(This,ppEval) ) -#define ICorDebugThread_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) +#define ICorDebugThread_GetObject(This,ppObject) \ + ( (This)->lpVtbl -> GetObject(This,ppObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread2_INTERFACE_DEFINED__ #define __ICorDebugThread2_INTERFACE_DEFINED__ /* interface ICorDebugThread2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ typedef struct _COR_ACTIVE_FUNCTION { @@ -9820,77 +10300,85 @@ typedef struct _COR_ACTIVE_FUNCTION ICorDebugFunction2 *pFunction; ULONG32 ilOffset; ULONG32 flags; - } COR_ACTIVE_FUNCTION; + } COR_ACTIVE_FUNCTION; EXTERN_C const IID IID_ICorDebugThread2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("2BD956D9-7B07-4bef-8A98-12AA862417C5") ICorDebugThread2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetActiveFunctions( + virtual HRESULT STDMETHODCALLTYPE GetActiveFunctions( /* [in] */ ULONG32 cFunctions, /* [out] */ ULONG32 *pcFunctions, /* [length_is][size_is][out][in] */ COR_ACTIVE_FUNCTION pFunctions[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetConnectionID( + + virtual HRESULT STDMETHODCALLTYPE GetConnectionID( /* [out] */ CONNID *pdwConnectionId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetTaskID( + + virtual HRESULT STDMETHODCALLTYPE GetTaskID( /* [out] */ TASKID *pTaskId) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVolatileOSThreadID( + + virtual HRESULT STDMETHODCALLTYPE GetVolatileOSThreadID( /* [out] */ DWORD *pdwTid) = 0; - - virtual HRESULT STDMETHODCALLTYPE InterceptCurrentException( + + virtual HRESULT STDMETHODCALLTYPE InterceptCurrentException( /* [in] */ ICorDebugFrame *pFrame) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThread2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetActiveFunctions )( + + DECLSPEC_XFGVIRT(ICorDebugThread2, GetActiveFunctions) + HRESULT ( STDMETHODCALLTYPE *GetActiveFunctions )( ICorDebugThread2 * This, /* [in] */ ULONG32 cFunctions, /* [out] */ ULONG32 *pcFunctions, /* [length_is][size_is][out][in] */ COR_ACTIVE_FUNCTION pFunctions[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetConnectionID )( + + DECLSPEC_XFGVIRT(ICorDebugThread2, GetConnectionID) + HRESULT ( STDMETHODCALLTYPE *GetConnectionID )( ICorDebugThread2 * This, /* [out] */ CONNID *pdwConnectionId); - - HRESULT ( STDMETHODCALLTYPE *GetTaskID )( + + DECLSPEC_XFGVIRT(ICorDebugThread2, GetTaskID) + HRESULT ( STDMETHODCALLTYPE *GetTaskID )( ICorDebugThread2 * This, /* [out] */ TASKID *pTaskId); - - HRESULT ( STDMETHODCALLTYPE *GetVolatileOSThreadID )( + + DECLSPEC_XFGVIRT(ICorDebugThread2, GetVolatileOSThreadID) + HRESULT ( STDMETHODCALLTYPE *GetVolatileOSThreadID )( ICorDebugThread2 * This, /* [out] */ DWORD *pdwTid); - - HRESULT ( STDMETHODCALLTYPE *InterceptCurrentException )( + + DECLSPEC_XFGVIRT(ICorDebugThread2, InterceptCurrentException) + HRESULT ( STDMETHODCALLTYPE *InterceptCurrentException )( ICorDebugThread2 * This, /* [in] */ ICorDebugFrame *pFrame); - + END_INTERFACE } ICorDebugThread2Vtbl; @@ -9899,101 +10387,106 @@ EXTERN_C const IID IID_ICorDebugThread2; CONST_VTBL struct ICorDebugThread2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread2_GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) \ - ( (This)->lpVtbl -> GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) ) +#define ICorDebugThread2_GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) \ + ( (This)->lpVtbl -> GetActiveFunctions(This,cFunctions,pcFunctions,pFunctions) ) -#define ICorDebugThread2_GetConnectionID(This,pdwConnectionId) \ - ( (This)->lpVtbl -> GetConnectionID(This,pdwConnectionId) ) +#define ICorDebugThread2_GetConnectionID(This,pdwConnectionId) \ + ( (This)->lpVtbl -> GetConnectionID(This,pdwConnectionId) ) -#define ICorDebugThread2_GetTaskID(This,pTaskId) \ - ( (This)->lpVtbl -> GetTaskID(This,pTaskId) ) +#define ICorDebugThread2_GetTaskID(This,pTaskId) \ + ( (This)->lpVtbl -> GetTaskID(This,pTaskId) ) -#define ICorDebugThread2_GetVolatileOSThreadID(This,pdwTid) \ - ( (This)->lpVtbl -> GetVolatileOSThreadID(This,pdwTid) ) +#define ICorDebugThread2_GetVolatileOSThreadID(This,pdwTid) \ + ( (This)->lpVtbl -> GetVolatileOSThreadID(This,pdwTid) ) -#define ICorDebugThread2_InterceptCurrentException(This,pFrame) \ - ( (This)->lpVtbl -> InterceptCurrentException(This,pFrame) ) +#define ICorDebugThread2_InterceptCurrentException(This,pFrame) \ + ( (This)->lpVtbl -> InterceptCurrentException(This,pFrame) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread3_INTERFACE_DEFINED__ #define __ICorDebugThread3_INTERFACE_DEFINED__ /* interface ICorDebugThread3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThread3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F8544EC3-5E4E-46c7-8D3E-A52B8405B1F5") ICorDebugThread3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateStackWalk( + virtual HRESULT STDMETHODCALLTYPE CreateStackWalk( /* [out] */ ICorDebugStackWalk **ppStackWalk) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveInternalFrames( + + virtual HRESULT STDMETHODCALLTYPE GetActiveInternalFrames( /* [in] */ ULONG32 cInternalFrames, /* [out] */ ULONG32 *pcInternalFrames, /* [length_is][size_is][out][in] */ ICorDebugInternalFrame2 *ppInternalFrames[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThread3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread3 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateStackWalk )( + + DECLSPEC_XFGVIRT(ICorDebugThread3, CreateStackWalk) + HRESULT ( STDMETHODCALLTYPE *CreateStackWalk )( ICorDebugThread3 * This, /* [out] */ ICorDebugStackWalk **ppStackWalk); - - HRESULT ( STDMETHODCALLTYPE *GetActiveInternalFrames )( + + DECLSPEC_XFGVIRT(ICorDebugThread3, GetActiveInternalFrames) + HRESULT ( STDMETHODCALLTYPE *GetActiveInternalFrames )( ICorDebugThread3 * This, /* [in] */ ULONG32 cInternalFrames, /* [out] */ ULONG32 *pcInternalFrames, /* [length_is][size_is][out][in] */ ICorDebugInternalFrame2 *ppInternalFrames[ ]); - + END_INTERFACE } ICorDebugThread3Vtbl; @@ -10002,93 +10495,99 @@ EXTERN_C const IID IID_ICorDebugThread3; CONST_VTBL struct ICorDebugThread3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread3_CreateStackWalk(This,ppStackWalk) \ - ( (This)->lpVtbl -> CreateStackWalk(This,ppStackWalk) ) +#define ICorDebugThread3_CreateStackWalk(This,ppStackWalk) \ + ( (This)->lpVtbl -> CreateStackWalk(This,ppStackWalk) ) -#define ICorDebugThread3_GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) \ - ( (This)->lpVtbl -> GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) ) +#define ICorDebugThread3_GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) \ + ( (This)->lpVtbl -> GetActiveInternalFrames(This,cInternalFrames,pcInternalFrames,ppInternalFrames) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread4_INTERFACE_DEFINED__ #define __ICorDebugThread4_INTERFACE_DEFINED__ /* interface ICorDebugThread4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThread4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("1A1F204B-1C66-4637-823F-3EE6C744A69C") ICorDebugThread4 : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE HasUnhandledException( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBlockingObjects( + + virtual HRESULT STDMETHODCALLTYPE GetBlockingObjects( /* [out] */ ICorDebugBlockingObjectEnum **ppBlockingObjectEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentCustomDebuggerNotification( + + virtual HRESULT STDMETHODCALLTYPE GetCurrentCustomDebuggerNotification( /* [out] */ ICorDebugValue **ppNotificationObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThread4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread4 * This); - - HRESULT ( STDMETHODCALLTYPE *HasUnhandledException )( + + DECLSPEC_XFGVIRT(ICorDebugThread4, HasUnhandledException) + HRESULT ( STDMETHODCALLTYPE *HasUnhandledException )( ICorDebugThread4 * This); - - HRESULT ( STDMETHODCALLTYPE *GetBlockingObjects )( + + DECLSPEC_XFGVIRT(ICorDebugThread4, GetBlockingObjects) + HRESULT ( STDMETHODCALLTYPE *GetBlockingObjects )( ICorDebugThread4 * This, /* [out] */ ICorDebugBlockingObjectEnum **ppBlockingObjectEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentCustomDebuggerNotification )( + + DECLSPEC_XFGVIRT(ICorDebugThread4, GetCurrentCustomDebuggerNotification) + HRESULT ( STDMETHODCALLTYPE *GetCurrentCustomDebuggerNotification )( ICorDebugThread4 * This, /* [out] */ ICorDebugValue **ppNotificationObject); - + END_INTERFACE } ICorDebugThread4Vtbl; @@ -10097,86 +10596,90 @@ EXTERN_C const IID IID_ICorDebugThread4; CONST_VTBL struct ICorDebugThread4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread4_HasUnhandledException(This) \ - ( (This)->lpVtbl -> HasUnhandledException(This) ) +#define ICorDebugThread4_HasUnhandledException(This) \ + ( (This)->lpVtbl -> HasUnhandledException(This) ) -#define ICorDebugThread4_GetBlockingObjects(This,ppBlockingObjectEnum) \ - ( (This)->lpVtbl -> GetBlockingObjects(This,ppBlockingObjectEnum) ) +#define ICorDebugThread4_GetBlockingObjects(This,ppBlockingObjectEnum) \ + ( (This)->lpVtbl -> GetBlockingObjects(This,ppBlockingObjectEnum) ) -#define ICorDebugThread4_GetCurrentCustomDebuggerNotification(This,ppNotificationObject) \ - ( (This)->lpVtbl -> GetCurrentCustomDebuggerNotification(This,ppNotificationObject) ) +#define ICorDebugThread4_GetCurrentCustomDebuggerNotification(This,ppNotificationObject) \ + ( (This)->lpVtbl -> GetCurrentCustomDebuggerNotification(This,ppNotificationObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThread5_INTERFACE_DEFINED__ #define __ICorDebugThread5_INTERFACE_DEFINED__ /* interface ICorDebugThread5 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThread5; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F98421C4-E506-4D24-916F-0237EE853EC6") ICorDebugThread5 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetBytesAllocated( + virtual HRESULT STDMETHODCALLTYPE GetBytesAllocated( /* [out] */ ULONG64 *pSohAllocatedBytes, /* [out] */ ULONG64 *pUohAllocatedBytes) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThread5Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThread5 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThread5 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThread5 * This); - - HRESULT ( STDMETHODCALLTYPE *GetBytesAllocated )( + + DECLSPEC_XFGVIRT(ICorDebugThread5, GetBytesAllocated) + HRESULT ( STDMETHODCALLTYPE *GetBytesAllocated )( ICorDebugThread5 * This, /* [out] */ ULONG64 *pSohAllocatedBytes, /* [out] */ ULONG64 *pUohAllocatedBytes); - + END_INTERFACE } ICorDebugThread5Vtbl; @@ -10185,114 +10688,121 @@ EXTERN_C const IID IID_ICorDebugThread5; CONST_VTBL struct ICorDebugThread5Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThread5_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThread5_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThread5_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThread5_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThread5_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThread5_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThread5_GetBytesAllocated(This,pSohAllocatedBytes,pUohAllocatedBytes) \ - ( (This)->lpVtbl -> GetBytesAllocated(This,pSohAllocatedBytes,pUohAllocatedBytes) ) +#define ICorDebugThread5_GetBytesAllocated(This,pSohAllocatedBytes,pUohAllocatedBytes) \ + ( (This)->lpVtbl -> GetBytesAllocated(This,pSohAllocatedBytes,pUohAllocatedBytes) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThread5_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThread5_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStackWalk_INTERFACE_DEFINED__ #define __ICorDebugStackWalk_INTERFACE_DEFINED__ /* interface ICorDebugStackWalk */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugSetContextFlag { - SET_CONTEXT_FLAG_ACTIVE_FRAME = 0x1, - SET_CONTEXT_FLAG_UNWIND_FRAME = 0x2 - } CorDebugSetContextFlag; + SET_CONTEXT_FLAG_ACTIVE_FRAME = 0x1, + SET_CONTEXT_FLAG_UNWIND_FRAME = 0x2 + } CorDebugSetContextFlag; EXTERN_C const IID IID_ICorDebugStackWalk; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A0647DE9-55DE-4816-929C-385271C64CF7") ICorDebugStackWalk : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetContext( + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextBufSize, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetContext( + + virtual HRESULT STDMETHODCALLTYPE SetContext( /* [in] */ CorDebugSetContextFlag flag, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ BYTE context[ ]) = 0; - + virtual HRESULT STDMETHODCALLTYPE Next( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFrame( + + virtual HRESULT STDMETHODCALLTYPE GetFrame( /* [out] */ ICorDebugFrame **pFrame) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStackWalkVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStackWalk * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStackWalk * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStackWalk * This); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + DECLSPEC_XFGVIRT(ICorDebugStackWalk, GetContext) + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugStackWalk * This, /* [in] */ ULONG32 contextFlags, /* [in] */ ULONG32 contextBufSize, /* [out] */ ULONG32 *contextSize, /* [size_is][out] */ BYTE contextBuf[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetContext )( + + DECLSPEC_XFGVIRT(ICorDebugStackWalk, SetContext) + HRESULT ( STDMETHODCALLTYPE *SetContext )( ICorDebugStackWalk * This, /* [in] */ CorDebugSetContextFlag flag, /* [in] */ ULONG32 contextSize, /* [size_is][in] */ BYTE context[ ]); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugStackWalk, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugStackWalk * This); - - HRESULT ( STDMETHODCALLTYPE *GetFrame )( + + DECLSPEC_XFGVIRT(ICorDebugStackWalk, GetFrame) + HRESULT ( STDMETHODCALLTYPE *GetFrame )( ICorDebugStackWalk * This, /* [out] */ ICorDebugFrame **pFrame); - + END_INTERFACE } ICorDebugStackWalkVtbl; @@ -10301,184 +10811,199 @@ EXTERN_C const IID IID_ICorDebugStackWalk; CONST_VTBL struct ICorDebugStackWalkVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStackWalk_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStackWalk_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStackWalk_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStackWalk_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStackWalk_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStackWalk_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStackWalk_GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) \ - ( (This)->lpVtbl -> GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) ) +#define ICorDebugStackWalk_GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) \ + ( (This)->lpVtbl -> GetContext(This,contextFlags,contextBufSize,contextSize,contextBuf) ) -#define ICorDebugStackWalk_SetContext(This,flag,contextSize,context) \ - ( (This)->lpVtbl -> SetContext(This,flag,contextSize,context) ) +#define ICorDebugStackWalk_SetContext(This,flag,contextSize,context) \ + ( (This)->lpVtbl -> SetContext(This,flag,contextSize,context) ) -#define ICorDebugStackWalk_Next(This) \ - ( (This)->lpVtbl -> Next(This) ) +#define ICorDebugStackWalk_Next(This) \ + ( (This)->lpVtbl -> Next(This) ) -#define ICorDebugStackWalk_GetFrame(This,pFrame) \ - ( (This)->lpVtbl -> GetFrame(This,pFrame) ) +#define ICorDebugStackWalk_GetFrame(This,pFrame) \ + ( (This)->lpVtbl -> GetFrame(This,pFrame) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStackWalk_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStackWalk_INTERFACE_DEFINED__ */ #ifndef __ICorDebugChain_INTERFACE_DEFINED__ #define __ICorDebugChain_INTERFACE_DEFINED__ /* interface ICorDebugChain */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugChainReason { - CHAIN_NONE = 0, - CHAIN_CLASS_INIT = 0x1, - CHAIN_EXCEPTION_FILTER = 0x2, - CHAIN_SECURITY = 0x4, - CHAIN_CONTEXT_POLICY = 0x8, - CHAIN_INTERCEPTION = 0x10, - CHAIN_PROCESS_START = 0x20, - CHAIN_THREAD_START = 0x40, - CHAIN_ENTER_MANAGED = 0x80, - CHAIN_ENTER_UNMANAGED = 0x100, - CHAIN_DEBUGGER_EVAL = 0x200, - CHAIN_CONTEXT_SWITCH = 0x400, - CHAIN_FUNC_EVAL = 0x800 - } CorDebugChainReason; + CHAIN_NONE = 0, + CHAIN_CLASS_INIT = 0x1, + CHAIN_EXCEPTION_FILTER = 0x2, + CHAIN_SECURITY = 0x4, + CHAIN_CONTEXT_POLICY = 0x8, + CHAIN_INTERCEPTION = 0x10, + CHAIN_PROCESS_START = 0x20, + CHAIN_THREAD_START = 0x40, + CHAIN_ENTER_MANAGED = 0x80, + CHAIN_ENTER_UNMANAGED = 0x100, + CHAIN_DEBUGGER_EVAL = 0x200, + CHAIN_CONTEXT_SWITCH = 0x400, + CHAIN_FUNC_EVAL = 0x800 + } CorDebugChainReason; EXTERN_C const IID IID_ICorDebugChain; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEE-8A68-11d2-983C-0000F808342D") ICorDebugChain : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetThread( + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackRange( + + virtual HRESULT STDMETHODCALLTYPE GetStackRange( /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetContext( + + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [out] */ ICorDebugContext **ppContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCaller( + + virtual HRESULT STDMETHODCALLTYPE GetCaller( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallee( + + virtual HRESULT STDMETHODCALLTYPE GetCallee( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetPrevious( + + virtual HRESULT STDMETHODCALLTYPE GetPrevious( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNext( + + virtual HRESULT STDMETHODCALLTYPE GetNext( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsManaged( + + virtual HRESULT STDMETHODCALLTYPE IsManaged( /* [out] */ BOOL *pManaged) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateFrames( + + virtual HRESULT STDMETHODCALLTYPE EnumerateFrames( /* [out] */ ICorDebugFrameEnum **ppFrames) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( + + virtual HRESULT STDMETHODCALLTYPE GetActiveFrame( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( + + virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( /* [out] */ ICorDebugRegisterSet **ppRegisters) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetReason( + + virtual HRESULT STDMETHODCALLTYPE GetReason( /* [out] */ CorDebugChainReason *pReason) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugChainVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugChain * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugChain * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugChain * This); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetThread) + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugChain * This, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetStackRange) + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugChain * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetContext) + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugChain * This, /* [out] */ ICorDebugContext **ppContext); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetCaller) + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetCallee) + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetPrevious )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetPrevious) + HRESULT ( STDMETHODCALLTYPE *GetPrevious )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetNext )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetNext) + HRESULT ( STDMETHODCALLTYPE *GetNext )( ICorDebugChain * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *IsManaged )( + + DECLSPEC_XFGVIRT(ICorDebugChain, IsManaged) + HRESULT ( STDMETHODCALLTYPE *IsManaged )( ICorDebugChain * This, /* [out] */ BOOL *pManaged); - - HRESULT ( STDMETHODCALLTYPE *EnumerateFrames )( + + DECLSPEC_XFGVIRT(ICorDebugChain, EnumerateFrames) + HRESULT ( STDMETHODCALLTYPE *EnumerateFrames )( ICorDebugChain * This, /* [out] */ ICorDebugFrameEnum **ppFrames); - - HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetActiveFrame) + HRESULT ( STDMETHODCALLTYPE *GetActiveFrame )( ICorDebugChain * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetRegisterSet) + HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( ICorDebugChain * This, /* [out] */ ICorDebugRegisterSet **ppRegisters); - - HRESULT ( STDMETHODCALLTYPE *GetReason )( + + DECLSPEC_XFGVIRT(ICorDebugChain, GetReason) + HRESULT ( STDMETHODCALLTYPE *GetReason )( ICorDebugChain * This, /* [out] */ CorDebugChainReason *pReason); - + END_INTERFACE } ICorDebugChainVtbl; @@ -10487,162 +11012,173 @@ EXTERN_C const IID IID_ICorDebugChain; CONST_VTBL struct ICorDebugChainVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugChain_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugChain_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugChain_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugChain_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugChain_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugChain_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugChain_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugChain_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) -#define ICorDebugChain_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugChain_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugChain_GetContext(This,ppContext) \ - ( (This)->lpVtbl -> GetContext(This,ppContext) ) +#define ICorDebugChain_GetContext(This,ppContext) \ + ( (This)->lpVtbl -> GetContext(This,ppContext) ) -#define ICorDebugChain_GetCaller(This,ppChain) \ - ( (This)->lpVtbl -> GetCaller(This,ppChain) ) +#define ICorDebugChain_GetCaller(This,ppChain) \ + ( (This)->lpVtbl -> GetCaller(This,ppChain) ) -#define ICorDebugChain_GetCallee(This,ppChain) \ - ( (This)->lpVtbl -> GetCallee(This,ppChain) ) +#define ICorDebugChain_GetCallee(This,ppChain) \ + ( (This)->lpVtbl -> GetCallee(This,ppChain) ) -#define ICorDebugChain_GetPrevious(This,ppChain) \ - ( (This)->lpVtbl -> GetPrevious(This,ppChain) ) +#define ICorDebugChain_GetPrevious(This,ppChain) \ + ( (This)->lpVtbl -> GetPrevious(This,ppChain) ) -#define ICorDebugChain_GetNext(This,ppChain) \ - ( (This)->lpVtbl -> GetNext(This,ppChain) ) +#define ICorDebugChain_GetNext(This,ppChain) \ + ( (This)->lpVtbl -> GetNext(This,ppChain) ) -#define ICorDebugChain_IsManaged(This,pManaged) \ - ( (This)->lpVtbl -> IsManaged(This,pManaged) ) +#define ICorDebugChain_IsManaged(This,pManaged) \ + ( (This)->lpVtbl -> IsManaged(This,pManaged) ) -#define ICorDebugChain_EnumerateFrames(This,ppFrames) \ - ( (This)->lpVtbl -> EnumerateFrames(This,ppFrames) ) +#define ICorDebugChain_EnumerateFrames(This,ppFrames) \ + ( (This)->lpVtbl -> EnumerateFrames(This,ppFrames) ) -#define ICorDebugChain_GetActiveFrame(This,ppFrame) \ - ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) +#define ICorDebugChain_GetActiveFrame(This,ppFrame) \ + ( (This)->lpVtbl -> GetActiveFrame(This,ppFrame) ) -#define ICorDebugChain_GetRegisterSet(This,ppRegisters) \ - ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) +#define ICorDebugChain_GetRegisterSet(This,ppRegisters) \ + ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) -#define ICorDebugChain_GetReason(This,pReason) \ - ( (This)->lpVtbl -> GetReason(This,pReason) ) +#define ICorDebugChain_GetReason(This,pReason) \ + ( (This)->lpVtbl -> GetReason(This,pReason) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugChain_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugChain_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFrame_INTERFACE_DEFINED__ #define __ICorDebugFrame_INTERFACE_DEFINED__ /* interface ICorDebugFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAEF-8A68-11d2-983C-0000F808342D") ICorDebugFrame : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetChain( + virtual HRESULT STDMETHODCALLTYPE GetChain( /* [out] */ ICorDebugChain **ppChain) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCode( + + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunction( + + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionToken( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionToken( /* [out] */ mdMethodDef *pToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackRange( + + virtual HRESULT STDMETHODCALLTYPE GetStackRange( /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCaller( + + virtual HRESULT STDMETHODCALLTYPE GetCaller( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCallee( + + virtual HRESULT STDMETHODCALLTYPE GetCallee( /* [out] */ ICorDebugFrame **ppFrame) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateStepper( + + virtual HRESULT STDMETHODCALLTYPE CreateStepper( /* [out] */ ICorDebugStepper **ppStepper) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - + END_INTERFACE } ICorDebugFrameVtbl; @@ -10651,148 +11187,160 @@ EXTERN_C const IID IID_ICorDebugFrame; CONST_VTBL struct ICorDebugFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFrame_INTERFACE_DEFINED__ */ #ifndef __ICorDebugInternalFrame_INTERFACE_DEFINED__ #define __ICorDebugInternalFrame_INTERFACE_DEFINED__ /* interface ICorDebugInternalFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugInternalFrameType { - STUBFRAME_NONE = 0, - STUBFRAME_M2U = 0x1, - STUBFRAME_U2M = 0x2, - STUBFRAME_APPDOMAIN_TRANSITION = 0x3, - STUBFRAME_LIGHTWEIGHT_FUNCTION = 0x4, - STUBFRAME_FUNC_EVAL = 0x5, - STUBFRAME_INTERNALCALL = 0x6, - STUBFRAME_CLASS_INIT = 0x7, - STUBFRAME_EXCEPTION = 0x8, - STUBFRAME_SECURITY = 0x9, - STUBFRAME_JIT_COMPILATION = 0xa - } CorDebugInternalFrameType; + STUBFRAME_NONE = 0, + STUBFRAME_M2U = 0x1, + STUBFRAME_U2M = 0x2, + STUBFRAME_APPDOMAIN_TRANSITION = 0x3, + STUBFRAME_LIGHTWEIGHT_FUNCTION = 0x4, + STUBFRAME_FUNC_EVAL = 0x5, + STUBFRAME_INTERNALCALL = 0x6, + STUBFRAME_CLASS_INIT = 0x7, + STUBFRAME_EXCEPTION = 0x8, + STUBFRAME_SECURITY = 0x9, + STUBFRAME_JIT_COMPILATION = 0xa + } CorDebugInternalFrameType; EXTERN_C const IID IID_ICorDebugInternalFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("B92CC7F7-9D2D-45c4-BC2B-621FCC9DFBF4") ICorDebugInternalFrame : public ICorDebugFrame { public: - virtual HRESULT STDMETHODCALLTYPE GetFrameType( + virtual HRESULT STDMETHODCALLTYPE GetFrameType( /* [out] */ CorDebugInternalFrameType *pType) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugInternalFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugInternalFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugInternalFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugInternalFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugInternalFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugInternalFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugInternalFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - - HRESULT ( STDMETHODCALLTYPE *GetFrameType )( + + DECLSPEC_XFGVIRT(ICorDebugInternalFrame, GetFrameType) + HRESULT ( STDMETHODCALLTYPE *GetFrameType )( ICorDebugInternalFrame * This, /* [out] */ CorDebugInternalFrameType *pType); - + END_INTERFACE } ICorDebugInternalFrameVtbl; @@ -10801,112 +11349,117 @@ EXTERN_C const IID IID_ICorDebugInternalFrame; CONST_VTBL struct ICorDebugInternalFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugInternalFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugInternalFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugInternalFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugInternalFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugInternalFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugInternalFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugInternalFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugInternalFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugInternalFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugInternalFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugInternalFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugInternalFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugInternalFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugInternalFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugInternalFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugInternalFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugInternalFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugInternalFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugInternalFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugInternalFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugInternalFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugInternalFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) -#define ICorDebugInternalFrame_GetFrameType(This,pType) \ - ( (This)->lpVtbl -> GetFrameType(This,pType) ) +#define ICorDebugInternalFrame_GetFrameType(This,pType) \ + ( (This)->lpVtbl -> GetFrameType(This,pType) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugInternalFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugInternalFrame_INTERFACE_DEFINED__ */ #ifndef __ICorDebugInternalFrame2_INTERFACE_DEFINED__ #define __ICorDebugInternalFrame2_INTERFACE_DEFINED__ /* interface ICorDebugInternalFrame2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugInternalFrame2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("C0815BDC-CFAB-447e-A779-C116B454EB5B") ICorDebugInternalFrame2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetAddress( + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsCloserToLeaf( + + virtual HRESULT STDMETHODCALLTYPE IsCloserToLeaf( /* [in] */ ICorDebugFrame *pFrameToCompare, /* [out] */ BOOL *pIsCloser) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugInternalFrame2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugInternalFrame2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugInternalFrame2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugInternalFrame2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugInternalFrame2, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugInternalFrame2 * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *IsCloserToLeaf )( + + DECLSPEC_XFGVIRT(ICorDebugInternalFrame2, IsCloserToLeaf) + HRESULT ( STDMETHODCALLTYPE *IsCloserToLeaf )( ICorDebugInternalFrame2 * This, /* [in] */ ICorDebugFrame *pFrameToCompare, /* [out] */ BOOL *pIsCloser); - + END_INTERFACE } ICorDebugInternalFrame2Vtbl; @@ -10915,189 +11468,209 @@ EXTERN_C const IID IID_ICorDebugInternalFrame2; CONST_VTBL struct ICorDebugInternalFrame2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugInternalFrame2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugInternalFrame2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugInternalFrame2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugInternalFrame2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugInternalFrame2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugInternalFrame2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugInternalFrame2_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugInternalFrame2_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugInternalFrame2_IsCloserToLeaf(This,pFrameToCompare,pIsCloser) \ - ( (This)->lpVtbl -> IsCloserToLeaf(This,pFrameToCompare,pIsCloser) ) +#define ICorDebugInternalFrame2_IsCloserToLeaf(This,pFrameToCompare,pIsCloser) \ + ( (This)->lpVtbl -> IsCloserToLeaf(This,pFrameToCompare,pIsCloser) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugInternalFrame2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugInternalFrame2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILFrame_INTERFACE_DEFINED__ #define __ICorDebugILFrame_INTERFACE_DEFINED__ /* interface ICorDebugILFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugMappingResult { - MAPPING_PROLOG = 0x1, - MAPPING_EPILOG = 0x2, - MAPPING_NO_INFO = 0x4, - MAPPING_UNMAPPED_ADDRESS = 0x8, - MAPPING_EXACT = 0x10, - MAPPING_APPROXIMATE = 0x20 - } CorDebugMappingResult; + MAPPING_PROLOG = 0x1, + MAPPING_EPILOG = 0x2, + MAPPING_NO_INFO = 0x4, + MAPPING_UNMAPPED_ADDRESS = 0x8, + MAPPING_EXACT = 0x10, + MAPPING_APPROXIMATE = 0x20 + } CorDebugMappingResult; EXTERN_C const IID IID_ICorDebugILFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("03E26311-4F76-11d3-88C6-006097945418") ICorDebugILFrame : public ICorDebugFrame { public: - virtual HRESULT STDMETHODCALLTYPE GetIP( + virtual HRESULT STDMETHODCALLTYPE GetIP( /* [out] */ ULONG32 *pnOffset, /* [out] */ CorDebugMappingResult *pMappingResult) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetIP( + + virtual HRESULT STDMETHODCALLTYPE SetIP( /* [in] */ ULONG32 nOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariables( + + virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariables( /* [out] */ ICorDebugValueEnum **ppValueEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalVariable( + + virtual HRESULT STDMETHODCALLTYPE GetLocalVariable( /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateArguments( + + virtual HRESULT STDMETHODCALLTYPE EnumerateArguments( /* [out] */ ICorDebugValueEnum **ppValueEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetArgument( + + virtual HRESULT STDMETHODCALLTYPE GetArgument( /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackDepth( + + virtual HRESULT STDMETHODCALLTYPE GetStackDepth( /* [out] */ ULONG32 *pDepth) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackValue( + + virtual HRESULT STDMETHODCALLTYPE GetStackValue( /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanSetIP( + + virtual HRESULT STDMETHODCALLTYPE CanSetIP( /* [in] */ ULONG32 nOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugILFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugILFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugILFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugILFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugILFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugILFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugILFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugILFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - - HRESULT ( STDMETHODCALLTYPE *GetIP )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame, GetIP) + HRESULT ( STDMETHODCALLTYPE *GetIP )( ICorDebugILFrame * This, /* [out] */ ULONG32 *pnOffset, /* [out] */ CorDebugMappingResult *pMappingResult); - - HRESULT ( STDMETHODCALLTYPE *SetIP )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame, SetIP) + HRESULT ( STDMETHODCALLTYPE *SetIP )( ICorDebugILFrame * This, /* [in] */ ULONG32 nOffset); - - HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariables )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame, EnumerateLocalVariables) + HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariables )( ICorDebugILFrame * This, /* [out] */ ICorDebugValueEnum **ppValueEnum); - - HRESULT ( STDMETHODCALLTYPE *GetLocalVariable )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame, GetLocalVariable) + HRESULT ( STDMETHODCALLTYPE *GetLocalVariable )( ICorDebugILFrame * This, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *EnumerateArguments )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame, EnumerateArguments) + HRESULT ( STDMETHODCALLTYPE *EnumerateArguments )( ICorDebugILFrame * This, /* [out] */ ICorDebugValueEnum **ppValueEnum); - - HRESULT ( STDMETHODCALLTYPE *GetArgument )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame, GetArgument) + HRESULT ( STDMETHODCALLTYPE *GetArgument )( ICorDebugILFrame * This, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetStackDepth )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame, GetStackDepth) + HRESULT ( STDMETHODCALLTYPE *GetStackDepth )( ICorDebugILFrame * This, /* [out] */ ULONG32 *pDepth); - - HRESULT ( STDMETHODCALLTYPE *GetStackValue )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame, GetStackValue) + HRESULT ( STDMETHODCALLTYPE *GetStackValue )( ICorDebugILFrame * This, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *CanSetIP )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame, CanSetIP) + HRESULT ( STDMETHODCALLTYPE *CanSetIP )( ICorDebugILFrame * This, /* [in] */ ULONG32 nOffset); - + END_INTERFACE } ICorDebugILFrameVtbl; @@ -11106,134 +11679,139 @@ EXTERN_C const IID IID_ICorDebugILFrame; CONST_VTBL struct ICorDebugILFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugILFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugILFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugILFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugILFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugILFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugILFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugILFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugILFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugILFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugILFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugILFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugILFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugILFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugILFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugILFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) -#define ICorDebugILFrame_GetIP(This,pnOffset,pMappingResult) \ - ( (This)->lpVtbl -> GetIP(This,pnOffset,pMappingResult) ) +#define ICorDebugILFrame_GetIP(This,pnOffset,pMappingResult) \ + ( (This)->lpVtbl -> GetIP(This,pnOffset,pMappingResult) ) -#define ICorDebugILFrame_SetIP(This,nOffset) \ - ( (This)->lpVtbl -> SetIP(This,nOffset) ) +#define ICorDebugILFrame_SetIP(This,nOffset) \ + ( (This)->lpVtbl -> SetIP(This,nOffset) ) -#define ICorDebugILFrame_EnumerateLocalVariables(This,ppValueEnum) \ - ( (This)->lpVtbl -> EnumerateLocalVariables(This,ppValueEnum) ) +#define ICorDebugILFrame_EnumerateLocalVariables(This,ppValueEnum) \ + ( (This)->lpVtbl -> EnumerateLocalVariables(This,ppValueEnum) ) -#define ICorDebugILFrame_GetLocalVariable(This,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetLocalVariable(This,dwIndex,ppValue) ) +#define ICorDebugILFrame_GetLocalVariable(This,dwIndex,ppValue) \ + ( (This)->lpVtbl -> GetLocalVariable(This,dwIndex,ppValue) ) -#define ICorDebugILFrame_EnumerateArguments(This,ppValueEnum) \ - ( (This)->lpVtbl -> EnumerateArguments(This,ppValueEnum) ) +#define ICorDebugILFrame_EnumerateArguments(This,ppValueEnum) \ + ( (This)->lpVtbl -> EnumerateArguments(This,ppValueEnum) ) -#define ICorDebugILFrame_GetArgument(This,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetArgument(This,dwIndex,ppValue) ) +#define ICorDebugILFrame_GetArgument(This,dwIndex,ppValue) \ + ( (This)->lpVtbl -> GetArgument(This,dwIndex,ppValue) ) -#define ICorDebugILFrame_GetStackDepth(This,pDepth) \ - ( (This)->lpVtbl -> GetStackDepth(This,pDepth) ) +#define ICorDebugILFrame_GetStackDepth(This,pDepth) \ + ( (This)->lpVtbl -> GetStackDepth(This,pDepth) ) -#define ICorDebugILFrame_GetStackValue(This,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetStackValue(This,dwIndex,ppValue) ) +#define ICorDebugILFrame_GetStackValue(This,dwIndex,ppValue) \ + ( (This)->lpVtbl -> GetStackValue(This,dwIndex,ppValue) ) -#define ICorDebugILFrame_CanSetIP(This,nOffset) \ - ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) +#define ICorDebugILFrame_CanSetIP(This,nOffset) \ + ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILFrame_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILFrame2_INTERFACE_DEFINED__ #define __ICorDebugILFrame2_INTERFACE_DEFINED__ /* interface ICorDebugILFrame2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILFrame2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5D88A994-6C30-479b-890F-BCEF88B129A5") ICorDebugILFrame2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE RemapFunction( + virtual HRESULT STDMETHODCALLTYPE RemapFunction( /* [in] */ ULONG32 newILOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( + + virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( /* [out] */ ICorDebugTypeEnum **ppTyParEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILFrame2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame2 * This); - - HRESULT ( STDMETHODCALLTYPE *RemapFunction )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame2, RemapFunction) + HRESULT ( STDMETHODCALLTYPE *RemapFunction )( ICorDebugILFrame2 * This, /* [in] */ ULONG32 newILOffset); - - HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame2, EnumerateTypeParameters) + HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( ICorDebugILFrame2 * This, /* [out] */ ICorDebugTypeEnum **ppTyParEnum); - + END_INTERFACE } ICorDebugILFrame2Vtbl; @@ -11242,83 +11820,87 @@ EXTERN_C const IID IID_ICorDebugILFrame2; CONST_VTBL struct ICorDebugILFrame2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILFrame2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILFrame2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILFrame2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILFrame2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILFrame2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILFrame2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILFrame2_RemapFunction(This,newILOffset) \ - ( (This)->lpVtbl -> RemapFunction(This,newILOffset) ) +#define ICorDebugILFrame2_RemapFunction(This,newILOffset) \ + ( (This)->lpVtbl -> RemapFunction(This,newILOffset) ) -#define ICorDebugILFrame2_EnumerateTypeParameters(This,ppTyParEnum) \ - ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) +#define ICorDebugILFrame2_EnumerateTypeParameters(This,ppTyParEnum) \ + ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILFrame2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILFrame2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILFrame3_INTERFACE_DEFINED__ #define __ICorDebugILFrame3_INTERFACE_DEFINED__ /* interface ICorDebugILFrame3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILFrame3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("9A9E2ED6-04DF-4FE0-BB50-CAB64126AD24") ICorDebugILFrame3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetReturnValueForILOffset( + virtual HRESULT STDMETHODCALLTYPE GetReturnValueForILOffset( ULONG32 ILoffset, /* [out] */ ICorDebugValue **ppReturnValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILFrame3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetReturnValueForILOffset )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame3, GetReturnValueForILOffset) + HRESULT ( STDMETHODCALLTYPE *GetReturnValueForILOffset )( ICorDebugILFrame3 * This, ULONG32 ILoffset, /* [out] */ ICorDebugValue **ppReturnValue); - + END_INTERFACE } ICorDebugILFrame3Vtbl; @@ -11327,44 +11909,44 @@ EXTERN_C const IID IID_ICorDebugILFrame3; CONST_VTBL struct ICorDebugILFrame3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILFrame3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILFrame3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILFrame3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILFrame3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILFrame3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILFrame3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILFrame3_GetReturnValueForILOffset(This,ILoffset,ppReturnValue) \ - ( (This)->lpVtbl -> GetReturnValueForILOffset(This,ILoffset,ppReturnValue) ) +#define ICorDebugILFrame3_GetReturnValueForILOffset(This,ILoffset,ppReturnValue) \ + ( (This)->lpVtbl -> GetReturnValueForILOffset(This,ILoffset,ppReturnValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILFrame3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILFrame3_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0070 */ -/* [local] */ +/* [local] */ -typedef +typedef enum ILCodeKind { - ILCODE_ORIGINAL_IL = 0x1, - ILCODE_REJIT_IL = 0x2 - } ILCodeKind; + ILCODE_ORIGINAL_IL = 0x1, + ILCODE_REJIT_IL = 0x2 + } ILCodeKind; @@ -11375,67 +11957,73 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0070_v0_0_s_ifspec; #define __ICorDebugILFrame4_INTERFACE_DEFINED__ /* interface ICorDebugILFrame4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILFrame4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AD914A30-C6D1-4AC5-9C5E-577F3BAA8A45") ICorDebugILFrame4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariablesEx( + virtual HRESULT STDMETHODCALLTYPE EnumerateLocalVariablesEx( /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugValueEnum **ppValueEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalVariableEx( + + virtual HRESULT STDMETHODCALLTYPE GetLocalVariableEx( /* [in] */ ILCodeKind flags, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCodeEx( + + virtual HRESULT STDMETHODCALLTYPE GetCodeEx( /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugCode **ppCode) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILFrame4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILFrame4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILFrame4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILFrame4 * This); - - HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariablesEx )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame4, EnumerateLocalVariablesEx) + HRESULT ( STDMETHODCALLTYPE *EnumerateLocalVariablesEx )( ICorDebugILFrame4 * This, /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugValueEnum **ppValueEnum); - - HRESULT ( STDMETHODCALLTYPE *GetLocalVariableEx )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame4, GetLocalVariableEx) + HRESULT ( STDMETHODCALLTYPE *GetLocalVariableEx )( ICorDebugILFrame4 * This, /* [in] */ ILCodeKind flags, /* [in] */ DWORD dwIndex, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetCodeEx )( + + DECLSPEC_XFGVIRT(ICorDebugILFrame4, GetCodeEx) + HRESULT ( STDMETHODCALLTYPE *GetCodeEx )( ICorDebugILFrame4 * This, /* [in] */ ILCodeKind flags, /* [out] */ ICorDebugCode **ppCode); - + END_INTERFACE } ICorDebugILFrame4Vtbl; @@ -11444,209 +12032,229 @@ EXTERN_C const IID IID_ICorDebugILFrame4; CONST_VTBL struct ICorDebugILFrame4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILFrame4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILFrame4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILFrame4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILFrame4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILFrame4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILFrame4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILFrame4_EnumerateLocalVariablesEx(This,flags,ppValueEnum) \ - ( (This)->lpVtbl -> EnumerateLocalVariablesEx(This,flags,ppValueEnum) ) +#define ICorDebugILFrame4_EnumerateLocalVariablesEx(This,flags,ppValueEnum) \ + ( (This)->lpVtbl -> EnumerateLocalVariablesEx(This,flags,ppValueEnum) ) -#define ICorDebugILFrame4_GetLocalVariableEx(This,flags,dwIndex,ppValue) \ - ( (This)->lpVtbl -> GetLocalVariableEx(This,flags,dwIndex,ppValue) ) +#define ICorDebugILFrame4_GetLocalVariableEx(This,flags,dwIndex,ppValue) \ + ( (This)->lpVtbl -> GetLocalVariableEx(This,flags,dwIndex,ppValue) ) -#define ICorDebugILFrame4_GetCodeEx(This,flags,ppCode) \ - ( (This)->lpVtbl -> GetCodeEx(This,flags,ppCode) ) +#define ICorDebugILFrame4_GetCodeEx(This,flags,ppCode) \ + ( (This)->lpVtbl -> GetCodeEx(This,flags,ppCode) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILFrame4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILFrame4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugNativeFrame_INTERFACE_DEFINED__ #define __ICorDebugNativeFrame_INTERFACE_DEFINED__ /* interface ICorDebugNativeFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugNativeFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("03E26314-4F76-11d3-88C6-006097945418") ICorDebugNativeFrame : public ICorDebugFrame { public: - virtual HRESULT STDMETHODCALLTYPE GetIP( + virtual HRESULT STDMETHODCALLTYPE GetIP( /* [out] */ ULONG32 *pnOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetIP( + + virtual HRESULT STDMETHODCALLTYPE SetIP( /* [in] */ ULONG32 nOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( + + virtual HRESULT STDMETHODCALLTYPE GetRegisterSet( /* [out] */ ICorDebugRegisterSet **ppRegisters) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterValue( /* [in] */ CorDebugRegister reg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalDoubleRegisterValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalDoubleRegisterValue( /* [in] */ CorDebugRegister highWordReg, /* [in] */ CorDebugRegister lowWordReg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryValue( /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterMemoryValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalRegisterMemoryValue( /* [in] */ CorDebugRegister highWordReg, /* [in] */ CORDB_ADDRESS lowWordAddress, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryRegisterValue( + + virtual HRESULT STDMETHODCALLTYPE GetLocalMemoryRegisterValue( /* [in] */ CORDB_ADDRESS highWordAddress, /* [in] */ CorDebugRegister lowWordRegister, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE CanSetIP( + + virtual HRESULT STDMETHODCALLTYPE CanSetIP( /* [in] */ ULONG32 nOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugNativeFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugNativeFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugNativeFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugNativeFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugNativeFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugNativeFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - - HRESULT ( STDMETHODCALLTYPE *GetIP )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetIP) + HRESULT ( STDMETHODCALLTYPE *GetIP )( ICorDebugNativeFrame * This, /* [out] */ ULONG32 *pnOffset); - - HRESULT ( STDMETHODCALLTYPE *SetIP )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame, SetIP) + HRESULT ( STDMETHODCALLTYPE *SetIP )( ICorDebugNativeFrame * This, /* [in] */ ULONG32 nOffset); - - HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetRegisterSet) + HRESULT ( STDMETHODCALLTYPE *GetRegisterSet )( ICorDebugNativeFrame * This, /* [out] */ ICorDebugRegisterSet **ppRegisters); - - HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterValue )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalRegisterValue) + HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterValue )( ICorDebugNativeFrame * This, /* [in] */ CorDebugRegister reg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetLocalDoubleRegisterValue )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalDoubleRegisterValue) + HRESULT ( STDMETHODCALLTYPE *GetLocalDoubleRegisterValue )( ICorDebugNativeFrame * This, /* [in] */ CorDebugRegister highWordReg, /* [in] */ CorDebugRegister lowWordReg, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryValue )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalMemoryValue) + HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryValue )( ICorDebugNativeFrame * This, /* [in] */ CORDB_ADDRESS address, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterMemoryValue )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalRegisterMemoryValue) + HRESULT ( STDMETHODCALLTYPE *GetLocalRegisterMemoryValue )( ICorDebugNativeFrame * This, /* [in] */ CorDebugRegister highWordReg, /* [in] */ CORDB_ADDRESS lowWordAddress, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryRegisterValue )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame, GetLocalMemoryRegisterValue) + HRESULT ( STDMETHODCALLTYPE *GetLocalMemoryRegisterValue )( ICorDebugNativeFrame * This, /* [in] */ CORDB_ADDRESS highWordAddress, /* [in] */ CorDebugRegister lowWordRegister, /* [in] */ ULONG cbSigBlob, /* [in] */ PCCOR_SIGNATURE pvSigBlob, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *CanSetIP )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame, CanSetIP) + HRESULT ( STDMETHODCALLTYPE *CanSetIP )( ICorDebugNativeFrame * This, /* [in] */ ULONG32 nOffset); - + END_INTERFACE } ICorDebugNativeFrameVtbl; @@ -11655,89 +12263,89 @@ EXTERN_C const IID IID_ICorDebugNativeFrame; CONST_VTBL struct ICorDebugNativeFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugNativeFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugNativeFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugNativeFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugNativeFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugNativeFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugNativeFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugNativeFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugNativeFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugNativeFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugNativeFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugNativeFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugNativeFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugNativeFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugNativeFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugNativeFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugNativeFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugNativeFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugNativeFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugNativeFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugNativeFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugNativeFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugNativeFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) -#define ICorDebugNativeFrame_GetIP(This,pnOffset) \ - ( (This)->lpVtbl -> GetIP(This,pnOffset) ) +#define ICorDebugNativeFrame_GetIP(This,pnOffset) \ + ( (This)->lpVtbl -> GetIP(This,pnOffset) ) -#define ICorDebugNativeFrame_SetIP(This,nOffset) \ - ( (This)->lpVtbl -> SetIP(This,nOffset) ) +#define ICorDebugNativeFrame_SetIP(This,nOffset) \ + ( (This)->lpVtbl -> SetIP(This,nOffset) ) -#define ICorDebugNativeFrame_GetRegisterSet(This,ppRegisters) \ - ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) +#define ICorDebugNativeFrame_GetRegisterSet(This,ppRegisters) \ + ( (This)->lpVtbl -> GetRegisterSet(This,ppRegisters) ) -#define ICorDebugNativeFrame_GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalRegisterValue(This,reg,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalDoubleRegisterValue(This,highWordReg,lowWordReg,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalMemoryValue(This,address,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalRegisterMemoryValue(This,highWordReg,lowWordAddress,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) \ - ( (This)->lpVtbl -> GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) ) +#define ICorDebugNativeFrame_GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) \ + ( (This)->lpVtbl -> GetLocalMemoryRegisterValue(This,highWordAddress,lowWordRegister,cbSigBlob,pvSigBlob,ppValue) ) -#define ICorDebugNativeFrame_CanSetIP(This,nOffset) \ - ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) +#define ICorDebugNativeFrame_CanSetIP(This,nOffset) \ + ( (This)->lpVtbl -> CanSetIP(This,nOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugNativeFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugNativeFrame_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0072 */ -/* [local] */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0072_v0_0_c_ifspec; @@ -11747,61 +12355,67 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0072_v0_0_s_ifspec; #define __ICorDebugNativeFrame2_INTERFACE_DEFINED__ /* interface ICorDebugNativeFrame2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugNativeFrame2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("35389FF1-3684-4c55-A2EE-210F26C60E5E") ICorDebugNativeFrame2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsChild( + virtual HRESULT STDMETHODCALLTYPE IsChild( /* [out] */ BOOL *pIsChild) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsMatchingParentFrame( + + virtual HRESULT STDMETHODCALLTYPE IsMatchingParentFrame( /* [in] */ ICorDebugNativeFrame2 *pPotentialParentFrame, /* [out] */ BOOL *pIsParent) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStackParameterSize( + + virtual HRESULT STDMETHODCALLTYPE GetStackParameterSize( /* [out] */ ULONG32 *pSize) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugNativeFrame2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugNativeFrame2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugNativeFrame2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugNativeFrame2 * This); - - HRESULT ( STDMETHODCALLTYPE *IsChild )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame2, IsChild) + HRESULT ( STDMETHODCALLTYPE *IsChild )( ICorDebugNativeFrame2 * This, /* [out] */ BOOL *pIsChild); - - HRESULT ( STDMETHODCALLTYPE *IsMatchingParentFrame )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame2, IsMatchingParentFrame) + HRESULT ( STDMETHODCALLTYPE *IsMatchingParentFrame )( ICorDebugNativeFrame2 * This, /* [in] */ ICorDebugNativeFrame2 *pPotentialParentFrame, /* [out] */ BOOL *pIsParent); - - HRESULT ( STDMETHODCALLTYPE *GetStackParameterSize )( + + DECLSPEC_XFGVIRT(ICorDebugNativeFrame2, GetStackParameterSize) + HRESULT ( STDMETHODCALLTYPE *GetStackParameterSize )( ICorDebugNativeFrame2 * This, /* [out] */ ULONG32 *pSize); - + END_INTERFACE } ICorDebugNativeFrame2Vtbl; @@ -11810,86 +12424,90 @@ EXTERN_C const IID IID_ICorDebugNativeFrame2; CONST_VTBL struct ICorDebugNativeFrame2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugNativeFrame2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugNativeFrame2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugNativeFrame2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugNativeFrame2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugNativeFrame2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugNativeFrame2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugNativeFrame2_IsChild(This,pIsChild) \ - ( (This)->lpVtbl -> IsChild(This,pIsChild) ) +#define ICorDebugNativeFrame2_IsChild(This,pIsChild) \ + ( (This)->lpVtbl -> IsChild(This,pIsChild) ) -#define ICorDebugNativeFrame2_IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) \ - ( (This)->lpVtbl -> IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) ) +#define ICorDebugNativeFrame2_IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) \ + ( (This)->lpVtbl -> IsMatchingParentFrame(This,pPotentialParentFrame,pIsParent) ) -#define ICorDebugNativeFrame2_GetStackParameterSize(This,pSize) \ - ( (This)->lpVtbl -> GetStackParameterSize(This,pSize) ) +#define ICorDebugNativeFrame2_GetStackParameterSize(This,pSize) \ + ( (This)->lpVtbl -> GetStackParameterSize(This,pSize) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugNativeFrame2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugNativeFrame2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModule3_INTERFACE_DEFINED__ #define __ICorDebugModule3_INTERFACE_DEFINED__ /* interface ICorDebugModule3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("86F012BF-FF15-4372-BD30-B6F11CAAE1DD") ICorDebugModule3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateReaderForInMemorySymbols( + virtual HRESULT STDMETHODCALLTYPE CreateReaderForInMemorySymbols( /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppObj) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModule3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule3 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateReaderForInMemorySymbols )( + + DECLSPEC_XFGVIRT(ICorDebugModule3, CreateReaderForInMemorySymbols) + HRESULT ( STDMETHODCALLTYPE *CreateReaderForInMemorySymbols )( ICorDebugModule3 * This, /* [in] */ REFIID riid, /* [iid_is][out] */ void **ppObj); - + END_INTERFACE } ICorDebugModule3Vtbl; @@ -11898,78 +12516,82 @@ EXTERN_C const IID IID_ICorDebugModule3; CONST_VTBL struct ICorDebugModule3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModule3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModule3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModule3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModule3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModule3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModule3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModule3_CreateReaderForInMemorySymbols(This,riid,ppObj) \ - ( (This)->lpVtbl -> CreateReaderForInMemorySymbols(This,riid,ppObj) ) +#define ICorDebugModule3_CreateReaderForInMemorySymbols(This,riid,ppObj) \ + ( (This)->lpVtbl -> CreateReaderForInMemorySymbols(This,riid,ppObj) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModule3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModule3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModule4_INTERFACE_DEFINED__ #define __ICorDebugModule4_INTERFACE_DEFINED__ /* interface ICorDebugModule4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FF8B8EAF-25CD-4316-8859-84416DE4402E") ICorDebugModule4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsMappedLayout( + virtual HRESULT STDMETHODCALLTYPE IsMappedLayout( /* [out] */ BOOL *pIsMapped) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModule4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule4 * This); - - HRESULT ( STDMETHODCALLTYPE *IsMappedLayout )( + + DECLSPEC_XFGVIRT(ICorDebugModule4, IsMappedLayout) + HRESULT ( STDMETHODCALLTYPE *IsMappedLayout )( ICorDebugModule4 * This, /* [out] */ BOOL *pIsMapped); - + END_INTERFACE } ICorDebugModule4Vtbl; @@ -11978,104 +12600,115 @@ EXTERN_C const IID IID_ICorDebugModule4; CONST_VTBL struct ICorDebugModule4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModule4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModule4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModule4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModule4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModule4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModule4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModule4_IsMappedLayout(This,pIsMapped) \ - ( (This)->lpVtbl -> IsMappedLayout(This,pIsMapped) ) +#define ICorDebugModule4_IsMappedLayout(This,pIsMapped) \ + ( (This)->lpVtbl -> IsMappedLayout(This,pIsMapped) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModule4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModule4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugRuntimeUnwindableFrame_INTERFACE_DEFINED__ #define __ICorDebugRuntimeUnwindableFrame_INTERFACE_DEFINED__ /* interface ICorDebugRuntimeUnwindableFrame */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugRuntimeUnwindableFrame; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("879CAC0A-4A53-4668-B8E3-CB8473CB187F") ICorDebugRuntimeUnwindableFrame : public ICorDebugFrame { public: }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugRuntimeUnwindableFrameVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugRuntimeUnwindableFrame * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugRuntimeUnwindableFrame * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugRuntimeUnwindableFrame * This); - - HRESULT ( STDMETHODCALLTYPE *GetChain )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetChain) + HRESULT ( STDMETHODCALLTYPE *GetChain )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugChain **ppChain); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCode) + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunction) + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetFunctionToken) + HRESULT ( STDMETHODCALLTYPE *GetFunctionToken )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ mdMethodDef *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetStackRange )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetStackRange) + HRESULT ( STDMETHODCALLTYPE *GetStackRange )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ CORDB_ADDRESS *pStart, /* [out] */ CORDB_ADDRESS *pEnd); - - HRESULT ( STDMETHODCALLTYPE *GetCaller )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCaller) + HRESULT ( STDMETHODCALLTYPE *GetCaller )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *GetCallee )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, GetCallee) + HRESULT ( STDMETHODCALLTYPE *GetCallee )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugFrame **ppFrame); - - HRESULT ( STDMETHODCALLTYPE *CreateStepper )( + + DECLSPEC_XFGVIRT(ICorDebugFrame, CreateStepper) + HRESULT ( STDMETHODCALLTYPE *CreateStepper )( ICorDebugRuntimeUnwindableFrame * This, /* [out] */ ICorDebugStepper **ppStepper); - + END_INTERFACE } ICorDebugRuntimeUnwindableFrameVtbl; @@ -12084,228 +12717,248 @@ EXTERN_C const IID IID_ICorDebugRuntimeUnwindableFrame; CONST_VTBL struct ICorDebugRuntimeUnwindableFrameVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugRuntimeUnwindableFrame_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugRuntimeUnwindableFrame_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugRuntimeUnwindableFrame_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugRuntimeUnwindableFrame_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugRuntimeUnwindableFrame_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugRuntimeUnwindableFrame_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugRuntimeUnwindableFrame_GetChain(This,ppChain) \ - ( (This)->lpVtbl -> GetChain(This,ppChain) ) +#define ICorDebugRuntimeUnwindableFrame_GetChain(This,ppChain) \ + ( (This)->lpVtbl -> GetChain(This,ppChain) ) -#define ICorDebugRuntimeUnwindableFrame_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugRuntimeUnwindableFrame_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugRuntimeUnwindableFrame_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugRuntimeUnwindableFrame_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugRuntimeUnwindableFrame_GetFunctionToken(This,pToken) \ - ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) +#define ICorDebugRuntimeUnwindableFrame_GetFunctionToken(This,pToken) \ + ( (This)->lpVtbl -> GetFunctionToken(This,pToken) ) -#define ICorDebugRuntimeUnwindableFrame_GetStackRange(This,pStart,pEnd) \ - ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) +#define ICorDebugRuntimeUnwindableFrame_GetStackRange(This,pStart,pEnd) \ + ( (This)->lpVtbl -> GetStackRange(This,pStart,pEnd) ) -#define ICorDebugRuntimeUnwindableFrame_GetCaller(This,ppFrame) \ - ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) +#define ICorDebugRuntimeUnwindableFrame_GetCaller(This,ppFrame) \ + ( (This)->lpVtbl -> GetCaller(This,ppFrame) ) -#define ICorDebugRuntimeUnwindableFrame_GetCallee(This,ppFrame) \ - ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) +#define ICorDebugRuntimeUnwindableFrame_GetCallee(This,ppFrame) \ + ( (This)->lpVtbl -> GetCallee(This,ppFrame) ) -#define ICorDebugRuntimeUnwindableFrame_CreateStepper(This,ppStepper) \ - ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) +#define ICorDebugRuntimeUnwindableFrame_CreateStepper(This,ppStepper) \ + ( (This)->lpVtbl -> CreateStepper(This,ppStepper) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugRuntimeUnwindableFrame_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugRuntimeUnwindableFrame_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModule_INTERFACE_DEFINED__ #define __ICorDebugModule_INTERFACE_DEFINED__ /* interface ICorDebugModule */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("dba2d8c1-e5c5-4069-8c13-10a7c6abf43d") ICorDebugModule : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetProcess( + virtual HRESULT STDMETHODCALLTYPE GetProcess( /* [out] */ ICorDebugProcess **ppProcess) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( + + virtual HRESULT STDMETHODCALLTYPE GetBaseAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAssembly( + + virtual HRESULT STDMETHODCALLTYPE GetAssembly( /* [out] */ ICorDebugAssembly **ppAssembly) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetName( + + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableJITDebugging( + + virtual HRESULT STDMETHODCALLTYPE EnableJITDebugging( /* [in] */ BOOL bTrackJITInfo, /* [in] */ BOOL bAllowJitOpts) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnableClassLoadCallbacks( + + virtual HRESULT STDMETHODCALLTYPE EnableClassLoadCallbacks( /* [in] */ BOOL bClassLoadCallbacks) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken( /* [in] */ mdMethodDef methodDef, /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunctionFromRVA( + + virtual HRESULT STDMETHODCALLTYPE GetFunctionFromRVA( /* [in] */ CORDB_ADDRESS rva, /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClassFromToken( + + virtual HRESULT STDMETHODCALLTYPE GetClassFromToken( /* [in] */ mdTypeDef typeDef, /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [out] */ ICorDebugModuleBreakpoint **ppBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEditAndContinueSnapshot( + + virtual HRESULT STDMETHODCALLTYPE GetEditAndContinueSnapshot( /* [out] */ ICorDebugEditAndContinueSnapshot **ppEditAndContinueSnapshot) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMetaDataInterface( + + virtual HRESULT STDMETHODCALLTYPE GetMetaDataInterface( /* [in] */ REFIID riid, /* [out] */ IUnknown **ppObj) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdModule *pToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsDynamic( + + virtual HRESULT STDMETHODCALLTYPE IsDynamic( /* [out] */ BOOL *pDynamic) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetGlobalVariableValue( + + virtual HRESULT STDMETHODCALLTYPE GetGlobalVariableValue( /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcBytes) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsInMemory( + + virtual HRESULT STDMETHODCALLTYPE IsInMemory( /* [out] */ BOOL *pInMemory) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModuleVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule * This); - - HRESULT ( STDMETHODCALLTYPE *GetProcess )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetProcess) + HRESULT ( STDMETHODCALLTYPE *GetProcess )( ICorDebugModule * This, /* [out] */ ICorDebugProcess **ppProcess); - - HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetBaseAddress) + HRESULT ( STDMETHODCALLTYPE *GetBaseAddress )( ICorDebugModule * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *GetAssembly )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetAssembly) + HRESULT ( STDMETHODCALLTYPE *GetAssembly )( ICorDebugModule * This, /* [out] */ ICorDebugAssembly **ppAssembly); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetName) + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugModule * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *EnableJITDebugging )( + + DECLSPEC_XFGVIRT(ICorDebugModule, EnableJITDebugging) + HRESULT ( STDMETHODCALLTYPE *EnableJITDebugging )( ICorDebugModule * This, /* [in] */ BOOL bTrackJITInfo, /* [in] */ BOOL bAllowJitOpts); - - HRESULT ( STDMETHODCALLTYPE *EnableClassLoadCallbacks )( + + DECLSPEC_XFGVIRT(ICorDebugModule, EnableClassLoadCallbacks) + HRESULT ( STDMETHODCALLTYPE *EnableClassLoadCallbacks )( ICorDebugModule * This, /* [in] */ BOOL bClassLoadCallbacks); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetFunctionFromToken) + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( ICorDebugModule * This, /* [in] */ mdMethodDef methodDef, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetFunctionFromRVA )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetFunctionFromRVA) + HRESULT ( STDMETHODCALLTYPE *GetFunctionFromRVA )( ICorDebugModule * This, /* [in] */ CORDB_ADDRESS rva, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetClassFromToken) + HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( ICorDebugModule * This, /* [in] */ mdTypeDef typeDef, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugModule, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugModule * This, /* [out] */ ICorDebugModuleBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetEditAndContinueSnapshot )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetEditAndContinueSnapshot) + HRESULT ( STDMETHODCALLTYPE *GetEditAndContinueSnapshot )( ICorDebugModule * This, /* [out] */ ICorDebugEditAndContinueSnapshot **ppEditAndContinueSnapshot); - - HRESULT ( STDMETHODCALLTYPE *GetMetaDataInterface )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetMetaDataInterface) + HRESULT ( STDMETHODCALLTYPE *GetMetaDataInterface )( ICorDebugModule * This, /* [in] */ REFIID riid, /* [out] */ IUnknown **ppObj); - - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetToken) + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugModule * This, /* [out] */ mdModule *pToken); - - HRESULT ( STDMETHODCALLTYPE *IsDynamic )( + + DECLSPEC_XFGVIRT(ICorDebugModule, IsDynamic) + HRESULT ( STDMETHODCALLTYPE *IsDynamic )( ICorDebugModule * This, /* [out] */ BOOL *pDynamic); - - HRESULT ( STDMETHODCALLTYPE *GetGlobalVariableValue )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetGlobalVariableValue) + HRESULT ( STDMETHODCALLTYPE *GetGlobalVariableValue )( ICorDebugModule * This, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugModule, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugModule * This, /* [out] */ ULONG32 *pcBytes); - - HRESULT ( STDMETHODCALLTYPE *IsInMemory )( + + DECLSPEC_XFGVIRT(ICorDebugModule, IsInMemory) + HRESULT ( STDMETHODCALLTYPE *IsInMemory )( ICorDebugModule * This, /* [out] */ BOOL *pInMemory); - + END_INTERFACE } ICorDebugModuleVtbl; @@ -12314,85 +12967,85 @@ EXTERN_C const IID IID_ICorDebugModule; CONST_VTBL struct ICorDebugModuleVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModule_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModule_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModule_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModule_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModule_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModule_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModule_GetProcess(This,ppProcess) \ - ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) +#define ICorDebugModule_GetProcess(This,ppProcess) \ + ( (This)->lpVtbl -> GetProcess(This,ppProcess) ) -#define ICorDebugModule_GetBaseAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) +#define ICorDebugModule_GetBaseAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetBaseAddress(This,pAddress) ) -#define ICorDebugModule_GetAssembly(This,ppAssembly) \ - ( (This)->lpVtbl -> GetAssembly(This,ppAssembly) ) +#define ICorDebugModule_GetAssembly(This,ppAssembly) \ + ( (This)->lpVtbl -> GetAssembly(This,ppAssembly) ) -#define ICorDebugModule_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugModule_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugModule_EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) \ - ( (This)->lpVtbl -> EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) ) +#define ICorDebugModule_EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) \ + ( (This)->lpVtbl -> EnableJITDebugging(This,bTrackJITInfo,bAllowJitOpts) ) -#define ICorDebugModule_EnableClassLoadCallbacks(This,bClassLoadCallbacks) \ - ( (This)->lpVtbl -> EnableClassLoadCallbacks(This,bClassLoadCallbacks) ) +#define ICorDebugModule_EnableClassLoadCallbacks(This,bClassLoadCallbacks) \ + ( (This)->lpVtbl -> EnableClassLoadCallbacks(This,bClassLoadCallbacks) ) -#define ICorDebugModule_GetFunctionFromToken(This,methodDef,ppFunction) \ - ( (This)->lpVtbl -> GetFunctionFromToken(This,methodDef,ppFunction) ) +#define ICorDebugModule_GetFunctionFromToken(This,methodDef,ppFunction) \ + ( (This)->lpVtbl -> GetFunctionFromToken(This,methodDef,ppFunction) ) -#define ICorDebugModule_GetFunctionFromRVA(This,rva,ppFunction) \ - ( (This)->lpVtbl -> GetFunctionFromRVA(This,rva,ppFunction) ) +#define ICorDebugModule_GetFunctionFromRVA(This,rva,ppFunction) \ + ( (This)->lpVtbl -> GetFunctionFromRVA(This,rva,ppFunction) ) -#define ICorDebugModule_GetClassFromToken(This,typeDef,ppClass) \ - ( (This)->lpVtbl -> GetClassFromToken(This,typeDef,ppClass) ) +#define ICorDebugModule_GetClassFromToken(This,typeDef,ppClass) \ + ( (This)->lpVtbl -> GetClassFromToken(This,typeDef,ppClass) ) -#define ICorDebugModule_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugModule_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugModule_GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) \ - ( (This)->lpVtbl -> GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) ) +#define ICorDebugModule_GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) \ + ( (This)->lpVtbl -> GetEditAndContinueSnapshot(This,ppEditAndContinueSnapshot) ) -#define ICorDebugModule_GetMetaDataInterface(This,riid,ppObj) \ - ( (This)->lpVtbl -> GetMetaDataInterface(This,riid,ppObj) ) +#define ICorDebugModule_GetMetaDataInterface(This,riid,ppObj) \ + ( (This)->lpVtbl -> GetMetaDataInterface(This,riid,ppObj) ) -#define ICorDebugModule_GetToken(This,pToken) \ - ( (This)->lpVtbl -> GetToken(This,pToken) ) +#define ICorDebugModule_GetToken(This,pToken) \ + ( (This)->lpVtbl -> GetToken(This,pToken) ) -#define ICorDebugModule_IsDynamic(This,pDynamic) \ - ( (This)->lpVtbl -> IsDynamic(This,pDynamic) ) +#define ICorDebugModule_IsDynamic(This,pDynamic) \ + ( (This)->lpVtbl -> IsDynamic(This,pDynamic) ) -#define ICorDebugModule_GetGlobalVariableValue(This,fieldDef,ppValue) \ - ( (This)->lpVtbl -> GetGlobalVariableValue(This,fieldDef,ppValue) ) +#define ICorDebugModule_GetGlobalVariableValue(This,fieldDef,ppValue) \ + ( (This)->lpVtbl -> GetGlobalVariableValue(This,fieldDef,ppValue) ) -#define ICorDebugModule_GetSize(This,pcBytes) \ - ( (This)->lpVtbl -> GetSize(This,pcBytes) ) +#define ICorDebugModule_GetSize(This,pcBytes) \ + ( (This)->lpVtbl -> GetSize(This,pcBytes) ) -#define ICorDebugModule_IsInMemory(This,pInMemory) \ - ( (This)->lpVtbl -> IsInMemory(This,pInMemory) ) +#define ICorDebugModule_IsInMemory(This,pInMemory) \ + ( (This)->lpVtbl -> IsInMemory(This,pInMemory) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModule_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModule_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_cordebug_0000_0077 */ -/* [local] */ +/* [local] */ #pragma warning(pop) @@ -12404,85 +13057,93 @@ extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0077_v0_0_s_ifspec; #define __ICorDebugModule2_INTERFACE_DEFINED__ /* interface ICorDebugModule2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModule2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("7FCC5FB5-49C0-41de-9938-3B88B5B9ADD7") ICorDebugModule2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( + virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( /* [in] */ BOOL bIsJustMyCode, /* [in] */ ULONG32 cTokens, /* [size_is][in] */ mdToken pTokens[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE ApplyChanges( + + virtual HRESULT STDMETHODCALLTYPE ApplyChanges( /* [in] */ ULONG cbMetadata, /* [size_is][in] */ BYTE pbMetadata[ ], /* [in] */ ULONG cbIL, /* [size_is][in] */ BYTE pbIL[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetJITCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE SetJITCompilerFlags( /* [in] */ DWORD dwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetJITCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE GetJITCompilerFlags( /* [out] */ DWORD *pdwFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE ResolveAssembly( + + virtual HRESULT STDMETHODCALLTYPE ResolveAssembly( /* [in] */ mdToken tkAssemblyRef, /* [out] */ ICorDebugAssembly **ppAssembly) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModule2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModule2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModule2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModule2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( + + DECLSPEC_XFGVIRT(ICorDebugModule2, SetJMCStatus) + HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( ICorDebugModule2 * This, /* [in] */ BOOL bIsJustMyCode, /* [in] */ ULONG32 cTokens, /* [size_is][in] */ mdToken pTokens[ ]); - - HRESULT ( STDMETHODCALLTYPE *ApplyChanges )( + + DECLSPEC_XFGVIRT(ICorDebugModule2, ApplyChanges) + HRESULT ( STDMETHODCALLTYPE *ApplyChanges )( ICorDebugModule2 * This, /* [in] */ ULONG cbMetadata, /* [size_is][in] */ BYTE pbMetadata[ ], /* [in] */ ULONG cbIL, /* [size_is][in] */ BYTE pbIL[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetJITCompilerFlags )( + + DECLSPEC_XFGVIRT(ICorDebugModule2, SetJITCompilerFlags) + HRESULT ( STDMETHODCALLTYPE *SetJITCompilerFlags )( ICorDebugModule2 * This, /* [in] */ DWORD dwFlags); - - HRESULT ( STDMETHODCALLTYPE *GetJITCompilerFlags )( + + DECLSPEC_XFGVIRT(ICorDebugModule2, GetJITCompilerFlags) + HRESULT ( STDMETHODCALLTYPE *GetJITCompilerFlags )( ICorDebugModule2 * This, /* [out] */ DWORD *pdwFlags); - - HRESULT ( STDMETHODCALLTYPE *ResolveAssembly )( + + DECLSPEC_XFGVIRT(ICorDebugModule2, ResolveAssembly) + HRESULT ( STDMETHODCALLTYPE *ResolveAssembly )( ICorDebugModule2 * This, /* [in] */ mdToken tkAssemblyRef, /* [out] */ ICorDebugAssembly **ppAssembly); - + END_INTERFACE } ICorDebugModule2Vtbl; @@ -12491,139 +13152,150 @@ EXTERN_C const IID IID_ICorDebugModule2; CONST_VTBL struct ICorDebugModule2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModule2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModule2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModule2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModule2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModule2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModule2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModule2_SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) \ - ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) ) +#define ICorDebugModule2_SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) \ + ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode,cTokens,pTokens) ) -#define ICorDebugModule2_ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) \ - ( (This)->lpVtbl -> ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) ) +#define ICorDebugModule2_ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) \ + ( (This)->lpVtbl -> ApplyChanges(This,cbMetadata,pbMetadata,cbIL,pbIL) ) -#define ICorDebugModule2_SetJITCompilerFlags(This,dwFlags) \ - ( (This)->lpVtbl -> SetJITCompilerFlags(This,dwFlags) ) +#define ICorDebugModule2_SetJITCompilerFlags(This,dwFlags) \ + ( (This)->lpVtbl -> SetJITCompilerFlags(This,dwFlags) ) -#define ICorDebugModule2_GetJITCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetJITCompilerFlags(This,pdwFlags) ) +#define ICorDebugModule2_GetJITCompilerFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> GetJITCompilerFlags(This,pdwFlags) ) -#define ICorDebugModule2_ResolveAssembly(This,tkAssemblyRef,ppAssembly) \ - ( (This)->lpVtbl -> ResolveAssembly(This,tkAssemblyRef,ppAssembly) ) +#define ICorDebugModule2_ResolveAssembly(This,tkAssemblyRef,ppAssembly) \ + ( (This)->lpVtbl -> ResolveAssembly(This,tkAssemblyRef,ppAssembly) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModule2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModule2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunction_INTERFACE_DEFINED__ #define __ICorDebugFunction_INTERFACE_DEFINED__ /* interface ICorDebugFunction */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF3-8A68-11d2-983C-0000F808342D") ICorDebugFunction : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClass( + + virtual HRESULT STDMETHODCALLTYPE GetClass( /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdMethodDef *pMethodDef) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetILCode( + + virtual HRESULT STDMETHODCALLTYPE GetILCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetNativeCode( + + virtual HRESULT STDMETHODCALLTYPE GetNativeCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( + + virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( /* [out] */ mdSignature *pmdSig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCurrentVersionNumber( + + virtual HRESULT STDMETHODCALLTYPE GetCurrentVersionNumber( /* [out] */ ULONG32 *pnCurrentVersion) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunctionVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction * This); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + DECLSPEC_XFGVIRT(ICorDebugFunction, GetModule) + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugFunction * This, /* [out] */ ICorDebugModule **ppModule); - - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + DECLSPEC_XFGVIRT(ICorDebugFunction, GetClass) + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugFunction * This, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + DECLSPEC_XFGVIRT(ICorDebugFunction, GetToken) + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugFunction * This, /* [out] */ mdMethodDef *pMethodDef); - - HRESULT ( STDMETHODCALLTYPE *GetILCode )( + + DECLSPEC_XFGVIRT(ICorDebugFunction, GetILCode) + HRESULT ( STDMETHODCALLTYPE *GetILCode )( ICorDebugFunction * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetNativeCode )( + + DECLSPEC_XFGVIRT(ICorDebugFunction, GetNativeCode) + HRESULT ( STDMETHODCALLTYPE *GetNativeCode )( ICorDebugFunction * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugFunction, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugFunction * This, /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( + + DECLSPEC_XFGVIRT(ICorDebugFunction, GetLocalVarSigToken) + HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( ICorDebugFunction * This, /* [out] */ mdSignature *pmdSig); - - HRESULT ( STDMETHODCALLTYPE *GetCurrentVersionNumber )( + + DECLSPEC_XFGVIRT(ICorDebugFunction, GetCurrentVersionNumber) + HRESULT ( STDMETHODCALLTYPE *GetCurrentVersionNumber )( ICorDebugFunction * This, /* [out] */ ULONG32 *pnCurrentVersion); - + END_INTERFACE } ICorDebugFunctionVtbl; @@ -12632,120 +13304,127 @@ EXTERN_C const IID IID_ICorDebugFunction; CONST_VTBL struct ICorDebugFunctionVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFunction_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunction_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunction_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunction_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunction_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunction_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunction_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) +#define ICorDebugFunction_GetModule(This,ppModule) \ + ( (This)->lpVtbl -> GetModule(This,ppModule) ) -#define ICorDebugFunction_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) +#define ICorDebugFunction_GetClass(This,ppClass) \ + ( (This)->lpVtbl -> GetClass(This,ppClass) ) -#define ICorDebugFunction_GetToken(This,pMethodDef) \ - ( (This)->lpVtbl -> GetToken(This,pMethodDef) ) +#define ICorDebugFunction_GetToken(This,pMethodDef) \ + ( (This)->lpVtbl -> GetToken(This,pMethodDef) ) -#define ICorDebugFunction_GetILCode(This,ppCode) \ - ( (This)->lpVtbl -> GetILCode(This,ppCode) ) +#define ICorDebugFunction_GetILCode(This,ppCode) \ + ( (This)->lpVtbl -> GetILCode(This,ppCode) ) -#define ICorDebugFunction_GetNativeCode(This,ppCode) \ - ( (This)->lpVtbl -> GetNativeCode(This,ppCode) ) +#define ICorDebugFunction_GetNativeCode(This,ppCode) \ + ( (This)->lpVtbl -> GetNativeCode(This,ppCode) ) -#define ICorDebugFunction_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugFunction_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugFunction_GetLocalVarSigToken(This,pmdSig) \ - ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) +#define ICorDebugFunction_GetLocalVarSigToken(This,pmdSig) \ + ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) -#define ICorDebugFunction_GetCurrentVersionNumber(This,pnCurrentVersion) \ - ( (This)->lpVtbl -> GetCurrentVersionNumber(This,pnCurrentVersion) ) +#define ICorDebugFunction_GetCurrentVersionNumber(This,pnCurrentVersion) \ + ( (This)->lpVtbl -> GetCurrentVersionNumber(This,pnCurrentVersion) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunction_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunction2_INTERFACE_DEFINED__ #define __ICorDebugFunction2_INTERFACE_DEFINED__ /* interface ICorDebugFunction2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("EF0C490B-94C3-4e4d-B629-DDC134C532D8") ICorDebugFunction2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( + virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( /* [in] */ BOOL bIsJustMyCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetJMCStatus( + + virtual HRESULT STDMETHODCALLTYPE GetJMCStatus( /* [out] */ BOOL *pbIsJustMyCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateNativeCode( + + virtual HRESULT STDMETHODCALLTYPE EnumerateNativeCode( /* [out] */ ICorDebugCodeEnum **ppCodeEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( + + virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( /* [out] */ ULONG32 *pnVersion) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunction2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction2 * This); - - HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( + + DECLSPEC_XFGVIRT(ICorDebugFunction2, SetJMCStatus) + HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( ICorDebugFunction2 * This, /* [in] */ BOOL bIsJustMyCode); - - HRESULT ( STDMETHODCALLTYPE *GetJMCStatus )( + + DECLSPEC_XFGVIRT(ICorDebugFunction2, GetJMCStatus) + HRESULT ( STDMETHODCALLTYPE *GetJMCStatus )( ICorDebugFunction2 * This, /* [out] */ BOOL *pbIsJustMyCode); - - HRESULT ( STDMETHODCALLTYPE *EnumerateNativeCode )( + + DECLSPEC_XFGVIRT(ICorDebugFunction2, EnumerateNativeCode) + HRESULT ( STDMETHODCALLTYPE *EnumerateNativeCode )( ICorDebugFunction2 * This, /* [out] */ ICorDebugCodeEnum **ppCodeEnum); - - HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( + + DECLSPEC_XFGVIRT(ICorDebugFunction2, GetVersionNumber) + HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( ICorDebugFunction2 * This, /* [out] */ ULONG32 *pnVersion); - + END_INTERFACE } ICorDebugFunction2Vtbl; @@ -12754,87 +13433,91 @@ EXTERN_C const IID IID_ICorDebugFunction2; CONST_VTBL struct ICorDebugFunction2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFunction2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunction2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunction2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunction2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunction2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunction2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunction2_SetJMCStatus(This,bIsJustMyCode) \ - ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) +#define ICorDebugFunction2_SetJMCStatus(This,bIsJustMyCode) \ + ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) -#define ICorDebugFunction2_GetJMCStatus(This,pbIsJustMyCode) \ - ( (This)->lpVtbl -> GetJMCStatus(This,pbIsJustMyCode) ) +#define ICorDebugFunction2_GetJMCStatus(This,pbIsJustMyCode) \ + ( (This)->lpVtbl -> GetJMCStatus(This,pbIsJustMyCode) ) -#define ICorDebugFunction2_EnumerateNativeCode(This,ppCodeEnum) \ - ( (This)->lpVtbl -> EnumerateNativeCode(This,ppCodeEnum) ) +#define ICorDebugFunction2_EnumerateNativeCode(This,ppCodeEnum) \ + ( (This)->lpVtbl -> EnumerateNativeCode(This,ppCodeEnum) ) -#define ICorDebugFunction2_GetVersionNumber(This,pnVersion) \ - ( (This)->lpVtbl -> GetVersionNumber(This,pnVersion) ) +#define ICorDebugFunction2_GetVersionNumber(This,pnVersion) \ + ( (This)->lpVtbl -> GetVersionNumber(This,pnVersion) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunction2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunction3_INTERFACE_DEFINED__ #define __ICorDebugFunction3_INTERFACE_DEFINED__ /* interface ICorDebugFunction3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("09B70F28-E465-482D-99E0-81A165EB0532") ICorDebugFunction3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetActiveReJitRequestILCode( + virtual HRESULT STDMETHODCALLTYPE GetActiveReJitRequestILCode( ICorDebugILCode **ppReJitedILCode) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunction3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetActiveReJitRequestILCode )( + + DECLSPEC_XFGVIRT(ICorDebugFunction3, GetActiveReJitRequestILCode) + HRESULT ( STDMETHODCALLTYPE *GetActiveReJitRequestILCode )( ICorDebugFunction3 * This, ICorDebugILCode **ppReJitedILCode); - + END_INTERFACE } ICorDebugFunction3Vtbl; @@ -12843,78 +13526,82 @@ EXTERN_C const IID IID_ICorDebugFunction3; CONST_VTBL struct ICorDebugFunction3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFunction3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunction3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunction3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunction3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunction3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunction3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunction3_GetActiveReJitRequestILCode(This,ppReJitedILCode) \ - ( (This)->lpVtbl -> GetActiveReJitRequestILCode(This,ppReJitedILCode) ) +#define ICorDebugFunction3_GetActiveReJitRequestILCode(This,ppReJitedILCode) \ + ( (This)->lpVtbl -> GetActiveReJitRequestILCode(This,ppReJitedILCode) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunction3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFunction4_INTERFACE_DEFINED__ #define __ICorDebugFunction4_INTERFACE_DEFINED__ /* interface ICorDebugFunction4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFunction4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("72965963-34fd-46e9-9434-b817fe6e7f43") ICorDebugFunction4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateNativeBreakpoint( + virtual HRESULT STDMETHODCALLTYPE CreateNativeBreakpoint( ICorDebugFunctionBreakpoint **ppBreakpoint) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFunction4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFunction4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFunction4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFunction4 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateNativeBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugFunction4, CreateNativeBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateNativeBreakpoint )( ICorDebugFunction4 * This, ICorDebugFunctionBreakpoint **ppBreakpoint); - + END_INTERFACE } ICorDebugFunction4Vtbl; @@ -12923,152 +13610,257 @@ EXTERN_C const IID IID_ICorDebugFunction4; CONST_VTBL struct ICorDebugFunction4Vtbl *lpVtbl; }; + + +#ifdef COBJMACROS + + +#define ICorDebugFunction4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) + +#define ICorDebugFunction4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) + +#define ICorDebugFunction4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) + + +#define ICorDebugFunction4_CreateNativeBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateNativeBreakpoint(This,ppBreakpoint) ) + +#endif /* COBJMACROS */ + +#endif /* C style interface */ + + + + +#endif /* __ICorDebugFunction4_INTERFACE_DEFINED__ */ + + +#ifndef __ICorDebugFunction5_INTERFACE_DEFINED__ +#define __ICorDebugFunction5_INTERFACE_DEFINED__ + +/* interface ICorDebugFunction5 */ +/* [unique][uuid][local][object] */ + + +EXTERN_C const IID IID_ICorDebugFunction5; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + MIDL_INTERFACE("9D4DAB7B-3401-4F37-BD08-CA09F3FDF10F") + ICorDebugFunction5 : public IUnknown + { + public: + virtual HRESULT STDMETHODCALLTYPE DisableOptimizations( void) = 0; + + virtual HRESULT STDMETHODCALLTYPE AreOptimizationsDisabled( + BOOL *pOptimizationsDisabled) = 0; + + }; + + +#else /* C style interface */ + + typedef struct ICorDebugFunction5Vtbl + { + BEGIN_INTERFACE + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + ICorDebugFunction5 * This, + /* [in] */ REFIID riid, + /* [annotation][iid_is][out] */ + _COM_Outptr_ void **ppvObject); + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( + ICorDebugFunction5 * This); + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( + ICorDebugFunction5 * This); + + DECLSPEC_XFGVIRT(ICorDebugFunction5, DisableOptimizations) + HRESULT ( STDMETHODCALLTYPE *DisableOptimizations )( + ICorDebugFunction5 * This); + + DECLSPEC_XFGVIRT(ICorDebugFunction5, AreOptimizationsDisabled) + HRESULT ( STDMETHODCALLTYPE *AreOptimizationsDisabled )( + ICorDebugFunction5 * This, + BOOL *pOptimizationsDisabled); + + END_INTERFACE + } ICorDebugFunction5Vtbl; + + interface ICorDebugFunction5 + { + CONST_VTBL struct ICorDebugFunction5Vtbl *lpVtbl; + }; + + #ifdef COBJMACROS -#define ICorDebugFunction4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFunction5_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFunction4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFunction5_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFunction4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFunction5_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFunction4_CreateNativeBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateNativeBreakpoint(This,ppBreakpoint) ) +#define ICorDebugFunction5_DisableOptimizations(This) \ + ( (This)->lpVtbl -> DisableOptimizations(This) ) + +#define ICorDebugFunction5_AreOptimizationsDisabled(This,pOptimizationsDisabled) \ + ( (This)->lpVtbl -> AreOptimizationsDisabled(This,pOptimizationsDisabled) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFunction4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFunction5_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCode_INTERFACE_DEFINED__ #define __ICorDebugCode_INTERFACE_DEFINED__ /* interface ICorDebugCode */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCode; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF4-8A68-11d2-983C-0000F808342D") ICorDebugCode : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE IsIL( + virtual HRESULT STDMETHODCALLTYPE IsIL( /* [out] */ BOOL *pbIL) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunction( + + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAddress( + + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pStart) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pcBytes) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [in] */ ULONG32 offset, /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCode( + + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [in] */ ULONG32 startOffset, /* [in] */ ULONG32 endOffset, /* [in] */ ULONG32 cBufferAlloc, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *pcBufferSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( + + virtual HRESULT STDMETHODCALLTYPE GetVersionNumber( /* [out] */ ULONG32 *nVersion) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping( + + virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping( /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetEnCRemapSequencePoints( + + virtual HRESULT STDMETHODCALLTYPE GetEnCRemapSequencePoints( /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ ULONG32 offsets[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCodeVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode * This); - - HRESULT ( STDMETHODCALLTYPE *IsIL )( + + DECLSPEC_XFGVIRT(ICorDebugCode, IsIL) + HRESULT ( STDMETHODCALLTYPE *IsIL )( ICorDebugCode * This, /* [out] */ BOOL *pbIL); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + DECLSPEC_XFGVIRT(ICorDebugCode, GetFunction) + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugCode * This, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugCode, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugCode * This, /* [out] */ CORDB_ADDRESS *pStart); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugCode, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugCode * This, /* [out] */ ULONG32 *pcBytes); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugCode, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugCode * This, /* [in] */ ULONG32 offset, /* [out] */ ICorDebugFunctionBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + DECLSPEC_XFGVIRT(ICorDebugCode, GetCode) + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugCode * This, /* [in] */ ULONG32 startOffset, /* [in] */ ULONG32 endOffset, /* [in] */ ULONG32 cBufferAlloc, /* [length_is][size_is][out] */ BYTE buffer[ ], /* [out] */ ULONG32 *pcBufferSize); - - HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( + + DECLSPEC_XFGVIRT(ICorDebugCode, GetVersionNumber) + HRESULT ( STDMETHODCALLTYPE *GetVersionNumber )( ICorDebugCode * This, /* [out] */ ULONG32 *nVersion); - - HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( + + DECLSPEC_XFGVIRT(ICorDebugCode, GetILToNativeMapping) + HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( ICorDebugCode * This, /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetEnCRemapSequencePoints )( + + DECLSPEC_XFGVIRT(ICorDebugCode, GetEnCRemapSequencePoints) + HRESULT ( STDMETHODCALLTYPE *GetEnCRemapSequencePoints )( ICorDebugCode * This, /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ ULONG32 offsets[ ]); - + END_INTERFACE } ICorDebugCodeVtbl; @@ -13077,119 +13869,124 @@ EXTERN_C const IID IID_ICorDebugCode; CONST_VTBL struct ICorDebugCodeVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCode_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCode_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCode_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCode_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCode_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCode_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCode_IsIL(This,pbIL) \ - ( (This)->lpVtbl -> IsIL(This,pbIL) ) +#define ICorDebugCode_IsIL(This,pbIL) \ + ( (This)->lpVtbl -> IsIL(This,pbIL) ) -#define ICorDebugCode_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugCode_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) -#define ICorDebugCode_GetAddress(This,pStart) \ - ( (This)->lpVtbl -> GetAddress(This,pStart) ) +#define ICorDebugCode_GetAddress(This,pStart) \ + ( (This)->lpVtbl -> GetAddress(This,pStart) ) -#define ICorDebugCode_GetSize(This,pcBytes) \ - ( (This)->lpVtbl -> GetSize(This,pcBytes) ) +#define ICorDebugCode_GetSize(This,pcBytes) \ + ( (This)->lpVtbl -> GetSize(This,pcBytes) ) -#define ICorDebugCode_CreateBreakpoint(This,offset,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,offset,ppBreakpoint) ) +#define ICorDebugCode_CreateBreakpoint(This,offset,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,offset,ppBreakpoint) ) -#define ICorDebugCode_GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) \ - ( (This)->lpVtbl -> GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) ) +#define ICorDebugCode_GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) \ + ( (This)->lpVtbl -> GetCode(This,startOffset,endOffset,cBufferAlloc,buffer,pcBufferSize) ) -#define ICorDebugCode_GetVersionNumber(This,nVersion) \ - ( (This)->lpVtbl -> GetVersionNumber(This,nVersion) ) +#define ICorDebugCode_GetVersionNumber(This,nVersion) \ + ( (This)->lpVtbl -> GetVersionNumber(This,nVersion) ) -#define ICorDebugCode_GetILToNativeMapping(This,cMap,pcMap,map) \ - ( (This)->lpVtbl -> GetILToNativeMapping(This,cMap,pcMap,map) ) +#define ICorDebugCode_GetILToNativeMapping(This,cMap,pcMap,map) \ + ( (This)->lpVtbl -> GetILToNativeMapping(This,cMap,pcMap,map) ) -#define ICorDebugCode_GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) \ - ( (This)->lpVtbl -> GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) ) +#define ICorDebugCode_GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) \ + ( (This)->lpVtbl -> GetEnCRemapSequencePoints(This,cMap,pcMap,offsets) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCode_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCode_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCode2_INTERFACE_DEFINED__ #define __ICorDebugCode2_INTERFACE_DEFINED__ /* interface ICorDebugCode2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ typedef struct _CodeChunkInfo { CORDB_ADDRESS startAddr; ULONG32 length; - } CodeChunkInfo; + } CodeChunkInfo; EXTERN_C const IID IID_ICorDebugCode2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5F696509-452F-4436-A3FE-4D11FE7E2347") ICorDebugCode2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCodeChunks( + virtual HRESULT STDMETHODCALLTYPE GetCodeChunks( /* [in] */ ULONG32 cbufSize, /* [out] */ ULONG32 *pcnumChunks, /* [length_is][size_is][out] */ CodeChunkInfo chunks[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCompilerFlags( + + virtual HRESULT STDMETHODCALLTYPE GetCompilerFlags( /* [out] */ DWORD *pdwFlags) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCode2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetCodeChunks )( + + DECLSPEC_XFGVIRT(ICorDebugCode2, GetCodeChunks) + HRESULT ( STDMETHODCALLTYPE *GetCodeChunks )( ICorDebugCode2 * This, /* [in] */ ULONG32 cbufSize, /* [out] */ ULONG32 *pcnumChunks, /* [length_is][size_is][out] */ CodeChunkInfo chunks[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetCompilerFlags )( + + DECLSPEC_XFGVIRT(ICorDebugCode2, GetCompilerFlags) + HRESULT ( STDMETHODCALLTYPE *GetCompilerFlags )( ICorDebugCode2 * This, /* [out] */ DWORD *pdwFlags); - + END_INTERFACE } ICorDebugCode2Vtbl; @@ -13198,87 +13995,91 @@ EXTERN_C const IID IID_ICorDebugCode2; CONST_VTBL struct ICorDebugCode2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCode2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCode2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCode2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCode2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCode2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCode2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCode2_GetCodeChunks(This,cbufSize,pcnumChunks,chunks) \ - ( (This)->lpVtbl -> GetCodeChunks(This,cbufSize,pcnumChunks,chunks) ) +#define ICorDebugCode2_GetCodeChunks(This,cbufSize,pcnumChunks,chunks) \ + ( (This)->lpVtbl -> GetCodeChunks(This,cbufSize,pcnumChunks,chunks) ) -#define ICorDebugCode2_GetCompilerFlags(This,pdwFlags) \ - ( (This)->lpVtbl -> GetCompilerFlags(This,pdwFlags) ) +#define ICorDebugCode2_GetCompilerFlags(This,pdwFlags) \ + ( (This)->lpVtbl -> GetCompilerFlags(This,pdwFlags) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCode2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCode2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCode3_INTERFACE_DEFINED__ #define __ICorDebugCode3_INTERFACE_DEFINED__ /* interface ICorDebugCode3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCode3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D13D3E88-E1F2-4020-AA1D-3D162DCBE966") ICorDebugCode3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetReturnValueLiveOffset( + virtual HRESULT STDMETHODCALLTYPE GetReturnValueLiveOffset( /* [in] */ ULONG32 ILoffset, /* [in] */ ULONG32 bufferSize, /* [out] */ ULONG32 *pFetched, /* [length_is][size_is][out] */ ULONG32 pOffsets[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCode3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetReturnValueLiveOffset )( + + DECLSPEC_XFGVIRT(ICorDebugCode3, GetReturnValueLiveOffset) + HRESULT ( STDMETHODCALLTYPE *GetReturnValueLiveOffset )( ICorDebugCode3 * This, /* [in] */ ULONG32 ILoffset, /* [in] */ ULONG32 bufferSize, /* [out] */ ULONG32 *pFetched, /* [length_is][size_is][out] */ ULONG32 pOffsets[ ]); - + END_INTERFACE } ICorDebugCode3Vtbl; @@ -13287,78 +14088,82 @@ EXTERN_C const IID IID_ICorDebugCode3; CONST_VTBL struct ICorDebugCode3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCode3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCode3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCode3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCode3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCode3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCode3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCode3_GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) \ - ( (This)->lpVtbl -> GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) ) +#define ICorDebugCode3_GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) \ + ( (This)->lpVtbl -> GetReturnValueLiveOffset(This,ILoffset,bufferSize,pFetched,pOffsets) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCode3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCode3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCode4_INTERFACE_DEFINED__ #define __ICorDebugCode4_INTERFACE_DEFINED__ /* interface ICorDebugCode4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCode4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("18221fa4-20cb-40fa-b19d-9f91c4fa8c14") ICorDebugCode4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateVariableHomes( + virtual HRESULT STDMETHODCALLTYPE EnumerateVariableHomes( /* [out] */ ICorDebugVariableHomeEnum **ppEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCode4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCode4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCode4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCode4 * This); - - HRESULT ( STDMETHODCALLTYPE *EnumerateVariableHomes )( + + DECLSPEC_XFGVIRT(ICorDebugCode4, EnumerateVariableHomes) + HRESULT ( STDMETHODCALLTYPE *EnumerateVariableHomes )( ICorDebugCode4 * This, /* [out] */ ICorDebugVariableHomeEnum **ppEnum); - + END_INTERFACE } ICorDebugCode4Vtbl; @@ -13367,40 +14172,40 @@ EXTERN_C const IID IID_ICorDebugCode4; CONST_VTBL struct ICorDebugCode4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCode4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCode4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCode4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCode4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCode4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCode4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCode4_EnumerateVariableHomes(This,ppEnum) \ - ( (This)->lpVtbl -> EnumerateVariableHomes(This,ppEnum) ) +#define ICorDebugCode4_EnumerateVariableHomes(This,ppEnum) \ + ( (This)->lpVtbl -> EnumerateVariableHomes(This,ppEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCode4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCode4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILCode_INTERFACE_DEFINED__ #define __ICorDebugILCode_INTERFACE_DEFINED__ /* interface ICorDebugILCode */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ typedef struct _CorDebugEHClause { @@ -13411,49 +14216,53 @@ typedef struct _CorDebugEHClause ULONG32 HandlerLength; ULONG32 ClassToken; ULONG32 FilterOffset; - } CorDebugEHClause; + } CorDebugEHClause; EXTERN_C const IID IID_ICorDebugILCode; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("598D46C2-C877-42A7-89D2-3D0C7F1C1264") ICorDebugILCode : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetEHClauses( + virtual HRESULT STDMETHODCALLTYPE GetEHClauses( /* [in] */ ULONG32 cClauses, /* [out] */ ULONG32 *pcClauses, /* [length_is][size_is][out] */ CorDebugEHClause clauses[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILCodeVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILCode * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILCode * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILCode * This); - - HRESULT ( STDMETHODCALLTYPE *GetEHClauses )( + + DECLSPEC_XFGVIRT(ICorDebugILCode, GetEHClauses) + HRESULT ( STDMETHODCALLTYPE *GetEHClauses )( ICorDebugILCode * This, /* [in] */ ULONG32 cClauses, /* [out] */ ULONG32 *pcClauses, /* [length_is][size_is][out] */ CorDebugEHClause clauses[ ]); - + END_INTERFACE } ICorDebugILCodeVtbl; @@ -13462,89 +14271,94 @@ EXTERN_C const IID IID_ICorDebugILCode; CONST_VTBL struct ICorDebugILCodeVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILCode_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILCode_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILCode_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILCode_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILCode_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILCode_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILCode_GetEHClauses(This,cClauses,pcClauses,clauses) \ - ( (This)->lpVtbl -> GetEHClauses(This,cClauses,pcClauses,clauses) ) +#define ICorDebugILCode_GetEHClauses(This,cClauses,pcClauses,clauses) \ + ( (This)->lpVtbl -> GetEHClauses(This,cClauses,pcClauses,clauses) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILCode_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILCode_INTERFACE_DEFINED__ */ #ifndef __ICorDebugILCode2_INTERFACE_DEFINED__ #define __ICorDebugILCode2_INTERFACE_DEFINED__ /* interface ICorDebugILCode2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugILCode2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("46586093-D3F5-4DB6-ACDB-955BCE228C15") ICorDebugILCode2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( + virtual HRESULT STDMETHODCALLTYPE GetLocalVarSigToken( /* [out] */ mdSignature *pmdSig) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetInstrumentedILMap( + + virtual HRESULT STDMETHODCALLTYPE GetInstrumentedILMap( /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_IL_MAP map[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugILCode2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugILCode2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugILCode2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugILCode2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( + + DECLSPEC_XFGVIRT(ICorDebugILCode2, GetLocalVarSigToken) + HRESULT ( STDMETHODCALLTYPE *GetLocalVarSigToken )( ICorDebugILCode2 * This, /* [out] */ mdSignature *pmdSig); - - HRESULT ( STDMETHODCALLTYPE *GetInstrumentedILMap )( + + DECLSPEC_XFGVIRT(ICorDebugILCode2, GetInstrumentedILMap) + HRESULT ( STDMETHODCALLTYPE *GetInstrumentedILMap )( ICorDebugILCode2 * This, /* [in] */ ULONG32 cMap, /* [out] */ ULONG32 *pcMap, /* [length_is][size_is][out] */ COR_IL_MAP map[ ]); - + END_INTERFACE } ICorDebugILCode2Vtbl; @@ -13553,99 +14367,105 @@ EXTERN_C const IID IID_ICorDebugILCode2; CONST_VTBL struct ICorDebugILCode2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugILCode2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugILCode2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugILCode2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugILCode2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugILCode2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugILCode2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugILCode2_GetLocalVarSigToken(This,pmdSig) \ - ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) +#define ICorDebugILCode2_GetLocalVarSigToken(This,pmdSig) \ + ( (This)->lpVtbl -> GetLocalVarSigToken(This,pmdSig) ) -#define ICorDebugILCode2_GetInstrumentedILMap(This,cMap,pcMap,map) \ - ( (This)->lpVtbl -> GetInstrumentedILMap(This,cMap,pcMap,map) ) +#define ICorDebugILCode2_GetInstrumentedILMap(This,cMap,pcMap,map) \ + ( (This)->lpVtbl -> GetInstrumentedILMap(This,cMap,pcMap,map) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugILCode2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugILCode2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugClass_INTERFACE_DEFINED__ #define __ICorDebugClass_INTERFACE_DEFINED__ /* interface ICorDebugClass */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugClass; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF5-8A68-11d2-983C-0000F808342D") ICorDebugClass : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **pModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdTypeDef *pTypeDef) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( + + virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugClassVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugClass * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugClass * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugClass * This); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + DECLSPEC_XFGVIRT(ICorDebugClass, GetModule) + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugClass * This, /* [out] */ ICorDebugModule **pModule); - - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + DECLSPEC_XFGVIRT(ICorDebugClass, GetToken) + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugClass * This, /* [out] */ mdTypeDef *pTypeDef); - - HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( + + DECLSPEC_XFGVIRT(ICorDebugClass, GetStaticFieldValue) + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( ICorDebugClass * This, /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugClassVtbl; @@ -13654,97 +14474,102 @@ EXTERN_C const IID IID_ICorDebugClass; CONST_VTBL struct ICorDebugClassVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugClass_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugClass_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugClass_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugClass_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugClass_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugClass_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugClass_GetModule(This,pModule) \ - ( (This)->lpVtbl -> GetModule(This,pModule) ) +#define ICorDebugClass_GetModule(This,pModule) \ + ( (This)->lpVtbl -> GetModule(This,pModule) ) -#define ICorDebugClass_GetToken(This,pTypeDef) \ - ( (This)->lpVtbl -> GetToken(This,pTypeDef) ) +#define ICorDebugClass_GetToken(This,pTypeDef) \ + ( (This)->lpVtbl -> GetToken(This,pTypeDef) ) -#define ICorDebugClass_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ - ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) +#define ICorDebugClass_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ + ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugClass_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugClass_INTERFACE_DEFINED__ */ #ifndef __ICorDebugClass2_INTERFACE_DEFINED__ #define __ICorDebugClass2_INTERFACE_DEFINED__ /* interface ICorDebugClass2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugClass2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("B008EA8D-7AB1-43f7-BB20-FBB5A04038AE") ICorDebugClass2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetParameterizedType( + virtual HRESULT STDMETHODCALLTYPE GetParameterizedType( /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( + + virtual HRESULT STDMETHODCALLTYPE SetJMCStatus( /* [in] */ BOOL bIsJustMyCode) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugClass2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugClass2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugClass2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugClass2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetParameterizedType )( + + DECLSPEC_XFGVIRT(ICorDebugClass2, GetParameterizedType) + HRESULT ( STDMETHODCALLTYPE *GetParameterizedType )( ICorDebugClass2 * This, /* [in] */ CorElementType elementType, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [out] */ ICorDebugType **ppType); - - HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( + + DECLSPEC_XFGVIRT(ICorDebugClass2, SetJMCStatus) + HRESULT ( STDMETHODCALLTYPE *SetJMCStatus )( ICorDebugClass2 * This, /* [in] */ BOOL bIsJustMyCode); - + END_INTERFACE } ICorDebugClass2Vtbl; @@ -13753,162 +14578,175 @@ EXTERN_C const IID IID_ICorDebugClass2; CONST_VTBL struct ICorDebugClass2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugClass2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugClass2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugClass2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugClass2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugClass2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugClass2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugClass2_GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) \ - ( (This)->lpVtbl -> GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) ) +#define ICorDebugClass2_GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) \ + ( (This)->lpVtbl -> GetParameterizedType(This,elementType,nTypeArgs,ppTypeArgs,ppType) ) -#define ICorDebugClass2_SetJMCStatus(This,bIsJustMyCode) \ - ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) +#define ICorDebugClass2_SetJMCStatus(This,bIsJustMyCode) \ + ( (This)->lpVtbl -> SetJMCStatus(This,bIsJustMyCode) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugClass2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugClass2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugEval_INTERFACE_DEFINED__ #define __ICorDebugEval_INTERFACE_DEFINED__ /* interface ICorDebugEval */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEval; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF6-8A68-11d2-983C-0000F808342D") ICorDebugEval : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CallFunction( + virtual HRESULT STDMETHODCALLTYPE CallFunction( /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewObject( + + virtual HRESULT STDMETHODCALLTYPE NewObject( /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewObjectNoConstructor( + + virtual HRESULT STDMETHODCALLTYPE NewObjectNoConstructor( /* [in] */ ICorDebugClass *pClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewString( + + virtual HRESULT STDMETHODCALLTYPE NewString( /* [in] */ LPCWSTR string) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewArray( + + virtual HRESULT STDMETHODCALLTYPE NewArray( /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsActive( + + virtual HRESULT STDMETHODCALLTYPE IsActive( /* [out] */ BOOL *pbActive) = 0; - + virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetResult( + + virtual HRESULT STDMETHODCALLTYPE GetResult( /* [out] */ ICorDebugValue **ppResult) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetThread( + + virtual HRESULT STDMETHODCALLTYPE GetThread( /* [out] */ ICorDebugThread **ppThread) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateValue( + + virtual HRESULT STDMETHODCALLTYPE CreateValue( /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEvalVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEval * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEval * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEval * This); - - HRESULT ( STDMETHODCALLTYPE *CallFunction )( + + DECLSPEC_XFGVIRT(ICorDebugEval, CallFunction) + HRESULT ( STDMETHODCALLTYPE *CallFunction )( ICorDebugEval * This, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewObject )( + + DECLSPEC_XFGVIRT(ICorDebugEval, NewObject) + HRESULT ( STDMETHODCALLTYPE *NewObject )( ICorDebugEval * This, /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewObjectNoConstructor )( + + DECLSPEC_XFGVIRT(ICorDebugEval, NewObjectNoConstructor) + HRESULT ( STDMETHODCALLTYPE *NewObjectNoConstructor )( ICorDebugEval * This, /* [in] */ ICorDebugClass *pClass); - - HRESULT ( STDMETHODCALLTYPE *NewString )( + + DECLSPEC_XFGVIRT(ICorDebugEval, NewString) + HRESULT ( STDMETHODCALLTYPE *NewString )( ICorDebugEval * This, /* [in] */ LPCWSTR string); - - HRESULT ( STDMETHODCALLTYPE *NewArray )( + + DECLSPEC_XFGVIRT(ICorDebugEval, NewArray) + HRESULT ( STDMETHODCALLTYPE *NewArray )( ICorDebugEval * This, /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]); - - HRESULT ( STDMETHODCALLTYPE *IsActive )( + + DECLSPEC_XFGVIRT(ICorDebugEval, IsActive) + HRESULT ( STDMETHODCALLTYPE *IsActive )( ICorDebugEval * This, /* [out] */ BOOL *pbActive); - - HRESULT ( STDMETHODCALLTYPE *Abort )( + + DECLSPEC_XFGVIRT(ICorDebugEval, Abort) + HRESULT ( STDMETHODCALLTYPE *Abort )( ICorDebugEval * This); - - HRESULT ( STDMETHODCALLTYPE *GetResult )( + + DECLSPEC_XFGVIRT(ICorDebugEval, GetResult) + HRESULT ( STDMETHODCALLTYPE *GetResult )( ICorDebugEval * This, /* [out] */ ICorDebugValue **ppResult); - - HRESULT ( STDMETHODCALLTYPE *GetThread )( + + DECLSPEC_XFGVIRT(ICorDebugEval, GetThread) + HRESULT ( STDMETHODCALLTYPE *GetThread )( ICorDebugEval * This, /* [out] */ ICorDebugThread **ppThread); - - HRESULT ( STDMETHODCALLTYPE *CreateValue )( + + DECLSPEC_XFGVIRT(ICorDebugEval, CreateValue) + HRESULT ( STDMETHODCALLTYPE *CreateValue )( ICorDebugEval * This, /* [in] */ CorElementType elementType, /* [in] */ ICorDebugClass *pElementClass, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugEvalVtbl; @@ -13917,175 +14755,185 @@ EXTERN_C const IID IID_ICorDebugEval; CONST_VTBL struct ICorDebugEvalVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEval_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEval_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEval_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEval_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEval_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEval_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEval_CallFunction(This,pFunction,nArgs,ppArgs) \ - ( (This)->lpVtbl -> CallFunction(This,pFunction,nArgs,ppArgs) ) +#define ICorDebugEval_CallFunction(This,pFunction,nArgs,ppArgs) \ + ( (This)->lpVtbl -> CallFunction(This,pFunction,nArgs,ppArgs) ) -#define ICorDebugEval_NewObject(This,pConstructor,nArgs,ppArgs) \ - ( (This)->lpVtbl -> NewObject(This,pConstructor,nArgs,ppArgs) ) +#define ICorDebugEval_NewObject(This,pConstructor,nArgs,ppArgs) \ + ( (This)->lpVtbl -> NewObject(This,pConstructor,nArgs,ppArgs) ) -#define ICorDebugEval_NewObjectNoConstructor(This,pClass) \ - ( (This)->lpVtbl -> NewObjectNoConstructor(This,pClass) ) +#define ICorDebugEval_NewObjectNoConstructor(This,pClass) \ + ( (This)->lpVtbl -> NewObjectNoConstructor(This,pClass) ) -#define ICorDebugEval_NewString(This,string) \ - ( (This)->lpVtbl -> NewString(This,string) ) +#define ICorDebugEval_NewString(This,string) \ + ( (This)->lpVtbl -> NewString(This,string) ) -#define ICorDebugEval_NewArray(This,elementType,pElementClass,rank,dims,lowBounds) \ - ( (This)->lpVtbl -> NewArray(This,elementType,pElementClass,rank,dims,lowBounds) ) +#define ICorDebugEval_NewArray(This,elementType,pElementClass,rank,dims,lowBounds) \ + ( (This)->lpVtbl -> NewArray(This,elementType,pElementClass,rank,dims,lowBounds) ) -#define ICorDebugEval_IsActive(This,pbActive) \ - ( (This)->lpVtbl -> IsActive(This,pbActive) ) +#define ICorDebugEval_IsActive(This,pbActive) \ + ( (This)->lpVtbl -> IsActive(This,pbActive) ) -#define ICorDebugEval_Abort(This) \ - ( (This)->lpVtbl -> Abort(This) ) +#define ICorDebugEval_Abort(This) \ + ( (This)->lpVtbl -> Abort(This) ) -#define ICorDebugEval_GetResult(This,ppResult) \ - ( (This)->lpVtbl -> GetResult(This,ppResult) ) +#define ICorDebugEval_GetResult(This,ppResult) \ + ( (This)->lpVtbl -> GetResult(This,ppResult) ) -#define ICorDebugEval_GetThread(This,ppThread) \ - ( (This)->lpVtbl -> GetThread(This,ppThread) ) +#define ICorDebugEval_GetThread(This,ppThread) \ + ( (This)->lpVtbl -> GetThread(This,ppThread) ) -#define ICorDebugEval_CreateValue(This,elementType,pElementClass,ppValue) \ - ( (This)->lpVtbl -> CreateValue(This,elementType,pElementClass,ppValue) ) +#define ICorDebugEval_CreateValue(This,elementType,pElementClass,ppValue) \ + ( (This)->lpVtbl -> CreateValue(This,elementType,pElementClass,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEval_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEval_INTERFACE_DEFINED__ */ #ifndef __ICorDebugEval2_INTERFACE_DEFINED__ #define __ICorDebugEval2_INTERFACE_DEFINED__ /* interface ICorDebugEval2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEval2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("FB0D9CE7-BE66-4683-9D32-A42A04E2FD91") ICorDebugEval2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CallParameterizedFunction( + virtual HRESULT STDMETHODCALLTYPE CallParameterizedFunction( /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateValueForType( + + virtual HRESULT STDMETHODCALLTYPE CreateValueForType( /* [in] */ ICorDebugType *pType, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewParameterizedObject( + + virtual HRESULT STDMETHODCALLTYPE NewParameterizedObject( /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewParameterizedObjectNoConstructor( + + virtual HRESULT STDMETHODCALLTYPE NewParameterizedObjectNoConstructor( /* [in] */ ICorDebugClass *pClass, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewParameterizedArray( + + virtual HRESULT STDMETHODCALLTYPE NewParameterizedArray( /* [in] */ ICorDebugType *pElementType, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE NewStringWithLength( + + virtual HRESULT STDMETHODCALLTYPE NewStringWithLength( /* [in] */ LPCWSTR string, /* [in] */ UINT uiLength) = 0; - + virtual HRESULT STDMETHODCALLTYPE RudeAbort( void) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEval2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEval2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEval2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEval2 * This); - - HRESULT ( STDMETHODCALLTYPE *CallParameterizedFunction )( + + DECLSPEC_XFGVIRT(ICorDebugEval2, CallParameterizedFunction) + HRESULT ( STDMETHODCALLTYPE *CallParameterizedFunction )( ICorDebugEval2 * This, /* [in] */ ICorDebugFunction *pFunction, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *CreateValueForType )( + + DECLSPEC_XFGVIRT(ICorDebugEval2, CreateValueForType) + HRESULT ( STDMETHODCALLTYPE *CreateValueForType )( ICorDebugEval2 * This, /* [in] */ ICorDebugType *pType, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *NewParameterizedObject )( + + DECLSPEC_XFGVIRT(ICorDebugEval2, NewParameterizedObject) + HRESULT ( STDMETHODCALLTYPE *NewParameterizedObject )( ICorDebugEval2 * This, /* [in] */ ICorDebugFunction *pConstructor, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ], /* [in] */ ULONG32 nArgs, /* [size_is][in] */ ICorDebugValue *ppArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewParameterizedObjectNoConstructor )( + + DECLSPEC_XFGVIRT(ICorDebugEval2, NewParameterizedObjectNoConstructor) + HRESULT ( STDMETHODCALLTYPE *NewParameterizedObjectNoConstructor )( ICorDebugEval2 * This, /* [in] */ ICorDebugClass *pClass, /* [in] */ ULONG32 nTypeArgs, /* [size_is][in] */ ICorDebugType *ppTypeArgs[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewParameterizedArray )( + + DECLSPEC_XFGVIRT(ICorDebugEval2, NewParameterizedArray) + HRESULT ( STDMETHODCALLTYPE *NewParameterizedArray )( ICorDebugEval2 * This, /* [in] */ ICorDebugType *pElementType, /* [in] */ ULONG32 rank, /* [size_is][in] */ ULONG32 dims[ ], /* [size_is][in] */ ULONG32 lowBounds[ ]); - - HRESULT ( STDMETHODCALLTYPE *NewStringWithLength )( + + DECLSPEC_XFGVIRT(ICorDebugEval2, NewStringWithLength) + HRESULT ( STDMETHODCALLTYPE *NewStringWithLength )( ICorDebugEval2 * This, /* [in] */ LPCWSTR string, /* [in] */ UINT uiLength); - - HRESULT ( STDMETHODCALLTYPE *RudeAbort )( + + DECLSPEC_XFGVIRT(ICorDebugEval2, RudeAbort) + HRESULT ( STDMETHODCALLTYPE *RudeAbort )( ICorDebugEval2 * This); - + END_INTERFACE } ICorDebugEval2Vtbl; @@ -14094,117 +14942,124 @@ EXTERN_C const IID IID_ICorDebugEval2; CONST_VTBL struct ICorDebugEval2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEval2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEval2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEval2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEval2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEval2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEval2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEval2_CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ - ( (This)->lpVtbl -> CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) +#define ICorDebugEval2_CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ + ( (This)->lpVtbl -> CallParameterizedFunction(This,pFunction,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) -#define ICorDebugEval2_CreateValueForType(This,pType,ppValue) \ - ( (This)->lpVtbl -> CreateValueForType(This,pType,ppValue) ) +#define ICorDebugEval2_CreateValueForType(This,pType,ppValue) \ + ( (This)->lpVtbl -> CreateValueForType(This,pType,ppValue) ) -#define ICorDebugEval2_NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ - ( (This)->lpVtbl -> NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) +#define ICorDebugEval2_NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) \ + ( (This)->lpVtbl -> NewParameterizedObject(This,pConstructor,nTypeArgs,ppTypeArgs,nArgs,ppArgs) ) -#define ICorDebugEval2_NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) \ - ( (This)->lpVtbl -> NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) ) +#define ICorDebugEval2_NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) \ + ( (This)->lpVtbl -> NewParameterizedObjectNoConstructor(This,pClass,nTypeArgs,ppTypeArgs) ) -#define ICorDebugEval2_NewParameterizedArray(This,pElementType,rank,dims,lowBounds) \ - ( (This)->lpVtbl -> NewParameterizedArray(This,pElementType,rank,dims,lowBounds) ) +#define ICorDebugEval2_NewParameterizedArray(This,pElementType,rank,dims,lowBounds) \ + ( (This)->lpVtbl -> NewParameterizedArray(This,pElementType,rank,dims,lowBounds) ) -#define ICorDebugEval2_NewStringWithLength(This,string,uiLength) \ - ( (This)->lpVtbl -> NewStringWithLength(This,string,uiLength) ) +#define ICorDebugEval2_NewStringWithLength(This,string,uiLength) \ + ( (This)->lpVtbl -> NewStringWithLength(This,string,uiLength) ) -#define ICorDebugEval2_RudeAbort(This) \ - ( (This)->lpVtbl -> RudeAbort(This) ) +#define ICorDebugEval2_RudeAbort(This) \ + ( (This)->lpVtbl -> RudeAbort(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEval2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEval2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValue_INTERFACE_DEFINED__ #define __ICorDebugValue_INTERFACE_DEFINED__ /* interface ICorDebugValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF7-8A68-11d2-983C-0000F808342D") ICorDebugValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetType( + virtual HRESULT STDMETHODCALLTYPE GetType( /* [out] */ CorElementType *pType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSize( + + virtual HRESULT STDMETHODCALLTYPE GetSize( /* [out] */ ULONG32 *pSize) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetAddress( + + virtual HRESULT STDMETHODCALLTYPE GetAddress( /* [out] */ CORDB_ADDRESS *pAddress) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateBreakpoint( /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - + END_INTERFACE } ICorDebugValueVtbl; @@ -14213,87 +15068,91 @@ EXTERN_C const IID IID_ICorDebugValue; CONST_VTBL struct ICorDebugValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValue2_INTERFACE_DEFINED__ #define __ICorDebugValue2_INTERFACE_DEFINED__ /* interface ICorDebugValue2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValue2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5E0B54E7-D88A-4626-9420-A691E0A78B49") ICorDebugValue2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetExactType( + virtual HRESULT STDMETHODCALLTYPE GetExactType( /* [out] */ ICorDebugType **ppType) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValue2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValue2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValue2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValue2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetExactType )( + + DECLSPEC_XFGVIRT(ICorDebugValue2, GetExactType) + HRESULT ( STDMETHODCALLTYPE *GetExactType )( ICorDebugValue2 * This, /* [out] */ ICorDebugType **ppType); - + END_INTERFACE } ICorDebugValue2Vtbl; @@ -14302,78 +15161,82 @@ EXTERN_C const IID IID_ICorDebugValue2; CONST_VTBL struct ICorDebugValue2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValue2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValue2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValue2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValue2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValue2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValue2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValue2_GetExactType(This,ppType) \ - ( (This)->lpVtbl -> GetExactType(This,ppType) ) +#define ICorDebugValue2_GetExactType(This,ppType) \ + ( (This)->lpVtbl -> GetExactType(This,ppType) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValue2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValue2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValue3_INTERFACE_DEFINED__ #define __ICorDebugValue3_INTERFACE_DEFINED__ /* interface ICorDebugValue3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValue3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("565005FC-0F8A-4F3E-9EDB-83102B156595") ICorDebugValue3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetSize64( + virtual HRESULT STDMETHODCALLTYPE GetSize64( /* [out] */ ULONG64 *pSize) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValue3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValue3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValue3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValue3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetSize64 )( + + DECLSPEC_XFGVIRT(ICorDebugValue3, GetSize64) + HRESULT ( STDMETHODCALLTYPE *GetSize64 )( ICorDebugValue3 * This, /* [out] */ ULONG64 *pSize); - + END_INTERFACE } ICorDebugValue3Vtbl; @@ -14382,101 +15245,110 @@ EXTERN_C const IID IID_ICorDebugValue3; CONST_VTBL struct ICorDebugValue3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValue3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValue3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValue3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValue3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValue3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValue3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValue3_GetSize64(This,pSize) \ - ( (This)->lpVtbl -> GetSize64(This,pSize) ) +#define ICorDebugValue3_GetSize64(This,pSize) \ + ( (This)->lpVtbl -> GetSize64(This,pSize) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValue3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValue3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugGenericValue_INTERFACE_DEFINED__ #define __ICorDebugGenericValue_INTERFACE_DEFINED__ /* interface ICorDebugGenericValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugGenericValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF8-8A68-11d2-983C-0000F808342D") ICorDebugGenericValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE GetValue( + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [out] */ void *pTo) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetValue( + + virtual HRESULT STDMETHODCALLTYPE SetValue( /* [in] */ void *pFrom) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugGenericValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugGenericValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugGenericValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugGenericValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugGenericValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugGenericValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugGenericValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugGenericValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + DECLSPEC_XFGVIRT(ICorDebugGenericValue, GetValue) + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugGenericValue * This, /* [out] */ void *pTo); - - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + DECLSPEC_XFGVIRT(ICorDebugGenericValue, SetValue) + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugGenericValue * This, /* [in] */ void *pFrom); - + END_INTERFACE } ICorDebugGenericValueVtbl; @@ -14485,138 +15357,150 @@ EXTERN_C const IID IID_ICorDebugGenericValue; CONST_VTBL struct ICorDebugGenericValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugGenericValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugGenericValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugGenericValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugGenericValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugGenericValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugGenericValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugGenericValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugGenericValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugGenericValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugGenericValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugGenericValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugGenericValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugGenericValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugGenericValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugGenericValue_GetValue(This,pTo) \ - ( (This)->lpVtbl -> GetValue(This,pTo) ) +#define ICorDebugGenericValue_GetValue(This,pTo) \ + ( (This)->lpVtbl -> GetValue(This,pTo) ) -#define ICorDebugGenericValue_SetValue(This,pFrom) \ - ( (This)->lpVtbl -> SetValue(This,pFrom) ) +#define ICorDebugGenericValue_SetValue(This,pFrom) \ + ( (This)->lpVtbl -> SetValue(This,pFrom) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugGenericValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugGenericValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugReferenceValue_INTERFACE_DEFINED__ #define __ICorDebugReferenceValue_INTERFACE_DEFINED__ /* interface ICorDebugReferenceValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugReferenceValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAF9-8A68-11d2-983C-0000F808342D") ICorDebugReferenceValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE IsNull( + virtual HRESULT STDMETHODCALLTYPE IsNull( /* [out] */ BOOL *pbNull) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetValue( + + virtual HRESULT STDMETHODCALLTYPE GetValue( /* [out] */ CORDB_ADDRESS *pValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetValue( + + virtual HRESULT STDMETHODCALLTYPE SetValue( /* [in] */ CORDB_ADDRESS value) = 0; - - virtual HRESULT STDMETHODCALLTYPE Dereference( + + virtual HRESULT STDMETHODCALLTYPE Dereference( /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE DereferenceStrong( + + virtual HRESULT STDMETHODCALLTYPE DereferenceStrong( /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugReferenceValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugReferenceValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugReferenceValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugReferenceValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugReferenceValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugReferenceValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugReferenceValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugReferenceValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsNull )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, IsNull) + HRESULT ( STDMETHODCALLTYPE *IsNull )( ICorDebugReferenceValue * This, /* [out] */ BOOL *pbNull); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, GetValue) + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugReferenceValue * This, /* [out] */ CORDB_ADDRESS *pValue); - - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, SetValue) + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugReferenceValue * This, /* [in] */ CORDB_ADDRESS value); - - HRESULT ( STDMETHODCALLTYPE *Dereference )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, Dereference) + HRESULT ( STDMETHODCALLTYPE *Dereference )( ICorDebugReferenceValue * This, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, DereferenceStrong) + HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( ICorDebugReferenceValue * This, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugReferenceValueVtbl; @@ -14625,126 +15509,135 @@ EXTERN_C const IID IID_ICorDebugReferenceValue; CONST_VTBL struct ICorDebugReferenceValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugReferenceValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugReferenceValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugReferenceValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugReferenceValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugReferenceValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugReferenceValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugReferenceValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugReferenceValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugReferenceValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugReferenceValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugReferenceValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugReferenceValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugReferenceValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugReferenceValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugReferenceValue_IsNull(This,pbNull) \ - ( (This)->lpVtbl -> IsNull(This,pbNull) ) +#define ICorDebugReferenceValue_IsNull(This,pbNull) \ + ( (This)->lpVtbl -> IsNull(This,pbNull) ) -#define ICorDebugReferenceValue_GetValue(This,pValue) \ - ( (This)->lpVtbl -> GetValue(This,pValue) ) +#define ICorDebugReferenceValue_GetValue(This,pValue) \ + ( (This)->lpVtbl -> GetValue(This,pValue) ) -#define ICorDebugReferenceValue_SetValue(This,value) \ - ( (This)->lpVtbl -> SetValue(This,value) ) +#define ICorDebugReferenceValue_SetValue(This,value) \ + ( (This)->lpVtbl -> SetValue(This,value) ) -#define ICorDebugReferenceValue_Dereference(This,ppValue) \ - ( (This)->lpVtbl -> Dereference(This,ppValue) ) +#define ICorDebugReferenceValue_Dereference(This,ppValue) \ + ( (This)->lpVtbl -> Dereference(This,ppValue) ) -#define ICorDebugReferenceValue_DereferenceStrong(This,ppValue) \ - ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) +#define ICorDebugReferenceValue_DereferenceStrong(This,ppValue) \ + ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugReferenceValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugReferenceValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHeapValue_INTERFACE_DEFINED__ #define __ICorDebugHeapValue_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAFA-8A68-11d2-983C-0000F808342D") ICorDebugHeapValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE IsValid( + virtual HRESULT STDMETHODCALLTYPE IsValid( /* [out] */ BOOL *pbValid) = 0; - - virtual HRESULT STDMETHODCALLTYPE CreateRelocBreakpoint( + + virtual HRESULT STDMETHODCALLTYPE CreateRelocBreakpoint( /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugHeapValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugHeapValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugHeapValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugHeapValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue, IsValid) + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugHeapValue * This, /* [out] */ BOOL *pbValid); - - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue, CreateRelocBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugHeapValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - + END_INTERFACE } ICorDebugHeapValueVtbl; @@ -14753,96 +15646,100 @@ EXTERN_C const IID IID_ICorDebugHeapValue; CONST_VTBL struct ICorDebugHeapValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugHeapValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugHeapValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugHeapValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugHeapValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugHeapValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugHeapValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugHeapValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugHeapValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) +#define ICorDebugHeapValue_IsValid(This,pbValid) \ + ( (This)->lpVtbl -> IsValid(This,pbValid) ) -#define ICorDebugHeapValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) +#define ICorDebugHeapValue_CreateRelocBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHeapValue2_INTERFACE_DEFINED__ #define __ICorDebugHeapValue2_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("E3AC4D6C-9CB7-43e6-96CC-B21540E5083C") ICorDebugHeapValue2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreateHandle( + virtual HRESULT STDMETHODCALLTYPE CreateHandle( /* [in] */ CorDebugHandleType type, /* [out] */ ICorDebugHandleValue **ppHandle) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapValue2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue2 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateHandle )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue2, CreateHandle) + HRESULT ( STDMETHODCALLTYPE *CreateHandle )( ICorDebugHeapValue2 * This, /* [in] */ CorDebugHandleType type, /* [out] */ ICorDebugHandleValue **ppHandle); - + END_INTERFACE } ICorDebugHeapValue2Vtbl; @@ -14851,87 +15748,92 @@ EXTERN_C const IID IID_ICorDebugHeapValue2; CONST_VTBL struct ICorDebugHeapValue2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapValue2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapValue2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapValue2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapValue2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapValue2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapValue2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapValue2_CreateHandle(This,type,ppHandle) \ - ( (This)->lpVtbl -> CreateHandle(This,type,ppHandle) ) +#define ICorDebugHeapValue2_CreateHandle(This,type,ppHandle) \ + ( (This)->lpVtbl -> CreateHandle(This,type,ppHandle) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapValue2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapValue2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHeapValue3_INTERFACE_DEFINED__ #define __ICorDebugHeapValue3_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue3 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue3; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("A69ACAD8-2374-46e9-9FF8-B1F14120D296") ICorDebugHeapValue3 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetThreadOwningMonitorLock( + virtual HRESULT STDMETHODCALLTYPE GetThreadOwningMonitorLock( /* [out] */ ICorDebugThread **ppThread, /* [out] */ DWORD *pAcquisitionCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMonitorEventWaitList( + + virtual HRESULT STDMETHODCALLTYPE GetMonitorEventWaitList( /* [out] */ ICorDebugThreadEnum **ppThreadEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapValue3Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue3 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue3 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue3 * This); - - HRESULT ( STDMETHODCALLTYPE *GetThreadOwningMonitorLock )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue3, GetThreadOwningMonitorLock) + HRESULT ( STDMETHODCALLTYPE *GetThreadOwningMonitorLock )( ICorDebugHeapValue3 * This, /* [out] */ ICorDebugThread **ppThread, /* [out] */ DWORD *pAcquisitionCount); - - HRESULT ( STDMETHODCALLTYPE *GetMonitorEventWaitList )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue3, GetMonitorEventWaitList) + HRESULT ( STDMETHODCALLTYPE *GetMonitorEventWaitList )( ICorDebugHeapValue3 * This, /* [out] */ ICorDebugThreadEnum **ppThreadEnum); - + END_INTERFACE } ICorDebugHeapValue3Vtbl; @@ -14940,81 +15842,85 @@ EXTERN_C const IID IID_ICorDebugHeapValue3; CONST_VTBL struct ICorDebugHeapValue3Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapValue3_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapValue3_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapValue3_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapValue3_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapValue3_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapValue3_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapValue3_GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) \ - ( (This)->lpVtbl -> GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) ) +#define ICorDebugHeapValue3_GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) \ + ( (This)->lpVtbl -> GetThreadOwningMonitorLock(This,ppThread,pAcquisitionCount) ) -#define ICorDebugHeapValue3_GetMonitorEventWaitList(This,ppThreadEnum) \ - ( (This)->lpVtbl -> GetMonitorEventWaitList(This,ppThreadEnum) ) +#define ICorDebugHeapValue3_GetMonitorEventWaitList(This,ppThreadEnum) \ + ( (This)->lpVtbl -> GetMonitorEventWaitList(This,ppThreadEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapValue3_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapValue3_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHeapValue4_INTERFACE_DEFINED__ #define __ICorDebugHeapValue4_INTERFACE_DEFINED__ /* interface ICorDebugHeapValue4 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHeapValue4; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("B35DD495-A555-463B-9BE9-C55338486BB8") ICorDebugHeapValue4 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CreatePinnedHandle( + virtual HRESULT STDMETHODCALLTYPE CreatePinnedHandle( /* [out] */ ICorDebugHandleValue **ppHandle) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHeapValue4Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHeapValue4 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHeapValue4 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHeapValue4 * This); - - HRESULT ( STDMETHODCALLTYPE *CreatePinnedHandle )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue4, CreatePinnedHandle) + HRESULT ( STDMETHODCALLTYPE *CreatePinnedHandle )( ICorDebugHeapValue4 * This, /* [out] */ ICorDebugHandleValue **ppHandle); - + END_INTERFACE } ICorDebugHeapValue4Vtbl; @@ -15023,142 +15929,156 @@ EXTERN_C const IID IID_ICorDebugHeapValue4; CONST_VTBL struct ICorDebugHeapValue4Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHeapValue4_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHeapValue4_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHeapValue4_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHeapValue4_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHeapValue4_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHeapValue4_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHeapValue4_CreatePinnedHandle(This,ppHandle) \ - ( (This)->lpVtbl -> CreatePinnedHandle(This,ppHandle) ) +#define ICorDebugHeapValue4_CreatePinnedHandle(This,ppHandle) \ + ( (This)->lpVtbl -> CreatePinnedHandle(This,ppHandle) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHeapValue4_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHeapValue4_INTERFACE_DEFINED__ */ #ifndef __ICorDebugObjectValue_INTERFACE_DEFINED__ #define __ICorDebugObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("18AD3D6E-B7D2-11d2-BD04-0000F80849BD") ICorDebugObjectValue : public ICorDebugValue { public: - virtual HRESULT STDMETHODCALLTYPE GetClass( + virtual HRESULT STDMETHODCALLTYPE GetClass( /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFieldValue( + + virtual HRESULT STDMETHODCALLTYPE GetFieldValue( /* [in] */ ICorDebugClass *pClass, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetVirtualMethod( + + virtual HRESULT STDMETHODCALLTYPE GetVirtualMethod( /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetContext( + + virtual HRESULT STDMETHODCALLTYPE GetContext( /* [out] */ ICorDebugContext **ppContext) = 0; - - virtual HRESULT STDMETHODCALLTYPE IsValueClass( + + virtual HRESULT STDMETHODCALLTYPE IsValueClass( /* [out] */ BOOL *pbIsValueClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetManagedCopy( + + virtual HRESULT STDMETHODCALLTYPE GetManagedCopy( /* [out] */ IUnknown **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetFromManagedCopy( + + virtual HRESULT STDMETHODCALLTYPE SetFromManagedCopy( /* [in] */ IUnknown *pObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugObjectValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugObjectValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugObjectValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugObjectValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugObjectValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugObjectValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugObjectValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetClass) + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugObjectValue * This, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetFieldValue) + HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( ICorDebugObjectValue * This, /* [in] */ ICorDebugClass *pClass, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetVirtualMethod) + HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( ICorDebugObjectValue * This, /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetContext) + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugObjectValue * This, /* [out] */ ICorDebugContext **ppContext); - - HRESULT ( STDMETHODCALLTYPE *IsValueClass )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, IsValueClass) + HRESULT ( STDMETHODCALLTYPE *IsValueClass )( ICorDebugObjectValue * This, /* [out] */ BOOL *pbIsValueClass); - - HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetManagedCopy) + HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( ICorDebugObjectValue * This, /* [out] */ IUnknown **ppObject); - - HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, SetFromManagedCopy) + HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( ICorDebugObjectValue * This, /* [in] */ IUnknown *pObject); - + END_INTERFACE } ICorDebugObjectValueVtbl; @@ -15167,113 +16087,117 @@ EXTERN_C const IID IID_ICorDebugObjectValue; CONST_VTBL struct ICorDebugObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugObjectValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugObjectValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugObjectValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugObjectValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugObjectValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugObjectValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugObjectValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugObjectValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugObjectValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugObjectValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugObjectValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugObjectValue_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) +#define ICorDebugObjectValue_GetClass(This,ppClass) \ + ( (This)->lpVtbl -> GetClass(This,ppClass) ) -#define ICorDebugObjectValue_GetFieldValue(This,pClass,fieldDef,ppValue) \ - ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) +#define ICorDebugObjectValue_GetFieldValue(This,pClass,fieldDef,ppValue) \ + ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) -#define ICorDebugObjectValue_GetVirtualMethod(This,memberRef,ppFunction) \ - ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) +#define ICorDebugObjectValue_GetVirtualMethod(This,memberRef,ppFunction) \ + ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) -#define ICorDebugObjectValue_GetContext(This,ppContext) \ - ( (This)->lpVtbl -> GetContext(This,ppContext) ) +#define ICorDebugObjectValue_GetContext(This,ppContext) \ + ( (This)->lpVtbl -> GetContext(This,ppContext) ) -#define ICorDebugObjectValue_IsValueClass(This,pbIsValueClass) \ - ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) +#define ICorDebugObjectValue_IsValueClass(This,pbIsValueClass) \ + ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) -#define ICorDebugObjectValue_GetManagedCopy(This,ppObject) \ - ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) +#define ICorDebugObjectValue_GetManagedCopy(This,ppObject) \ + ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) -#define ICorDebugObjectValue_SetFromManagedCopy(This,pObject) \ - ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) +#define ICorDebugObjectValue_SetFromManagedCopy(This,pObject) \ + ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugObjectValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugObjectValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugObjectValue2_INTERFACE_DEFINED__ #define __ICorDebugObjectValue2_INTERFACE_DEFINED__ /* interface ICorDebugObjectValue2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugObjectValue2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("49E4A320-4A9B-4eca-B105-229FB7D5009F") ICorDebugObjectValue2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetVirtualMethodAndType( + virtual HRESULT STDMETHODCALLTYPE GetVirtualMethodAndType( /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction, /* [out] */ ICorDebugType **ppType) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugObjectValue2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugObjectValue2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugObjectValue2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugObjectValue2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetVirtualMethodAndType )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue2, GetVirtualMethodAndType) + HRESULT ( STDMETHODCALLTYPE *GetVirtualMethodAndType )( ICorDebugObjectValue2 * This, /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction, /* [out] */ ICorDebugType **ppType); - + END_INTERFACE } ICorDebugObjectValue2Vtbl; @@ -15282,85 +16206,90 @@ EXTERN_C const IID IID_ICorDebugObjectValue2; CONST_VTBL struct ICorDebugObjectValue2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugObjectValue2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugObjectValue2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugObjectValue2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugObjectValue2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugObjectValue2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugObjectValue2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugObjectValue2_GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) \ - ( (This)->lpVtbl -> GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) ) +#define ICorDebugObjectValue2_GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) \ + ( (This)->lpVtbl -> GetVirtualMethodAndType(This,memberRef,ppFunction,ppType) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugObjectValue2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugObjectValue2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ #define __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugDelegateObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugDelegateObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("3AF70CC7-6047-47F6-A5C5-090A1A622638") ICorDebugDelegateObjectValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetTarget( + virtual HRESULT STDMETHODCALLTYPE GetTarget( /* [out] */ ICorDebugReferenceValue **ppObject) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFunction( + + virtual HRESULT STDMETHODCALLTYPE GetFunction( /* [out] */ ICorDebugFunction **ppFunction) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugDelegateObjectValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugDelegateObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugDelegateObjectValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugDelegateObjectValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetTarget )( + + DECLSPEC_XFGVIRT(ICorDebugDelegateObjectValue, GetTarget) + HRESULT ( STDMETHODCALLTYPE *GetTarget )( ICorDebugDelegateObjectValue * This, /* [out] */ ICorDebugReferenceValue **ppObject); - - HRESULT ( STDMETHODCALLTYPE *GetFunction )( + + DECLSPEC_XFGVIRT(ICorDebugDelegateObjectValue, GetFunction) + HRESULT ( STDMETHODCALLTYPE *GetFunction )( ICorDebugDelegateObjectValue * This, /* [out] */ ICorDebugFunction **ppFunction); - + END_INTERFACE } ICorDebugDelegateObjectValueVtbl; @@ -15369,105 +16298,115 @@ EXTERN_C const IID IID_ICorDebugDelegateObjectValue; CONST_VTBL struct ICorDebugDelegateObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugDelegateObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugDelegateObjectValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugDelegateObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugDelegateObjectValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugDelegateObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugDelegateObjectValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugDelegateObjectValue_GetTarget(This,ppObject) \ - ( (This)->lpVtbl -> GetTarget(This,ppObject) ) +#define ICorDebugDelegateObjectValue_GetTarget(This,ppObject) \ + ( (This)->lpVtbl -> GetTarget(This,ppObject) ) -#define ICorDebugDelegateObjectValue_GetFunction(This,ppFunction) \ - ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) +#define ICorDebugDelegateObjectValue_GetFunction(This,ppFunction) \ + ( (This)->lpVtbl -> GetFunction(This,ppFunction) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugDelegateObjectValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugBoxValue_INTERFACE_DEFINED__ #define __ICorDebugBoxValue_INTERFACE_DEFINED__ /* interface ICorDebugBoxValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBoxValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAFC-8A68-11d2-983C-0000F808342D") ICorDebugBoxValue : public ICorDebugHeapValue { public: - virtual HRESULT STDMETHODCALLTYPE GetObject( + virtual HRESULT STDMETHODCALLTYPE GetObject( /* [out] */ ICorDebugObjectValue **ppObject) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugBoxValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBoxValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBoxValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBoxValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugBoxValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugBoxValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugBoxValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugBoxValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue, IsValid) + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugBoxValue * This, /* [out] */ BOOL *pbValid); - - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue, CreateRelocBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugBoxValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetObject )( + + DECLSPEC_XFGVIRT(ICorDebugBoxValue, GetObject) + HRESULT ( STDMETHODCALLTYPE *GetObject )( ICorDebugBoxValue * This, /* [out] */ ICorDebugObjectValue **ppObject); - + END_INTERFACE } ICorDebugBoxValueVtbl; @@ -15476,143 +16415,154 @@ EXTERN_C const IID IID_ICorDebugBoxValue; CONST_VTBL struct ICorDebugBoxValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugBoxValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugBoxValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugBoxValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugBoxValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugBoxValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugBoxValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugBoxValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugBoxValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugBoxValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugBoxValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugBoxValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugBoxValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugBoxValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugBoxValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugBoxValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) +#define ICorDebugBoxValue_IsValid(This,pbValid) \ + ( (This)->lpVtbl -> IsValid(This,pbValid) ) -#define ICorDebugBoxValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) +#define ICorDebugBoxValue_CreateRelocBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) -#define ICorDebugBoxValue_GetObject(This,ppObject) \ - ( (This)->lpVtbl -> GetObject(This,ppObject) ) +#define ICorDebugBoxValue_GetObject(This,ppObject) \ + ( (This)->lpVtbl -> GetObject(This,ppObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugBoxValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugBoxValue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0105 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0106 */ +/* [local] */ #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0105_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0105_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0106_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0106_v0_0_s_ifspec; #ifndef __ICorDebugStringValue_INTERFACE_DEFINED__ #define __ICorDebugStringValue_INTERFACE_DEFINED__ /* interface ICorDebugStringValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStringValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCAFD-8A68-11d2-983C-0000F808342D") ICorDebugStringValue : public ICorDebugHeapValue { public: - virtual HRESULT STDMETHODCALLTYPE GetLength( + virtual HRESULT STDMETHODCALLTYPE GetLength( /* [out] */ ULONG32 *pcchString) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( + + virtual HRESULT STDMETHODCALLTYPE GetString( /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStringValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStringValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStringValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStringValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugStringValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugStringValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugStringValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugStringValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue, IsValid) + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugStringValue * This, /* [out] */ BOOL *pbValid); - - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue, CreateRelocBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugStringValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetLength )( + + DECLSPEC_XFGVIRT(ICorDebugStringValue, GetLength) + HRESULT ( STDMETHODCALLTYPE *GetLength )( ICorDebugStringValue * This, /* [out] */ ULONG32 *pcchString); - - HRESULT ( STDMETHODCALLTYPE *GetString )( + + DECLSPEC_XFGVIRT(ICorDebugStringValue, GetString) + HRESULT ( STDMETHODCALLTYPE *GetString )( ICorDebugStringValue * This, /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]); - + END_INTERFACE } ICorDebugStringValueVtbl; @@ -15621,193 +16571,210 @@ EXTERN_C const IID IID_ICorDebugStringValue; CONST_VTBL struct ICorDebugStringValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStringValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStringValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStringValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStringValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStringValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStringValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStringValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugStringValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugStringValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugStringValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugStringValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugStringValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugStringValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugStringValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugStringValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) +#define ICorDebugStringValue_IsValid(This,pbValid) \ + ( (This)->lpVtbl -> IsValid(This,pbValid) ) -#define ICorDebugStringValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) +#define ICorDebugStringValue_CreateRelocBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) -#define ICorDebugStringValue_GetLength(This,pcchString) \ - ( (This)->lpVtbl -> GetLength(This,pcchString) ) +#define ICorDebugStringValue_GetLength(This,pcchString) \ + ( (This)->lpVtbl -> GetLength(This,pcchString) ) -#define ICorDebugStringValue_GetString(This,cchString,pcchString,szString) \ - ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) +#define ICorDebugStringValue_GetString(This,cchString,pcchString,szString) \ + ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStringValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStringValue_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0106 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0107 */ +/* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0106_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0106_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0107_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0107_v0_0_s_ifspec; #ifndef __ICorDebugArrayValue_INTERFACE_DEFINED__ #define __ICorDebugArrayValue_INTERFACE_DEFINED__ /* interface ICorDebugArrayValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugArrayValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("0405B0DF-A660-11d2-BD02-0000F80849BD") ICorDebugArrayValue : public ICorDebugHeapValue { public: - virtual HRESULT STDMETHODCALLTYPE GetElementType( + virtual HRESULT STDMETHODCALLTYPE GetElementType( /* [out] */ CorElementType *pType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRank( + + virtual HRESULT STDMETHODCALLTYPE GetRank( /* [out] */ ULONG32 *pnRank) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCount( + + virtual HRESULT STDMETHODCALLTYPE GetCount( /* [out] */ ULONG32 *pnCount) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDimensions( + + virtual HRESULT STDMETHODCALLTYPE GetDimensions( /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 dims[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE HasBaseIndicies( + + virtual HRESULT STDMETHODCALLTYPE HasBaseIndicies( /* [out] */ BOOL *pbHasBaseIndicies) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBaseIndicies( + + virtual HRESULT STDMETHODCALLTYPE GetBaseIndicies( /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 indices[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetElement( + + virtual HRESULT STDMETHODCALLTYPE GetElement( /* [in] */ ULONG32 cdim, /* [length_is][size_is][in] */ ULONG32 indices[ ], /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetElementAtPosition( + + virtual HRESULT STDMETHODCALLTYPE GetElementAtPosition( /* [in] */ ULONG32 nPosition, /* [out] */ ICorDebugValue **ppValue) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugArrayValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugArrayValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugArrayValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugArrayValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugArrayValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugArrayValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugArrayValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugArrayValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsValid )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue, IsValid) + HRESULT ( STDMETHODCALLTYPE *IsValid )( ICorDebugArrayValue * This, /* [out] */ BOOL *pbValid); - - HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugHeapValue, CreateRelocBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateRelocBreakpoint )( ICorDebugArrayValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetElementType )( + + DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetElementType) + HRESULT ( STDMETHODCALLTYPE *GetElementType )( ICorDebugArrayValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetRank )( + + DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetRank) + HRESULT ( STDMETHODCALLTYPE *GetRank )( ICorDebugArrayValue * This, /* [out] */ ULONG32 *pnRank); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugArrayValue * This, /* [out] */ ULONG32 *pnCount); - - HRESULT ( STDMETHODCALLTYPE *GetDimensions )( + + DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetDimensions) + HRESULT ( STDMETHODCALLTYPE *GetDimensions )( ICorDebugArrayValue * This, /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 dims[ ]); - - HRESULT ( STDMETHODCALLTYPE *HasBaseIndicies )( + + DECLSPEC_XFGVIRT(ICorDebugArrayValue, HasBaseIndicies) + HRESULT ( STDMETHODCALLTYPE *HasBaseIndicies )( ICorDebugArrayValue * This, /* [out] */ BOOL *pbHasBaseIndicies); - - HRESULT ( STDMETHODCALLTYPE *GetBaseIndicies )( + + DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetBaseIndicies) + HRESULT ( STDMETHODCALLTYPE *GetBaseIndicies )( ICorDebugArrayValue * This, /* [in] */ ULONG32 cdim, /* [length_is][size_is][out] */ ULONG32 indices[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetElement )( + + DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetElement) + HRESULT ( STDMETHODCALLTYPE *GetElement )( ICorDebugArrayValue * This, /* [in] */ ULONG32 cdim, /* [length_is][size_is][in] */ ULONG32 indices[ ], /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetElementAtPosition )( + + DECLSPEC_XFGVIRT(ICorDebugArrayValue, GetElementAtPosition) + HRESULT ( STDMETHODCALLTYPE *GetElementAtPosition )( ICorDebugArrayValue * This, /* [in] */ ULONG32 nPosition, /* [out] */ ICorDebugValue **ppValue); - + END_INTERFACE } ICorDebugArrayValueVtbl; @@ -15816,171 +16783,181 @@ EXTERN_C const IID IID_ICorDebugArrayValue; CONST_VTBL struct ICorDebugArrayValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugArrayValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugArrayValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugArrayValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugArrayValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugArrayValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugArrayValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugArrayValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugArrayValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugArrayValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugArrayValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugArrayValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugArrayValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugArrayValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugArrayValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugArrayValue_IsValid(This,pbValid) \ - ( (This)->lpVtbl -> IsValid(This,pbValid) ) +#define ICorDebugArrayValue_IsValid(This,pbValid) \ + ( (This)->lpVtbl -> IsValid(This,pbValid) ) -#define ICorDebugArrayValue_CreateRelocBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) +#define ICorDebugArrayValue_CreateRelocBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateRelocBreakpoint(This,ppBreakpoint) ) -#define ICorDebugArrayValue_GetElementType(This,pType) \ - ( (This)->lpVtbl -> GetElementType(This,pType) ) +#define ICorDebugArrayValue_GetElementType(This,pType) \ + ( (This)->lpVtbl -> GetElementType(This,pType) ) -#define ICorDebugArrayValue_GetRank(This,pnRank) \ - ( (This)->lpVtbl -> GetRank(This,pnRank) ) +#define ICorDebugArrayValue_GetRank(This,pnRank) \ + ( (This)->lpVtbl -> GetRank(This,pnRank) ) -#define ICorDebugArrayValue_GetCount(This,pnCount) \ - ( (This)->lpVtbl -> GetCount(This,pnCount) ) +#define ICorDebugArrayValue_GetCount(This,pnCount) \ + ( (This)->lpVtbl -> GetCount(This,pnCount) ) -#define ICorDebugArrayValue_GetDimensions(This,cdim,dims) \ - ( (This)->lpVtbl -> GetDimensions(This,cdim,dims) ) +#define ICorDebugArrayValue_GetDimensions(This,cdim,dims) \ + ( (This)->lpVtbl -> GetDimensions(This,cdim,dims) ) -#define ICorDebugArrayValue_HasBaseIndicies(This,pbHasBaseIndicies) \ - ( (This)->lpVtbl -> HasBaseIndicies(This,pbHasBaseIndicies) ) +#define ICorDebugArrayValue_HasBaseIndicies(This,pbHasBaseIndicies) \ + ( (This)->lpVtbl -> HasBaseIndicies(This,pbHasBaseIndicies) ) -#define ICorDebugArrayValue_GetBaseIndicies(This,cdim,indices) \ - ( (This)->lpVtbl -> GetBaseIndicies(This,cdim,indices) ) +#define ICorDebugArrayValue_GetBaseIndicies(This,cdim,indices) \ + ( (This)->lpVtbl -> GetBaseIndicies(This,cdim,indices) ) -#define ICorDebugArrayValue_GetElement(This,cdim,indices,ppValue) \ - ( (This)->lpVtbl -> GetElement(This,cdim,indices,ppValue) ) +#define ICorDebugArrayValue_GetElement(This,cdim,indices,ppValue) \ + ( (This)->lpVtbl -> GetElement(This,cdim,indices,ppValue) ) -#define ICorDebugArrayValue_GetElementAtPosition(This,nPosition,ppValue) \ - ( (This)->lpVtbl -> GetElementAtPosition(This,nPosition,ppValue) ) +#define ICorDebugArrayValue_GetElementAtPosition(This,nPosition,ppValue) \ + ( (This)->lpVtbl -> GetElementAtPosition(This,nPosition,ppValue) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugArrayValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugArrayValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugVariableHome_INTERFACE_DEFINED__ #define __ICorDebugVariableHome_INTERFACE_DEFINED__ /* interface ICorDebugVariableHome */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum VariableLocationType { - VLT_REGISTER = 0, - VLT_REGISTER_RELATIVE = ( VLT_REGISTER + 1 ) , - VLT_INVALID = ( VLT_REGISTER_RELATIVE + 1 ) - } VariableLocationType; + VLT_REGISTER = 0, + VLT_REGISTER_RELATIVE = ( VLT_REGISTER + 1 ) , + VLT_INVALID = ( VLT_REGISTER_RELATIVE + 1 ) + } VariableLocationType; EXTERN_C const IID IID_ICorDebugVariableHome; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("50847b8d-f43f-41b0-924c-6383a5f2278b") ICorDebugVariableHome : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCode( + virtual HRESULT STDMETHODCALLTYPE GetCode( /* [out] */ ICorDebugCode **ppCode) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( + + virtual HRESULT STDMETHODCALLTYPE GetSlotIndex( /* [out] */ ULONG32 *pSlotIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetArgumentIndex( + + virtual HRESULT STDMETHODCALLTYPE GetArgumentIndex( /* [out] */ ULONG32 *pArgumentIndex) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLiveRange( + + virtual HRESULT STDMETHODCALLTYPE GetLiveRange( /* [out] */ ULONG32 *pStartOffset, /* [out] */ ULONG32 *pEndOffset) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetLocationType( + + virtual HRESULT STDMETHODCALLTYPE GetLocationType( /* [out] */ VariableLocationType *pLocationType) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRegister( + + virtual HRESULT STDMETHODCALLTYPE GetRegister( /* [out] */ CorDebugRegister *pRegister) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOffset( + + virtual HRESULT STDMETHODCALLTYPE GetOffset( /* [out] */ LONG *pOffset) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVariableHomeVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVariableHome * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVariableHome * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVariableHome * This); - - HRESULT ( STDMETHODCALLTYPE *GetCode )( + + DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetCode) + HRESULT ( STDMETHODCALLTYPE *GetCode )( ICorDebugVariableHome * This, /* [out] */ ICorDebugCode **ppCode); - - HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( + + DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetSlotIndex) + HRESULT ( STDMETHODCALLTYPE *GetSlotIndex )( ICorDebugVariableHome * This, /* [out] */ ULONG32 *pSlotIndex); - - HRESULT ( STDMETHODCALLTYPE *GetArgumentIndex )( + + DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetArgumentIndex) + HRESULT ( STDMETHODCALLTYPE *GetArgumentIndex )( ICorDebugVariableHome * This, /* [out] */ ULONG32 *pArgumentIndex); - - HRESULT ( STDMETHODCALLTYPE *GetLiveRange )( + + DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetLiveRange) + HRESULT ( STDMETHODCALLTYPE *GetLiveRange )( ICorDebugVariableHome * This, /* [out] */ ULONG32 *pStartOffset, /* [out] */ ULONG32 *pEndOffset); - - HRESULT ( STDMETHODCALLTYPE *GetLocationType )( + + DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetLocationType) + HRESULT ( STDMETHODCALLTYPE *GetLocationType )( ICorDebugVariableHome * This, /* [out] */ VariableLocationType *pLocationType); - - HRESULT ( STDMETHODCALLTYPE *GetRegister )( + + DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetRegister) + HRESULT ( STDMETHODCALLTYPE *GetRegister )( ICorDebugVariableHome * This, /* [out] */ CorDebugRegister *pRegister); - - HRESULT ( STDMETHODCALLTYPE *GetOffset )( + + DECLSPEC_XFGVIRT(ICorDebugVariableHome, GetOffset) + HRESULT ( STDMETHODCALLTYPE *GetOffset )( ICorDebugVariableHome * This, /* [out] */ LONG *pOffset); - + END_INTERFACE } ICorDebugVariableHomeVtbl; @@ -15989,137 +16966,151 @@ EXTERN_C const IID IID_ICorDebugVariableHome; CONST_VTBL struct ICorDebugVariableHomeVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugVariableHome_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugVariableHome_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugVariableHome_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugVariableHome_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugVariableHome_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugVariableHome_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugVariableHome_GetCode(This,ppCode) \ - ( (This)->lpVtbl -> GetCode(This,ppCode) ) +#define ICorDebugVariableHome_GetCode(This,ppCode) \ + ( (This)->lpVtbl -> GetCode(This,ppCode) ) -#define ICorDebugVariableHome_GetSlotIndex(This,pSlotIndex) \ - ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) +#define ICorDebugVariableHome_GetSlotIndex(This,pSlotIndex) \ + ( (This)->lpVtbl -> GetSlotIndex(This,pSlotIndex) ) -#define ICorDebugVariableHome_GetArgumentIndex(This,pArgumentIndex) \ - ( (This)->lpVtbl -> GetArgumentIndex(This,pArgumentIndex) ) +#define ICorDebugVariableHome_GetArgumentIndex(This,pArgumentIndex) \ + ( (This)->lpVtbl -> GetArgumentIndex(This,pArgumentIndex) ) -#define ICorDebugVariableHome_GetLiveRange(This,pStartOffset,pEndOffset) \ - ( (This)->lpVtbl -> GetLiveRange(This,pStartOffset,pEndOffset) ) +#define ICorDebugVariableHome_GetLiveRange(This,pStartOffset,pEndOffset) \ + ( (This)->lpVtbl -> GetLiveRange(This,pStartOffset,pEndOffset) ) -#define ICorDebugVariableHome_GetLocationType(This,pLocationType) \ - ( (This)->lpVtbl -> GetLocationType(This,pLocationType) ) +#define ICorDebugVariableHome_GetLocationType(This,pLocationType) \ + ( (This)->lpVtbl -> GetLocationType(This,pLocationType) ) -#define ICorDebugVariableHome_GetRegister(This,pRegister) \ - ( (This)->lpVtbl -> GetRegister(This,pRegister) ) +#define ICorDebugVariableHome_GetRegister(This,pRegister) \ + ( (This)->lpVtbl -> GetRegister(This,pRegister) ) -#define ICorDebugVariableHome_GetOffset(This,pOffset) \ - ( (This)->lpVtbl -> GetOffset(This,pOffset) ) +#define ICorDebugVariableHome_GetOffset(This,pOffset) \ + ( (This)->lpVtbl -> GetOffset(This,pOffset) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugVariableHome_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugVariableHome_INTERFACE_DEFINED__ */ #ifndef __ICorDebugHandleValue_INTERFACE_DEFINED__ #define __ICorDebugHandleValue_INTERFACE_DEFINED__ /* interface ICorDebugHandleValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugHandleValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("029596E8-276B-46a1-9821-732E96BBB00B") ICorDebugHandleValue : public ICorDebugReferenceValue { public: - virtual HRESULT STDMETHODCALLTYPE GetHandleType( + virtual HRESULT STDMETHODCALLTYPE GetHandleType( /* [out] */ CorDebugHandleType *pType) = 0; - + virtual HRESULT STDMETHODCALLTYPE Dispose( void) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugHandleValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugHandleValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugHandleValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugHandleValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugHandleValue * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugHandleValue * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugHandleValue * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugHandleValue * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *IsNull )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, IsNull) + HRESULT ( STDMETHODCALLTYPE *IsNull )( ICorDebugHandleValue * This, /* [out] */ BOOL *pbNull); - - HRESULT ( STDMETHODCALLTYPE *GetValue )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, GetValue) + HRESULT ( STDMETHODCALLTYPE *GetValue )( ICorDebugHandleValue * This, /* [out] */ CORDB_ADDRESS *pValue); - - HRESULT ( STDMETHODCALLTYPE *SetValue )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, SetValue) + HRESULT ( STDMETHODCALLTYPE *SetValue )( ICorDebugHandleValue * This, /* [in] */ CORDB_ADDRESS value); - - HRESULT ( STDMETHODCALLTYPE *Dereference )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, Dereference) + HRESULT ( STDMETHODCALLTYPE *Dereference )( ICorDebugHandleValue * This, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( + + DECLSPEC_XFGVIRT(ICorDebugReferenceValue, DereferenceStrong) + HRESULT ( STDMETHODCALLTYPE *DereferenceStrong )( ICorDebugHandleValue * This, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetHandleType )( + + DECLSPEC_XFGVIRT(ICorDebugHandleValue, GetHandleType) + HRESULT ( STDMETHODCALLTYPE *GetHandleType )( ICorDebugHandleValue * This, /* [out] */ CorDebugHandleType *pType); - - HRESULT ( STDMETHODCALLTYPE *Dispose )( + + DECLSPEC_XFGVIRT(ICorDebugHandleValue, Dispose) + HRESULT ( STDMETHODCALLTYPE *Dispose )( ICorDebugHandleValue * This); - + END_INTERFACE } ICorDebugHandleValueVtbl; @@ -16128,150 +17119,164 @@ EXTERN_C const IID IID_ICorDebugHandleValue; CONST_VTBL struct ICorDebugHandleValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugHandleValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugHandleValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugHandleValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugHandleValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugHandleValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugHandleValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugHandleValue_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugHandleValue_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugHandleValue_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugHandleValue_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugHandleValue_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugHandleValue_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugHandleValue_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugHandleValue_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugHandleValue_IsNull(This,pbNull) \ - ( (This)->lpVtbl -> IsNull(This,pbNull) ) +#define ICorDebugHandleValue_IsNull(This,pbNull) \ + ( (This)->lpVtbl -> IsNull(This,pbNull) ) -#define ICorDebugHandleValue_GetValue(This,pValue) \ - ( (This)->lpVtbl -> GetValue(This,pValue) ) +#define ICorDebugHandleValue_GetValue(This,pValue) \ + ( (This)->lpVtbl -> GetValue(This,pValue) ) -#define ICorDebugHandleValue_SetValue(This,value) \ - ( (This)->lpVtbl -> SetValue(This,value) ) +#define ICorDebugHandleValue_SetValue(This,value) \ + ( (This)->lpVtbl -> SetValue(This,value) ) -#define ICorDebugHandleValue_Dereference(This,ppValue) \ - ( (This)->lpVtbl -> Dereference(This,ppValue) ) +#define ICorDebugHandleValue_Dereference(This,ppValue) \ + ( (This)->lpVtbl -> Dereference(This,ppValue) ) -#define ICorDebugHandleValue_DereferenceStrong(This,ppValue) \ - ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) +#define ICorDebugHandleValue_DereferenceStrong(This,ppValue) \ + ( (This)->lpVtbl -> DereferenceStrong(This,ppValue) ) -#define ICorDebugHandleValue_GetHandleType(This,pType) \ - ( (This)->lpVtbl -> GetHandleType(This,pType) ) +#define ICorDebugHandleValue_GetHandleType(This,pType) \ + ( (This)->lpVtbl -> GetHandleType(This,pType) ) -#define ICorDebugHandleValue_Dispose(This) \ - ( (This)->lpVtbl -> Dispose(This) ) +#define ICorDebugHandleValue_Dispose(This) \ + ( (This)->lpVtbl -> Dispose(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugHandleValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugHandleValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugContext_INTERFACE_DEFINED__ #define __ICorDebugContext_INTERFACE_DEFINED__ /* interface ICorDebugContext */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugContext; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB00-8A68-11d2-983C-0000F808342D") ICorDebugContext : public ICorDebugObjectValue { public: }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugContextVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugContext * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugContext * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugContext * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugContext * This, /* [out] */ CorElementType *pType); - - HRESULT ( STDMETHODCALLTYPE *GetSize )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetSize) + HRESULT ( STDMETHODCALLTYPE *GetSize )( ICorDebugContext * This, /* [out] */ ULONG32 *pSize); - - HRESULT ( STDMETHODCALLTYPE *GetAddress )( + + DECLSPEC_XFGVIRT(ICorDebugValue, GetAddress) + HRESULT ( STDMETHODCALLTYPE *GetAddress )( ICorDebugContext * This, /* [out] */ CORDB_ADDRESS *pAddress); - - HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( + + DECLSPEC_XFGVIRT(ICorDebugValue, CreateBreakpoint) + HRESULT ( STDMETHODCALLTYPE *CreateBreakpoint )( ICorDebugContext * This, /* [out] */ ICorDebugValueBreakpoint **ppBreakpoint); - - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetClass) + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugContext * This, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetFieldValue) + HRESULT ( STDMETHODCALLTYPE *GetFieldValue )( ICorDebugContext * This, /* [in] */ ICorDebugClass *pClass, /* [in] */ mdFieldDef fieldDef, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetVirtualMethod) + HRESULT ( STDMETHODCALLTYPE *GetVirtualMethod )( ICorDebugContext * This, /* [in] */ mdMemberRef memberRef, /* [out] */ ICorDebugFunction **ppFunction); - - HRESULT ( STDMETHODCALLTYPE *GetContext )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetContext) + HRESULT ( STDMETHODCALLTYPE *GetContext )( ICorDebugContext * This, /* [out] */ ICorDebugContext **ppContext); - - HRESULT ( STDMETHODCALLTYPE *IsValueClass )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, IsValueClass) + HRESULT ( STDMETHODCALLTYPE *IsValueClass )( ICorDebugContext * This, /* [out] */ BOOL *pbIsValueClass); - - HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, GetManagedCopy) + HRESULT ( STDMETHODCALLTYPE *GetManagedCopy )( ICorDebugContext * This, /* [out] */ IUnknown **ppObject); - - HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( + + DECLSPEC_XFGVIRT(ICorDebugObjectValue, SetFromManagedCopy) + HRESULT ( STDMETHODCALLTYPE *SetFromManagedCopy )( ICorDebugContext * This, /* [in] */ IUnknown *pObject); - + END_INTERFACE } ICorDebugContextVtbl; @@ -16280,125 +17285,130 @@ EXTERN_C const IID IID_ICorDebugContext; CONST_VTBL struct ICorDebugContextVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugContext_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugContext_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugContext_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugContext_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugContext_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugContext_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugContext_GetType(This,pType) \ - ( (This)->lpVtbl -> GetType(This,pType) ) +#define ICorDebugContext_GetType(This,pType) \ + ( (This)->lpVtbl -> GetType(This,pType) ) -#define ICorDebugContext_GetSize(This,pSize) \ - ( (This)->lpVtbl -> GetSize(This,pSize) ) +#define ICorDebugContext_GetSize(This,pSize) \ + ( (This)->lpVtbl -> GetSize(This,pSize) ) -#define ICorDebugContext_GetAddress(This,pAddress) \ - ( (This)->lpVtbl -> GetAddress(This,pAddress) ) +#define ICorDebugContext_GetAddress(This,pAddress) \ + ( (This)->lpVtbl -> GetAddress(This,pAddress) ) -#define ICorDebugContext_CreateBreakpoint(This,ppBreakpoint) \ - ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) +#define ICorDebugContext_CreateBreakpoint(This,ppBreakpoint) \ + ( (This)->lpVtbl -> CreateBreakpoint(This,ppBreakpoint) ) -#define ICorDebugContext_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) +#define ICorDebugContext_GetClass(This,ppClass) \ + ( (This)->lpVtbl -> GetClass(This,ppClass) ) -#define ICorDebugContext_GetFieldValue(This,pClass,fieldDef,ppValue) \ - ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) +#define ICorDebugContext_GetFieldValue(This,pClass,fieldDef,ppValue) \ + ( (This)->lpVtbl -> GetFieldValue(This,pClass,fieldDef,ppValue) ) -#define ICorDebugContext_GetVirtualMethod(This,memberRef,ppFunction) \ - ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) +#define ICorDebugContext_GetVirtualMethod(This,memberRef,ppFunction) \ + ( (This)->lpVtbl -> GetVirtualMethod(This,memberRef,ppFunction) ) -#define ICorDebugContext_GetContext(This,ppContext) \ - ( (This)->lpVtbl -> GetContext(This,ppContext) ) +#define ICorDebugContext_GetContext(This,ppContext) \ + ( (This)->lpVtbl -> GetContext(This,ppContext) ) -#define ICorDebugContext_IsValueClass(This,pbIsValueClass) \ - ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) +#define ICorDebugContext_IsValueClass(This,pbIsValueClass) \ + ( (This)->lpVtbl -> IsValueClass(This,pbIsValueClass) ) -#define ICorDebugContext_GetManagedCopy(This,ppObject) \ - ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) +#define ICorDebugContext_GetManagedCopy(This,ppObject) \ + ( (This)->lpVtbl -> GetManagedCopy(This,ppObject) ) -#define ICorDebugContext_SetFromManagedCopy(This,pObject) \ - ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) +#define ICorDebugContext_SetFromManagedCopy(This,pObject) \ + ( (This)->lpVtbl -> SetFromManagedCopy(This,pObject) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugContext_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugContext_INTERFACE_DEFINED__ */ #ifndef __ICorDebugComObjectValue_INTERFACE_DEFINED__ #define __ICorDebugComObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugComObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugComObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("5F69C5E5-3E12-42DF-B371-F9D761D6EE24") ICorDebugComObjectValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetCachedInterfaceTypes( + virtual HRESULT STDMETHODCALLTYPE GetCachedInterfaceTypes( /* [in] */ BOOL bIInspectableOnly, /* [out] */ ICorDebugTypeEnum **ppInterfacesEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetCachedInterfacePointers( + + virtual HRESULT STDMETHODCALLTYPE GetCachedInterfacePointers( /* [in] */ BOOL bIInspectableOnly, /* [in] */ ULONG32 celt, /* [out] */ ULONG32 *pcEltFetched, /* [length_is][size_is][out] */ CORDB_ADDRESS *ptrs) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugComObjectValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugComObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugComObjectValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugComObjectValue * This); - - HRESULT ( STDMETHODCALLTYPE *GetCachedInterfaceTypes )( + + DECLSPEC_XFGVIRT(ICorDebugComObjectValue, GetCachedInterfaceTypes) + HRESULT ( STDMETHODCALLTYPE *GetCachedInterfaceTypes )( ICorDebugComObjectValue * This, /* [in] */ BOOL bIInspectableOnly, /* [out] */ ICorDebugTypeEnum **ppInterfacesEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCachedInterfacePointers )( + + DECLSPEC_XFGVIRT(ICorDebugComObjectValue, GetCachedInterfacePointers) + HRESULT ( STDMETHODCALLTYPE *GetCachedInterfacePointers )( ICorDebugComObjectValue * This, /* [in] */ BOOL bIInspectableOnly, /* [in] */ ULONG32 celt, /* [out] */ ULONG32 *pcEltFetched, /* [length_is][size_is][out] */ CORDB_ADDRESS *ptrs); - + END_INTERFACE } ICorDebugComObjectValueVtbl; @@ -16407,100 +17417,108 @@ EXTERN_C const IID IID_ICorDebugComObjectValue; CONST_VTBL struct ICorDebugComObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugComObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugComObjectValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugComObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugComObjectValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugComObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugComObjectValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugComObjectValue_GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) \ - ( (This)->lpVtbl -> GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) ) +#define ICorDebugComObjectValue_GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) \ + ( (This)->lpVtbl -> GetCachedInterfaceTypes(This,bIInspectableOnly,ppInterfacesEnum) ) -#define ICorDebugComObjectValue_GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) \ - ( (This)->lpVtbl -> GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) ) +#define ICorDebugComObjectValue_GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) \ + ( (This)->lpVtbl -> GetCachedInterfacePointers(This,bIInspectableOnly,celt,pcEltFetched,ptrs) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugComObjectValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugComObjectValue_INTERFACE_DEFINED__ */ #ifndef __ICorDebugObjectEnum_INTERFACE_DEFINED__ #define __ICorDebugObjectEnum_INTERFACE_DEFINED__ /* interface ICorDebugObjectEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugObjectEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB02-8A68-11d2-983C-0000F808342D") ICorDebugObjectEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CORDB_ADDRESS objects[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugObjectEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugObjectEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugObjectEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugObjectEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugObjectEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugObjectEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugObjectEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugObjectEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugObjectEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugObjectEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CORDB_ADDRESS objects[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugObjectEnumVtbl; @@ -16509,110 +17527,118 @@ EXTERN_C const IID IID_ICorDebugObjectEnum; CONST_VTBL struct ICorDebugObjectEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugObjectEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugObjectEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugObjectEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugObjectEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugObjectEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugObjectEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugObjectEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugObjectEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugObjectEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugObjectEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugObjectEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugObjectEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugObjectEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugObjectEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugObjectEnum_Next(This,celt,objects,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) +#define ICorDebugObjectEnum_Next(This,celt,objects,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugObjectEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugObjectEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugBreakpointEnum_INTERFACE_DEFINED__ #define __ICorDebugBreakpointEnum_INTERFACE_DEFINED__ /* interface ICorDebugBreakpointEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBreakpointEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB03-8A68-11d2-983C-0000F808342D") ICorDebugBreakpointEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugBreakpoint *breakpoints[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugBreakpointEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBreakpointEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBreakpointEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBreakpointEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugBreakpointEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugBreakpointEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugBreakpointEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugBreakpointEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugBreakpointEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugBreakpointEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugBreakpoint *breakpoints[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugBreakpointEnumVtbl; @@ -16621,110 +17647,118 @@ EXTERN_C const IID IID_ICorDebugBreakpointEnum; CONST_VTBL struct ICorDebugBreakpointEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugBreakpointEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugBreakpointEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugBreakpointEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugBreakpointEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugBreakpointEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugBreakpointEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugBreakpointEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugBreakpointEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugBreakpointEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugBreakpointEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugBreakpointEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugBreakpointEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugBreakpointEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugBreakpointEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugBreakpointEnum_Next(This,celt,breakpoints,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,breakpoints,pceltFetched) ) +#define ICorDebugBreakpointEnum_Next(This,celt,breakpoints,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,breakpoints,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugBreakpointEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugBreakpointEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugStepperEnum_INTERFACE_DEFINED__ #define __ICorDebugStepperEnum_INTERFACE_DEFINED__ /* interface ICorDebugStepperEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugStepperEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB04-8A68-11d2-983C-0000F808342D") ICorDebugStepperEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugStepper *steppers[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugStepperEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugStepperEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugStepperEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugStepperEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugStepperEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugStepperEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugStepperEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugStepperEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugStepperEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugStepperEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugStepper *steppers[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugStepperEnumVtbl; @@ -16733,110 +17767,118 @@ EXTERN_C const IID IID_ICorDebugStepperEnum; CONST_VTBL struct ICorDebugStepperEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugStepperEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugStepperEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugStepperEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugStepperEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugStepperEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugStepperEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugStepperEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugStepperEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugStepperEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugStepperEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugStepperEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugStepperEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugStepperEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugStepperEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugStepperEnum_Next(This,celt,steppers,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,steppers,pceltFetched) ) +#define ICorDebugStepperEnum_Next(This,celt,steppers,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,steppers,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugStepperEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugStepperEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugProcessEnum_INTERFACE_DEFINED__ #define __ICorDebugProcessEnum_INTERFACE_DEFINED__ /* interface ICorDebugProcessEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugProcessEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB05-8A68-11d2-983C-0000F808342D") ICorDebugProcessEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugProcess *processes[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugProcessEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugProcessEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugProcessEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugProcessEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugProcessEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugProcessEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugProcessEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugProcessEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugProcessEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugProcessEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugProcess *processes[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugProcessEnumVtbl; @@ -16845,110 +17887,118 @@ EXTERN_C const IID IID_ICorDebugProcessEnum; CONST_VTBL struct ICorDebugProcessEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugProcessEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugProcessEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugProcessEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugProcessEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugProcessEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugProcessEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugProcessEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugProcessEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugProcessEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugProcessEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugProcessEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugProcessEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugProcessEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugProcessEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugProcessEnum_Next(This,celt,processes,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,processes,pceltFetched) ) +#define ICorDebugProcessEnum_Next(This,celt,processes,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,processes,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugProcessEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugProcessEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugThreadEnum_INTERFACE_DEFINED__ #define __ICorDebugThreadEnum_INTERFACE_DEFINED__ /* interface ICorDebugThreadEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugThreadEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB06-8A68-11d2-983C-0000F808342D") ICorDebugThreadEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugThread *threads[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugThreadEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugThreadEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugThreadEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugThreadEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugThreadEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugThreadEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugThreadEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugThreadEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugThreadEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugThreadEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugThread *threads[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugThreadEnumVtbl; @@ -16957,110 +18007,118 @@ EXTERN_C const IID IID_ICorDebugThreadEnum; CONST_VTBL struct ICorDebugThreadEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugThreadEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugThreadEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugThreadEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugThreadEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugThreadEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugThreadEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugThreadEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugThreadEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugThreadEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugThreadEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugThreadEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugThreadEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugThreadEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugThreadEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugThreadEnum_Next(This,celt,threads,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,threads,pceltFetched) ) +#define ICorDebugThreadEnum_Next(This,celt,threads,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,threads,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugThreadEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugThreadEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugFrameEnum_INTERFACE_DEFINED__ #define __ICorDebugFrameEnum_INTERFACE_DEFINED__ /* interface ICorDebugFrameEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugFrameEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB07-8A68-11d2-983C-0000F808342D") ICorDebugFrameEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugFrame *frames[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugFrameEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugFrameEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugFrameEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugFrameEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugFrameEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugFrameEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugFrameEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugFrameEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugFrameEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugFrameEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugFrame *frames[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugFrameEnumVtbl; @@ -17069,110 +18127,118 @@ EXTERN_C const IID IID_ICorDebugFrameEnum; CONST_VTBL struct ICorDebugFrameEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugFrameEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugFrameEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugFrameEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugFrameEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugFrameEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugFrameEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugFrameEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugFrameEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugFrameEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugFrameEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugFrameEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugFrameEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugFrameEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugFrameEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugFrameEnum_Next(This,celt,frames,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,frames,pceltFetched) ) +#define ICorDebugFrameEnum_Next(This,celt,frames,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,frames,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugFrameEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugFrameEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugChainEnum_INTERFACE_DEFINED__ #define __ICorDebugChainEnum_INTERFACE_DEFINED__ /* interface ICorDebugChainEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugChainEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB08-8A68-11d2-983C-0000F808342D") ICorDebugChainEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugChain *chains[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugChainEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugChainEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugChainEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugChainEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugChainEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugChainEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugChainEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugChainEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugChainEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugChainEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugChain *chains[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugChainEnumVtbl; @@ -17181,110 +18247,118 @@ EXTERN_C const IID IID_ICorDebugChainEnum; CONST_VTBL struct ICorDebugChainEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugChainEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugChainEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugChainEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugChainEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugChainEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugChainEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugChainEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugChainEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugChainEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugChainEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugChainEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugChainEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugChainEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugChainEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugChainEnum_Next(This,celt,chains,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,chains,pceltFetched) ) +#define ICorDebugChainEnum_Next(This,celt,chains,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,chains,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugChainEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugChainEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugModuleEnum_INTERFACE_DEFINED__ #define __ICorDebugModuleEnum_INTERFACE_DEFINED__ /* interface ICorDebugModuleEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugModuleEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB09-8A68-11d2-983C-0000F808342D") ICorDebugModuleEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugModule *modules[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugModuleEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugModuleEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugModuleEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugModuleEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugModuleEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugModuleEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugModuleEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugModuleEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugModuleEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugModuleEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugModule *modules[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugModuleEnumVtbl; @@ -17293,110 +18367,118 @@ EXTERN_C const IID IID_ICorDebugModuleEnum; CONST_VTBL struct ICorDebugModuleEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugModuleEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugModuleEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugModuleEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugModuleEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugModuleEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugModuleEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugModuleEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugModuleEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugModuleEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugModuleEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugModuleEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugModuleEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugModuleEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugModuleEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugModuleEnum_Next(This,celt,modules,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,modules,pceltFetched) ) +#define ICorDebugModuleEnum_Next(This,celt,modules,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,modules,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugModuleEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugModuleEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugValueEnum_INTERFACE_DEFINED__ #define __ICorDebugValueEnum_INTERFACE_DEFINED__ /* interface ICorDebugValueEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugValueEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC7BCB0A-8A68-11d2-983C-0000F808342D") ICorDebugValueEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugValue *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugValueEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugValueEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugValueEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugValueEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugValueEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugValueEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugValueEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugValueEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugValueEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugValueEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugValue *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugValueEnumVtbl; @@ -17405,110 +18487,118 @@ EXTERN_C const IID IID_ICorDebugValueEnum; CONST_VTBL struct ICorDebugValueEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugValueEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugValueEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugValueEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugValueEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugValueEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugValueEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugValueEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugValueEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugValueEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugValueEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugValueEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugValueEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugValueEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugValueEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugValueEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugValueEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugValueEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugValueEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugVariableHomeEnum_INTERFACE_DEFINED__ #define __ICorDebugVariableHomeEnum_INTERFACE_DEFINED__ /* interface ICorDebugVariableHomeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugVariableHomeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("e76b7a57-4f7a-4309-85a7-5d918c3deaf7") ICorDebugVariableHomeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugVariableHome *homes[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugVariableHomeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugVariableHomeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugVariableHomeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugVariableHomeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugVariableHomeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugVariableHomeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugVariableHomeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugVariableHomeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugVariableHomeEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugVariableHomeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugVariableHome *homes[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugVariableHomeEnumVtbl; @@ -17517,110 +18607,118 @@ EXTERN_C const IID IID_ICorDebugVariableHomeEnum; CONST_VTBL struct ICorDebugVariableHomeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugVariableHomeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugVariableHomeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugVariableHomeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugVariableHomeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugVariableHomeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugVariableHomeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugVariableHomeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugVariableHomeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugVariableHomeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugVariableHomeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugVariableHomeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugVariableHomeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugVariableHomeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugVariableHomeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugVariableHomeEnum_Next(This,celt,homes,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,homes,pceltFetched) ) +#define ICorDebugVariableHomeEnum_Next(This,celt,homes,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,homes,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugVariableHomeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugVariableHomeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugCodeEnum_INTERFACE_DEFINED__ #define __ICorDebugCodeEnum_INTERFACE_DEFINED__ /* interface ICorDebugCodeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugCodeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("55E96461-9645-45e4-A2FF-0367877ABCDE") ICorDebugCodeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugCode *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugCodeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugCodeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugCodeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugCodeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugCodeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugCodeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugCodeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugCodeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugCodeEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugCodeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugCode *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugCodeEnumVtbl; @@ -17629,110 +18727,118 @@ EXTERN_C const IID IID_ICorDebugCodeEnum; CONST_VTBL struct ICorDebugCodeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugCodeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugCodeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugCodeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugCodeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugCodeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugCodeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugCodeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugCodeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugCodeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugCodeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugCodeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugCodeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugCodeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugCodeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugCodeEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugCodeEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugCodeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugCodeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugTypeEnum_INTERFACE_DEFINED__ #define __ICorDebugTypeEnum_INTERFACE_DEFINED__ /* interface ICorDebugTypeEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugTypeEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("10F27499-9DF2-43ce-8333-A321D7C99CB4") ICorDebugTypeEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugType *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugTypeEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugTypeEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugTypeEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugTypeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugTypeEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugTypeEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugTypeEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugTypeEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugTypeEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugTypeEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugType *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugTypeEnumVtbl; @@ -17741,137 +18847,147 @@ EXTERN_C const IID IID_ICorDebugTypeEnum; CONST_VTBL struct ICorDebugTypeEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugTypeEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugTypeEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugTypeEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugTypeEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugTypeEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugTypeEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugTypeEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugTypeEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugTypeEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugTypeEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugTypeEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugTypeEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugTypeEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugTypeEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugTypeEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugTypeEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugTypeEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugTypeEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugType_INTERFACE_DEFINED__ #define __ICorDebugType_INTERFACE_DEFINED__ /* interface ICorDebugType */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugType; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("D613F0BB-ACE1-4c19-BD72-E4C08D5DA7F5") ICorDebugType : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetType( + virtual HRESULT STDMETHODCALLTYPE GetType( /* [out] */ CorElementType *ty) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetClass( + + virtual HRESULT STDMETHODCALLTYPE GetClass( /* [out] */ ICorDebugClass **ppClass) = 0; - - virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( + + virtual HRESULT STDMETHODCALLTYPE EnumerateTypeParameters( /* [out] */ ICorDebugTypeEnum **ppTyParEnum) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFirstTypeParameter( + + virtual HRESULT STDMETHODCALLTYPE GetFirstTypeParameter( /* [out] */ ICorDebugType **value) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetBase( + + virtual HRESULT STDMETHODCALLTYPE GetBase( /* [out] */ ICorDebugType **pBase) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( + + virtual HRESULT STDMETHODCALLTYPE GetStaticFieldValue( /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRank( + + virtual HRESULT STDMETHODCALLTYPE GetRank( /* [out] */ ULONG32 *pnRank) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugTypeVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugType * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugType * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugType * This); - - HRESULT ( STDMETHODCALLTYPE *GetType )( + + DECLSPEC_XFGVIRT(ICorDebugType, GetType) + HRESULT ( STDMETHODCALLTYPE *GetType )( ICorDebugType * This, /* [out] */ CorElementType *ty); - - HRESULT ( STDMETHODCALLTYPE *GetClass )( + + DECLSPEC_XFGVIRT(ICorDebugType, GetClass) + HRESULT ( STDMETHODCALLTYPE *GetClass )( ICorDebugType * This, /* [out] */ ICorDebugClass **ppClass); - - HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( + + DECLSPEC_XFGVIRT(ICorDebugType, EnumerateTypeParameters) + HRESULT ( STDMETHODCALLTYPE *EnumerateTypeParameters )( ICorDebugType * This, /* [out] */ ICorDebugTypeEnum **ppTyParEnum); - - HRESULT ( STDMETHODCALLTYPE *GetFirstTypeParameter )( + + DECLSPEC_XFGVIRT(ICorDebugType, GetFirstTypeParameter) + HRESULT ( STDMETHODCALLTYPE *GetFirstTypeParameter )( ICorDebugType * This, /* [out] */ ICorDebugType **value); - - HRESULT ( STDMETHODCALLTYPE *GetBase )( + + DECLSPEC_XFGVIRT(ICorDebugType, GetBase) + HRESULT ( STDMETHODCALLTYPE *GetBase )( ICorDebugType * This, /* [out] */ ICorDebugType **pBase); - - HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( + + DECLSPEC_XFGVIRT(ICorDebugType, GetStaticFieldValue) + HRESULT ( STDMETHODCALLTYPE *GetStaticFieldValue )( ICorDebugType * This, /* [in] */ mdFieldDef fieldDef, /* [in] */ ICorDebugFrame *pFrame, /* [out] */ ICorDebugValue **ppValue); - - HRESULT ( STDMETHODCALLTYPE *GetRank )( + + DECLSPEC_XFGVIRT(ICorDebugType, GetRank) + HRESULT ( STDMETHODCALLTYPE *GetRank )( ICorDebugType * This, /* [out] */ ULONG32 *pnRank); - + END_INTERFACE } ICorDebugTypeVtbl; @@ -17880,96 +18996,100 @@ EXTERN_C const IID IID_ICorDebugType; CONST_VTBL struct ICorDebugTypeVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugType_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugType_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugType_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugType_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugType_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugType_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugType_GetType(This,ty) \ - ( (This)->lpVtbl -> GetType(This,ty) ) +#define ICorDebugType_GetType(This,ty) \ + ( (This)->lpVtbl -> GetType(This,ty) ) -#define ICorDebugType_GetClass(This,ppClass) \ - ( (This)->lpVtbl -> GetClass(This,ppClass) ) +#define ICorDebugType_GetClass(This,ppClass) \ + ( (This)->lpVtbl -> GetClass(This,ppClass) ) -#define ICorDebugType_EnumerateTypeParameters(This,ppTyParEnum) \ - ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) +#define ICorDebugType_EnumerateTypeParameters(This,ppTyParEnum) \ + ( (This)->lpVtbl -> EnumerateTypeParameters(This,ppTyParEnum) ) -#define ICorDebugType_GetFirstTypeParameter(This,value) \ - ( (This)->lpVtbl -> GetFirstTypeParameter(This,value) ) +#define ICorDebugType_GetFirstTypeParameter(This,value) \ + ( (This)->lpVtbl -> GetFirstTypeParameter(This,value) ) -#define ICorDebugType_GetBase(This,pBase) \ - ( (This)->lpVtbl -> GetBase(This,pBase) ) +#define ICorDebugType_GetBase(This,pBase) \ + ( (This)->lpVtbl -> GetBase(This,pBase) ) -#define ICorDebugType_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ - ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) +#define ICorDebugType_GetStaticFieldValue(This,fieldDef,pFrame,ppValue) \ + ( (This)->lpVtbl -> GetStaticFieldValue(This,fieldDef,pFrame,ppValue) ) -#define ICorDebugType_GetRank(This,pnRank) \ - ( (This)->lpVtbl -> GetRank(This,pnRank) ) +#define ICorDebugType_GetRank(This,pnRank) \ + ( (This)->lpVtbl -> GetRank(This,pnRank) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugType_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugType_INTERFACE_DEFINED__ */ #ifndef __ICorDebugType2_INTERFACE_DEFINED__ #define __ICorDebugType2_INTERFACE_DEFINED__ /* interface ICorDebugType2 */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugType2; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("e6e91d79-693d-48bc-b417-8284b4f10fb5") ICorDebugType2 : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetTypeID( + virtual HRESULT STDMETHODCALLTYPE GetTypeID( /* [out] */ COR_TYPEID *id) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugType2Vtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugType2 * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugType2 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugType2 * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeID )( + + DECLSPEC_XFGVIRT(ICorDebugType2, GetTypeID) + HRESULT ( STDMETHODCALLTYPE *GetTypeID )( ICorDebugType2 * This, /* [out] */ COR_TYPEID *id); - + END_INTERFACE } ICorDebugType2Vtbl; @@ -17978,97 +19098,105 @@ EXTERN_C const IID IID_ICorDebugType2; CONST_VTBL struct ICorDebugType2Vtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugType2_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugType2_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugType2_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugType2_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugType2_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugType2_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugType2_GetTypeID(This,id) \ - ( (This)->lpVtbl -> GetTypeID(This,id) ) +#define ICorDebugType2_GetTypeID(This,id) \ + ( (This)->lpVtbl -> GetTypeID(This,id) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugType2_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugType2_INTERFACE_DEFINED__ */ #ifndef __ICorDebugErrorInfoEnum_INTERFACE_DEFINED__ #define __ICorDebugErrorInfoEnum_INTERFACE_DEFINED__ /* interface ICorDebugErrorInfoEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugErrorInfoEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("F0E18809-72B5-11d2-976F-00A0C9B4D50C") ICorDebugErrorInfoEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugEditAndContinueErrorInfo *errors[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugErrorInfoEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugErrorInfoEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugErrorInfoEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugErrorInfoEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugErrorInfoEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugErrorInfoEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugErrorInfoEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugErrorInfoEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugErrorInfoEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugErrorInfoEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugEditAndContinueErrorInfo *errors[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugErrorInfoEnumVtbl; @@ -18077,110 +19205,118 @@ EXTERN_C const IID IID_ICorDebugErrorInfoEnum; CONST_VTBL struct ICorDebugErrorInfoEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugErrorInfoEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugErrorInfoEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugErrorInfoEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugErrorInfoEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugErrorInfoEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugErrorInfoEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugErrorInfoEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugErrorInfoEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugErrorInfoEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugErrorInfoEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugErrorInfoEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugErrorInfoEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugErrorInfoEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugErrorInfoEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugErrorInfoEnum_Next(This,celt,errors,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,errors,pceltFetched) ) +#define ICorDebugErrorInfoEnum_Next(This,celt,errors,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,errors,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugErrorInfoEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugErrorInfoEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAppDomainEnum_INTERFACE_DEFINED__ #define __ICorDebugAppDomainEnum_INTERFACE_DEFINED__ /* interface ICorDebugAppDomainEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAppDomainEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("63ca1b24-4359-4883-bd57-13f815f58744") ICorDebugAppDomainEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAppDomain *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAppDomainEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAppDomainEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAppDomainEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAppDomainEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugAppDomainEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugAppDomainEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugAppDomainEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugAppDomainEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugAppDomainEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugAppDomainEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAppDomain *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugAppDomainEnumVtbl; @@ -18189,110 +19325,118 @@ EXTERN_C const IID IID_ICorDebugAppDomainEnum; CONST_VTBL struct ICorDebugAppDomainEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAppDomainEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAppDomainEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAppDomainEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAppDomainEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAppDomainEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAppDomainEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAppDomainEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugAppDomainEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugAppDomainEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugAppDomainEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugAppDomainEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugAppDomainEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugAppDomainEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugAppDomainEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugAppDomainEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugAppDomainEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAppDomainEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAppDomainEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugAssemblyEnum_INTERFACE_DEFINED__ #define __ICorDebugAssemblyEnum_INTERFACE_DEFINED__ /* interface ICorDebugAssemblyEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugAssemblyEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("4a2a1ec9-85ec-4bfb-9f15-a89fdfe0fe83") ICorDebugAssemblyEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAssembly *values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugAssemblyEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugAssemblyEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugAssemblyEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugAssemblyEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugAssemblyEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugAssemblyEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugAssemblyEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugAssemblyEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugAssemblyEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugAssemblyEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ ICorDebugAssembly *values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugAssemblyEnumVtbl; @@ -18301,110 +19445,118 @@ EXTERN_C const IID IID_ICorDebugAssemblyEnum; CONST_VTBL struct ICorDebugAssemblyEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugAssemblyEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugAssemblyEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugAssemblyEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugAssemblyEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugAssemblyEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugAssemblyEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugAssemblyEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugAssemblyEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugAssemblyEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugAssemblyEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugAssemblyEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugAssemblyEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugAssemblyEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugAssemblyEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugAssemblyEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugAssemblyEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugAssemblyEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugAssemblyEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ #define __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ /* interface ICorDebugBlockingObjectEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugBlockingObjectEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("976A6278-134A-4a81-81A3-8F277943F4C3") ICorDebugBlockingObjectEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugBlockingObject values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugBlockingObjectEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugBlockingObjectEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugBlockingObjectEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugBlockingObjectEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugBlockingObjectEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugBlockingObjectEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugBlockingObjectEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugBlockingObjectEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugBlockingObjectEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugBlockingObjectEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugBlockingObject values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugBlockingObjectEnumVtbl; @@ -18413,147 +19565,155 @@ EXTERN_C const IID IID_ICorDebugBlockingObjectEnum; CONST_VTBL struct ICorDebugBlockingObjectEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugBlockingObjectEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugBlockingObjectEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugBlockingObjectEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugBlockingObjectEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugBlockingObjectEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugBlockingObjectEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugBlockingObjectEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugBlockingObjectEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugBlockingObjectEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugBlockingObjectEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugBlockingObjectEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugBlockingObjectEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugBlockingObjectEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugBlockingObjectEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugBlockingObjectEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugBlockingObjectEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugBlockingObjectEnum_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0130 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0131 */ +/* [local] */ #pragma warning(push) #pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0130_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0130_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_s_ifspec; #ifndef __ICorDebugMDA_INTERFACE_DEFINED__ #define __ICorDebugMDA_INTERFACE_DEFINED__ /* interface ICorDebugMDA */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ -typedef +typedef enum CorDebugMDAFlags { - MDA_FLAG_SLIP = 0x2 - } CorDebugMDAFlags; + MDA_FLAG_SLIP = 0x2 + } CorDebugMDAFlags; EXTERN_C const IID IID_ICorDebugMDA; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("CC726F2F-1DB7-459b-B0EC-05F01D841B42") ICorDebugMDA : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetName( + virtual HRESULT STDMETHODCALLTYPE GetName( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetDescription( + + virtual HRESULT STDMETHODCALLTYPE GetDescription( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetXML( + + virtual HRESULT STDMETHODCALLTYPE GetXML( /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetFlags( + + virtual HRESULT STDMETHODCALLTYPE GetFlags( /* [in] */ CorDebugMDAFlags *pFlags) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetOSThreadId( + + virtual HRESULT STDMETHODCALLTYPE GetOSThreadId( /* [out] */ DWORD *pOsTid) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugMDAVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugMDA * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugMDA * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugMDA * This); - - HRESULT ( STDMETHODCALLTYPE *GetName )( + + DECLSPEC_XFGVIRT(ICorDebugMDA, GetName) + HRESULT ( STDMETHODCALLTYPE *GetName )( ICorDebugMDA * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetDescription )( + + DECLSPEC_XFGVIRT(ICorDebugMDA, GetDescription) + HRESULT ( STDMETHODCALLTYPE *GetDescription )( ICorDebugMDA * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetXML )( + + DECLSPEC_XFGVIRT(ICorDebugMDA, GetXML) + HRESULT ( STDMETHODCALLTYPE *GetXML )( ICorDebugMDA * This, /* [in] */ ULONG32 cchName, /* [out] */ ULONG32 *pcchName, /* [length_is][size_is][out] */ WCHAR szName[ ]); - - HRESULT ( STDMETHODCALLTYPE *GetFlags )( + + DECLSPEC_XFGVIRT(ICorDebugMDA, GetFlags) + HRESULT ( STDMETHODCALLTYPE *GetFlags )( ICorDebugMDA * This, /* [in] */ CorDebugMDAFlags *pFlags); - - HRESULT ( STDMETHODCALLTYPE *GetOSThreadId )( + + DECLSPEC_XFGVIRT(ICorDebugMDA, GetOSThreadId) + HRESULT ( STDMETHODCALLTYPE *GetOSThreadId )( ICorDebugMDA * This, /* [out] */ DWORD *pOsTid); - + END_INTERFACE } ICorDebugMDAVtbl; @@ -18562,126 +19722,133 @@ EXTERN_C const IID IID_ICorDebugMDA; CONST_VTBL struct ICorDebugMDAVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugMDA_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugMDA_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugMDA_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugMDA_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugMDA_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugMDA_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugMDA_GetName(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) +#define ICorDebugMDA_GetName(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetName(This,cchName,pcchName,szName) ) -#define ICorDebugMDA_GetDescription(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetDescription(This,cchName,pcchName,szName) ) +#define ICorDebugMDA_GetDescription(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetDescription(This,cchName,pcchName,szName) ) -#define ICorDebugMDA_GetXML(This,cchName,pcchName,szName) \ - ( (This)->lpVtbl -> GetXML(This,cchName,pcchName,szName) ) +#define ICorDebugMDA_GetXML(This,cchName,pcchName,szName) \ + ( (This)->lpVtbl -> GetXML(This,cchName,pcchName,szName) ) -#define ICorDebugMDA_GetFlags(This,pFlags) \ - ( (This)->lpVtbl -> GetFlags(This,pFlags) ) +#define ICorDebugMDA_GetFlags(This,pFlags) \ + ( (This)->lpVtbl -> GetFlags(This,pFlags) ) -#define ICorDebugMDA_GetOSThreadId(This,pOsTid) \ - ( (This)->lpVtbl -> GetOSThreadId(This,pOsTid) ) +#define ICorDebugMDA_GetOSThreadId(This,pOsTid) \ + ( (This)->lpVtbl -> GetOSThreadId(This,pOsTid) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugMDA_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugMDA_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0131 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0132 */ +/* [local] */ #pragma warning(pop) #pragma warning(push) -#pragma warning(disable:28718) +#pragma warning(disable:28718) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0131_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0132_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0132_v0_0_s_ifspec; #ifndef __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ #define __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ /* interface ICorDebugEditAndContinueErrorInfo */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEditAndContinueErrorInfo; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("8D600D41-F4F6-4cb3-B7EC-7BD164944036") ICorDebugEditAndContinueErrorInfo : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE GetModule( + virtual HRESULT STDMETHODCALLTYPE GetModule( /* [out] */ ICorDebugModule **ppModule) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetToken( + + virtual HRESULT STDMETHODCALLTYPE GetToken( /* [out] */ mdToken *pToken) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetErrorCode( + + virtual HRESULT STDMETHODCALLTYPE GetErrorCode( /* [out] */ HRESULT *pHr) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetString( + + virtual HRESULT STDMETHODCALLTYPE GetString( /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEditAndContinueErrorInfoVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEditAndContinueErrorInfo * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEditAndContinueErrorInfo * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEditAndContinueErrorInfo * This); - - HRESULT ( STDMETHODCALLTYPE *GetModule )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueErrorInfo, GetModule) + HRESULT ( STDMETHODCALLTYPE *GetModule )( ICorDebugEditAndContinueErrorInfo * This, /* [out] */ ICorDebugModule **ppModule); - - HRESULT ( STDMETHODCALLTYPE *GetToken )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueErrorInfo, GetToken) + HRESULT ( STDMETHODCALLTYPE *GetToken )( ICorDebugEditAndContinueErrorInfo * This, /* [out] */ mdToken *pToken); - - HRESULT ( STDMETHODCALLTYPE *GetErrorCode )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueErrorInfo, GetErrorCode) + HRESULT ( STDMETHODCALLTYPE *GetErrorCode )( ICorDebugEditAndContinueErrorInfo * This, /* [out] */ HRESULT *pHr); - - HRESULT ( STDMETHODCALLTYPE *GetString )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueErrorInfo, GetString) + HRESULT ( STDMETHODCALLTYPE *GetString )( ICorDebugEditAndContinueErrorInfo * This, /* [in] */ ULONG32 cchString, /* [out] */ ULONG32 *pcchString, /* [length_is][size_is][out] */ WCHAR szString[ ]); - + END_INTERFACE } ICorDebugEditAndContinueErrorInfoVtbl; @@ -18690,144 +19857,154 @@ EXTERN_C const IID IID_ICorDebugEditAndContinueErrorInfo; CONST_VTBL struct ICorDebugEditAndContinueErrorInfoVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEditAndContinueErrorInfo_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEditAndContinueErrorInfo_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEditAndContinueErrorInfo_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEditAndContinueErrorInfo_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEditAndContinueErrorInfo_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEditAndContinueErrorInfo_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEditAndContinueErrorInfo_GetModule(This,ppModule) \ - ( (This)->lpVtbl -> GetModule(This,ppModule) ) +#define ICorDebugEditAndContinueErrorInfo_GetModule(This,ppModule) \ + ( (This)->lpVtbl -> GetModule(This,ppModule) ) -#define ICorDebugEditAndContinueErrorInfo_GetToken(This,pToken) \ - ( (This)->lpVtbl -> GetToken(This,pToken) ) +#define ICorDebugEditAndContinueErrorInfo_GetToken(This,pToken) \ + ( (This)->lpVtbl -> GetToken(This,pToken) ) -#define ICorDebugEditAndContinueErrorInfo_GetErrorCode(This,pHr) \ - ( (This)->lpVtbl -> GetErrorCode(This,pHr) ) +#define ICorDebugEditAndContinueErrorInfo_GetErrorCode(This,pHr) \ + ( (This)->lpVtbl -> GetErrorCode(This,pHr) ) -#define ICorDebugEditAndContinueErrorInfo_GetString(This,cchString,pcchString,szString) \ - ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) +#define ICorDebugEditAndContinueErrorInfo_GetString(This,cchString,pcchString,szString) \ + ( (This)->lpVtbl -> GetString(This,cchString,pcchString,szString) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEditAndContinueErrorInfo_INTERFACE_DEFINED__ */ -/* interface __MIDL_itf_cordebug_0000_0132 */ -/* [local] */ +/* interface __MIDL_itf_cordebug_0000_0133 */ +/* [local] */ #pragma warning(pop) -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0132_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0132_v0_0_s_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0133_v0_0_c_ifspec; +extern RPC_IF_HANDLE __MIDL_itf_cordebug_0000_0133_v0_0_s_ifspec; #ifndef __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ #define __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ /* interface ICorDebugEditAndContinueSnapshot */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugEditAndContinueSnapshot; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("6DC3FA01-D7CB-11d2-8A95-0080C792E5D8") ICorDebugEditAndContinueSnapshot : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE CopyMetaData( + virtual HRESULT STDMETHODCALLTYPE CopyMetaData( /* [in] */ IStream *pIStream, /* [out] */ GUID *pMvid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetMvid( + + virtual HRESULT STDMETHODCALLTYPE GetMvid( /* [out] */ GUID *pMvid) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRoDataRVA( + + virtual HRESULT STDMETHODCALLTYPE GetRoDataRVA( /* [out] */ ULONG32 *pRoDataRVA) = 0; - - virtual HRESULT STDMETHODCALLTYPE GetRwDataRVA( + + virtual HRESULT STDMETHODCALLTYPE GetRwDataRVA( /* [out] */ ULONG32 *pRwDataRVA) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPEBytes( + + virtual HRESULT STDMETHODCALLTYPE SetPEBytes( /* [in] */ IStream *pIStream) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetILMap( + + virtual HRESULT STDMETHODCALLTYPE SetILMap( /* [in] */ mdToken mdFunction, /* [in] */ ULONG cMapSize, /* [size_is][in] */ COR_IL_MAP map[ ]) = 0; - - virtual HRESULT STDMETHODCALLTYPE SetPESymbolBytes( + + virtual HRESULT STDMETHODCALLTYPE SetPESymbolBytes( /* [in] */ IStream *pIStream) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugEditAndContinueSnapshotVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugEditAndContinueSnapshot * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugEditAndContinueSnapshot * This); - - HRESULT ( STDMETHODCALLTYPE *CopyMetaData )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, CopyMetaData) + HRESULT ( STDMETHODCALLTYPE *CopyMetaData )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ IStream *pIStream, /* [out] */ GUID *pMvid); - - HRESULT ( STDMETHODCALLTYPE *GetMvid )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, GetMvid) + HRESULT ( STDMETHODCALLTYPE *GetMvid )( ICorDebugEditAndContinueSnapshot * This, /* [out] */ GUID *pMvid); - - HRESULT ( STDMETHODCALLTYPE *GetRoDataRVA )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, GetRoDataRVA) + HRESULT ( STDMETHODCALLTYPE *GetRoDataRVA )( ICorDebugEditAndContinueSnapshot * This, /* [out] */ ULONG32 *pRoDataRVA); - - HRESULT ( STDMETHODCALLTYPE *GetRwDataRVA )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, GetRwDataRVA) + HRESULT ( STDMETHODCALLTYPE *GetRwDataRVA )( ICorDebugEditAndContinueSnapshot * This, /* [out] */ ULONG32 *pRwDataRVA); - - HRESULT ( STDMETHODCALLTYPE *SetPEBytes )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, SetPEBytes) + HRESULT ( STDMETHODCALLTYPE *SetPEBytes )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ IStream *pIStream); - - HRESULT ( STDMETHODCALLTYPE *SetILMap )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, SetILMap) + HRESULT ( STDMETHODCALLTYPE *SetILMap )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ mdToken mdFunction, /* [in] */ ULONG cMapSize, /* [size_is][in] */ COR_IL_MAP map[ ]); - - HRESULT ( STDMETHODCALLTYPE *SetPESymbolBytes )( + + DECLSPEC_XFGVIRT(ICorDebugEditAndContinueSnapshot, SetPESymbolBytes) + HRESULT ( STDMETHODCALLTYPE *SetPESymbolBytes )( ICorDebugEditAndContinueSnapshot * This, /* [in] */ IStream *pIStream); - + END_INTERFACE } ICorDebugEditAndContinueSnapshotVtbl; @@ -18836,115 +20013,123 @@ EXTERN_C const IID IID_ICorDebugEditAndContinueSnapshot; CONST_VTBL struct ICorDebugEditAndContinueSnapshotVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugEditAndContinueSnapshot_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugEditAndContinueSnapshot_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugEditAndContinueSnapshot_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugEditAndContinueSnapshot_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugEditAndContinueSnapshot_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugEditAndContinueSnapshot_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugEditAndContinueSnapshot_CopyMetaData(This,pIStream,pMvid) \ - ( (This)->lpVtbl -> CopyMetaData(This,pIStream,pMvid) ) +#define ICorDebugEditAndContinueSnapshot_CopyMetaData(This,pIStream,pMvid) \ + ( (This)->lpVtbl -> CopyMetaData(This,pIStream,pMvid) ) -#define ICorDebugEditAndContinueSnapshot_GetMvid(This,pMvid) \ - ( (This)->lpVtbl -> GetMvid(This,pMvid) ) +#define ICorDebugEditAndContinueSnapshot_GetMvid(This,pMvid) \ + ( (This)->lpVtbl -> GetMvid(This,pMvid) ) -#define ICorDebugEditAndContinueSnapshot_GetRoDataRVA(This,pRoDataRVA) \ - ( (This)->lpVtbl -> GetRoDataRVA(This,pRoDataRVA) ) +#define ICorDebugEditAndContinueSnapshot_GetRoDataRVA(This,pRoDataRVA) \ + ( (This)->lpVtbl -> GetRoDataRVA(This,pRoDataRVA) ) -#define ICorDebugEditAndContinueSnapshot_GetRwDataRVA(This,pRwDataRVA) \ - ( (This)->lpVtbl -> GetRwDataRVA(This,pRwDataRVA) ) +#define ICorDebugEditAndContinueSnapshot_GetRwDataRVA(This,pRwDataRVA) \ + ( (This)->lpVtbl -> GetRwDataRVA(This,pRwDataRVA) ) -#define ICorDebugEditAndContinueSnapshot_SetPEBytes(This,pIStream) \ - ( (This)->lpVtbl -> SetPEBytes(This,pIStream) ) +#define ICorDebugEditAndContinueSnapshot_SetPEBytes(This,pIStream) \ + ( (This)->lpVtbl -> SetPEBytes(This,pIStream) ) -#define ICorDebugEditAndContinueSnapshot_SetILMap(This,mdFunction,cMapSize,map) \ - ( (This)->lpVtbl -> SetILMap(This,mdFunction,cMapSize,map) ) +#define ICorDebugEditAndContinueSnapshot_SetILMap(This,mdFunction,cMapSize,map) \ + ( (This)->lpVtbl -> SetILMap(This,mdFunction,cMapSize,map) ) -#define ICorDebugEditAndContinueSnapshot_SetPESymbolBytes(This,pIStream) \ - ( (This)->lpVtbl -> SetPESymbolBytes(This,pIStream) ) +#define ICorDebugEditAndContinueSnapshot_SetPESymbolBytes(This,pIStream) \ + ( (This)->lpVtbl -> SetPESymbolBytes(This,pIStream) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugEditAndContinueSnapshot_INTERFACE_DEFINED__ */ #ifndef __ICorDebugExceptionObjectCallStackEnum_INTERFACE_DEFINED__ #define __ICorDebugExceptionObjectCallStackEnum_INTERFACE_DEFINED__ /* interface ICorDebugExceptionObjectCallStackEnum */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugExceptionObjectCallStackEnum; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("ED775530-4DC4-41F7-86D0-9E2DEF7DFC66") ICorDebugExceptionObjectCallStackEnum : public ICorDebugEnum { public: - virtual HRESULT STDMETHODCALLTYPE Next( + virtual HRESULT STDMETHODCALLTYPE Next( /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugExceptionObjectStackFrame values[ ], /* [out] */ ULONG *pceltFetched) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugExceptionObjectCallStackEnumVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugExceptionObjectCallStackEnum * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugExceptionObjectCallStackEnum * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugExceptionObjectCallStackEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Skip )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Skip) + HRESULT ( STDMETHODCALLTYPE *Skip )( ICorDebugExceptionObjectCallStackEnum * This, /* [in] */ ULONG celt); - - HRESULT ( STDMETHODCALLTYPE *Reset )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Reset) + HRESULT ( STDMETHODCALLTYPE *Reset )( ICorDebugExceptionObjectCallStackEnum * This); - - HRESULT ( STDMETHODCALLTYPE *Clone )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, Clone) + HRESULT ( STDMETHODCALLTYPE *Clone )( ICorDebugExceptionObjectCallStackEnum * This, /* [out] */ ICorDebugEnum **ppEnum); - - HRESULT ( STDMETHODCALLTYPE *GetCount )( + + DECLSPEC_XFGVIRT(ICorDebugEnum, GetCount) + HRESULT ( STDMETHODCALLTYPE *GetCount )( ICorDebugExceptionObjectCallStackEnum * This, /* [out] */ ULONG *pcelt); - - HRESULT ( STDMETHODCALLTYPE *Next )( + + DECLSPEC_XFGVIRT(ICorDebugExceptionObjectCallStackEnum, Next) + HRESULT ( STDMETHODCALLTYPE *Next )( ICorDebugExceptionObjectCallStackEnum * This, /* [in] */ ULONG celt, /* [length_is][size_is][out] */ CorDebugExceptionObjectStackFrame values[ ], /* [out] */ ULONG *pceltFetched); - + END_INTERFACE } ICorDebugExceptionObjectCallStackEnumVtbl; @@ -18953,91 +20138,95 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectCallStackEnum; CONST_VTBL struct ICorDebugExceptionObjectCallStackEnumVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugExceptionObjectCallStackEnum_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugExceptionObjectCallStackEnum_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugExceptionObjectCallStackEnum_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugExceptionObjectCallStackEnum_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugExceptionObjectCallStackEnum_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugExceptionObjectCallStackEnum_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugExceptionObjectCallStackEnum_Skip(This,celt) \ - ( (This)->lpVtbl -> Skip(This,celt) ) +#define ICorDebugExceptionObjectCallStackEnum_Skip(This,celt) \ + ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorDebugExceptionObjectCallStackEnum_Reset(This) \ - ( (This)->lpVtbl -> Reset(This) ) +#define ICorDebugExceptionObjectCallStackEnum_Reset(This) \ + ( (This)->lpVtbl -> Reset(This) ) -#define ICorDebugExceptionObjectCallStackEnum_Clone(This,ppEnum) \ - ( (This)->lpVtbl -> Clone(This,ppEnum) ) +#define ICorDebugExceptionObjectCallStackEnum_Clone(This,ppEnum) \ + ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorDebugExceptionObjectCallStackEnum_GetCount(This,pcelt) \ - ( (This)->lpVtbl -> GetCount(This,pcelt) ) +#define ICorDebugExceptionObjectCallStackEnum_GetCount(This,pcelt) \ + ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorDebugExceptionObjectCallStackEnum_Next(This,celt,values,pceltFetched) \ - ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) +#define ICorDebugExceptionObjectCallStackEnum_Next(This,celt,values,pceltFetched) \ + ( (This)->lpVtbl -> Next(This,celt,values,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugExceptionObjectCallStackEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugExceptionObjectCallStackEnum_INTERFACE_DEFINED__ */ #ifndef __ICorDebugExceptionObjectValue_INTERFACE_DEFINED__ #define __ICorDebugExceptionObjectValue_INTERFACE_DEFINED__ /* interface ICorDebugExceptionObjectValue */ -/* [unique][uuid][local][object] */ +/* [unique][uuid][local][object] */ EXTERN_C const IID IID_ICorDebugExceptionObjectValue; #if defined(__cplusplus) && !defined(CINTERFACE) - + MIDL_INTERFACE("AE4CA65D-59DD-42A2-83A5-57E8A08D8719") ICorDebugExceptionObjectValue : public IUnknown { public: - virtual HRESULT STDMETHODCALLTYPE EnumerateExceptionCallStack( + virtual HRESULT STDMETHODCALLTYPE EnumerateExceptionCallStack( /* [out] */ ICorDebugExceptionObjectCallStackEnum **ppCallStackEnum) = 0; - + }; - - -#else /* C style interface */ + + +#else /* C style interface */ typedef struct ICorDebugExceptionObjectValueVtbl { BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( + + DECLSPEC_XFGVIRT(IUnknown, QueryInterface) + HRESULT ( STDMETHODCALLTYPE *QueryInterface )( ICorDebugExceptionObjectValue * This, /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ + /* [annotation][iid_is][out] */ _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( + + DECLSPEC_XFGVIRT(IUnknown, AddRef) + ULONG ( STDMETHODCALLTYPE *AddRef )( ICorDebugExceptionObjectValue * This); - - ULONG ( STDMETHODCALLTYPE *Release )( + + DECLSPEC_XFGVIRT(IUnknown, Release) + ULONG ( STDMETHODCALLTYPE *Release )( ICorDebugExceptionObjectValue * This); - - HRESULT ( STDMETHODCALLTYPE *EnumerateExceptionCallStack )( + + DECLSPEC_XFGVIRT(ICorDebugExceptionObjectValue, EnumerateExceptionCallStack) + HRESULT ( STDMETHODCALLTYPE *EnumerateExceptionCallStack )( ICorDebugExceptionObjectValue * This, /* [out] */ ICorDebugExceptionObjectCallStackEnum **ppCallStackEnum); - + END_INTERFACE } ICorDebugExceptionObjectValueVtbl; @@ -19046,33 +20235,33 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectValue; CONST_VTBL struct ICorDebugExceptionObjectValueVtbl *lpVtbl; }; - + #ifdef COBJMACROS -#define ICorDebugExceptionObjectValue_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) +#define ICorDebugExceptionObjectValue_QueryInterface(This,riid,ppvObject) \ + ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorDebugExceptionObjectValue_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) +#define ICorDebugExceptionObjectValue_AddRef(This) \ + ( (This)->lpVtbl -> AddRef(This) ) -#define ICorDebugExceptionObjectValue_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) +#define ICorDebugExceptionObjectValue_Release(This) \ + ( (This)->lpVtbl -> Release(This) ) -#define ICorDebugExceptionObjectValue_EnumerateExceptionCallStack(This,ppCallStackEnum) \ - ( (This)->lpVtbl -> EnumerateExceptionCallStack(This,ppCallStackEnum) ) +#define ICorDebugExceptionObjectValue_EnumerateExceptionCallStack(This,ppCallStackEnum) \ + ( (This)->lpVtbl -> EnumerateExceptionCallStack(This,ppCallStackEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorDebugExceptionObjectValue_INTERFACE_DEFINED__ */ +#endif /* __ICorDebugExceptionObjectValue_INTERFACE_DEFINED__ */ @@ -19080,7 +20269,7 @@ EXTERN_C const IID IID_ICorDebugExceptionObjectValue; #define __CORDBLib_LIBRARY_DEFINED__ /* library CORDBLib */ -/* [helpstring][version][uuid] */ +/* [helpstring][version][uuid] */ @@ -19141,3 +20330,5 @@ EmbeddedCLRCorDebug; #endif #endif + + diff --git a/src/coreclr/pal/prebuilt/inc/corprof.h b/src/coreclr/pal/prebuilt/inc/corprof.h index 88c6dcc98bac3..d4cd312a99d3a 100644 --- a/src/coreclr/pal/prebuilt/inc/corprof.h +++ b/src/coreclr/pal/prebuilt/inc/corprof.h @@ -10218,7 +10218,8 @@ typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0011_0001 { COR_PRF_CODEGEN_DISABLE_INLINING = 0x1, - COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2 + COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2, + COR_PRF_CODEGEN_DEBUG_INFO = 0x3 } COR_PRF_CODEGEN_FLAGS; diff --git a/src/coreclr/tools/Common/Compiler/NativeAotNameMangler.cs b/src/coreclr/tools/Common/Compiler/NativeAotNameMangler.cs index d5818b5aecc42..787767ed0d077 100644 --- a/src/coreclr/tools/Common/Compiler/NativeAotNameMangler.cs +++ b/src/coreclr/tools/Common/Compiler/NativeAotNameMangler.cs @@ -353,8 +353,7 @@ private string ComputeMangledTypeName(TypeDesc type) lock (this) { // Ensure that name is unique and update our tables accordingly. - if (!_mangledTypeNames.ContainsKey(type)) - _mangledTypeNames.Add(type, mangledName); + _mangledTypeNames.TryAdd(type, mangledName); } return mangledName; @@ -386,8 +385,7 @@ public override Utf8String GetMangledMethodName(MethodDesc method) lock (this) { - if (!_mangledMethodNames.ContainsKey(method)) - _mangledMethodNames.Add(method, utf8MangledName); + _mangledMethodNames.TryAdd(method, utf8MangledName); } return utf8MangledName; @@ -557,8 +555,7 @@ private Utf8String ComputeUnqualifiedMangledMethodName(MethodDesc method) { lock (this) { - if (!_unqualifiedMangledMethodNames.ContainsKey(method)) - _unqualifiedMangledMethodNames.Add(method, utf8MangledName); + _unqualifiedMangledMethodNames.TryAdd(method, utf8MangledName); } } @@ -622,8 +619,7 @@ private Utf8String ComputeMangledFieldName(FieldDesc field) lock (this) { - if (!_mangledFieldNames.ContainsKey(field)) - _mangledFieldNames.Add(field, utf8MangledName); + _mangledFieldNames.TryAdd(field, utf8MangledName); } return utf8MangledName; @@ -644,8 +640,7 @@ public override string GetMangledStringName(string literal) lock (this) { - if (!_mangledStringLiterals.ContainsKey(literal)) - _mangledStringLiterals.Add(literal, mangledName); + _mangledStringLiterals.TryAdd(literal, mangledName); } return mangledName; diff --git a/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs b/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs index 0693f3c1b69f1..7837e8c24f832 100644 --- a/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs +++ b/src/coreclr/tools/Common/JitInterface/CorInfoHelpFunc.cs @@ -275,6 +275,7 @@ which is the right helper to use to allocate an object of a given type. */ CORINFO_HELP_THROW_PLATFORM_NOT_SUPPORTED, // throw PlatformNotSupportedException CORINFO_HELP_THROW_TYPE_NOT_SUPPORTED, // throw TypeNotSupportedException CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION, // throw AmbiguousResolutionException for failed static virtual method resolution + CORINFO_HELP_THROW_ENTRYPOINT_NOT_FOUND_EXCEPTION, // throw EntryPointNotFoundException for failed static virtual method resolution CORINFO_HELP_JIT_PINVOKE_BEGIN, // Transition to preemptive mode before a P/Invoke, frame is the first argument CORINFO_HELP_JIT_PINVOKE_END, // Transition to cooperative mode after a P/Invoke, frame is the first argument diff --git a/src/coreclr/tools/StressLogAnalyzer/StressLogDump.cpp b/src/coreclr/tools/StressLogAnalyzer/StressLogDump.cpp index 61fa9c41b1f30..f3be8b8812218 100644 --- a/src/coreclr/tools/StressLogAnalyzer/StressLogDump.cpp +++ b/src/coreclr/tools/StressLogAnalyzer/StressLogDump.cpp @@ -22,10 +22,11 @@ class MapViewHolder #endif // STRESS_LOG #define STRESS_LOG_READONLY #include "../../../inc/stresslog.h" +#include "StressMsgReader.h" void GcHistClear(); -void GcHistAddLog(LPCSTR msg, StressMsg* stressMsg); +void GcHistAddLog(LPCSTR msg, StressMsgReader stressMsg); /*********************************************************************************/ @@ -57,7 +58,7 @@ ThreadStressLog* ThreadStressLog::FindLatestThreadLog() const for (const ThreadStressLog* ptr = this; ptr != NULL; ptr = ptr->next) { if (ptr->readPtr != NULL) - if (latestLog == 0 || ptr->readPtr->GetTimeStamp() > latestLog->readPtr->GetTimeStamp()) + if (latestLog == 0 || StressMsgReader(ptr->readPtr).GetTimeStamp() > StressMsgReader(latestLog->readPtr).GetTimeStamp()) latestLog = ptr; } return const_cast(latestLog); @@ -423,9 +424,9 @@ HRESULT StressLog::Dump(ULONG64 outProcLog, const char* fileName, struct IDebugD // TODO: fix on 64 bit inProcPtr->Activate (); - if (inProcPtr->readPtr->GetTimeStamp() > lastTimeStamp) + if (StressMsgReader(inProcPtr->readPtr).GetTimeStamp() > lastTimeStamp) { - lastTimeStamp = inProcPtr->readPtr->GetTimeStamp(); + lastTimeStamp = StressMsgReader(inProcPtr->readPtr).GetTimeStamp(); } outProcPtr = TO_CDADDR(inProcPtr->next); @@ -488,20 +489,20 @@ HRESULT StressLog::Dump(ULONG64 outProcLog, const char* fileName, struct IDebugD break; } - StressMsg* latestMsg = latestLog->readPtr; - if (latestMsg->GetFormatOffset() != 0 && !latestLog->CompletedDump()) + StressMsgReader latestMsg = latestLog->readPtr; + if (latestMsg.GetFormatOffset() != 0 && !latestLog->CompletedDump()) { - TADDR taFmt = (latestMsg->GetFormatOffset()) + TO_TADDR(g_hThisInst); + TADDR taFmt = (latestMsg.GetFormatOffset()) + TO_TADDR(g_hThisInst); hr = memCallBack->ReadVirtual(TO_CDADDR(taFmt), format, 256, 0); if (hr != S_OK) strcpy_s(format, ARRAY_SIZE(format), "Could not read address of format string"); - double deltaTime = ((double) (latestMsg->GetTimeStamp() - inProcLog.startTimeStamp)) / inProcLog.tickFrequency; + double deltaTime = ((double) (latestMsg.GetTimeStamp() - inProcLog.startTimeStamp)) / inProcLog.tickFrequency; if (bDoGcHist) { if (strcmp(format, ThreadStressLog::TaskSwitchMsg()) == 0) { - latestLog->threadId = (unsigned)(size_t)latestMsg->args[0]; + latestLog->threadId = (unsigned)(size_t)latestMsg.GetArgs()[0]; } GcHistAddLog(format, latestMsg); } @@ -509,19 +510,19 @@ HRESULT StressLog::Dump(ULONG64 outProcLog, const char* fileName, struct IDebugD { if (strcmp(format, ThreadStressLog::TaskSwitchMsg()) == 0) { - fprintf (file, "Task was switched from %x\n", (unsigned)(size_t)latestMsg->args[0]); - latestLog->threadId = (unsigned)(size_t)latestMsg->args[0]; + fprintf (file, "Task was switched from %x\n", (unsigned)(size_t)latestMsg.GetArgs()[0]); + latestLog->threadId = (unsigned)(size_t)latestMsg.GetArgs()[0]; } else { - args = latestMsg->args; - formatOutput(memCallBack, file, format, (unsigned)latestLog->threadId, deltaTime, latestMsg->GetFacility(), args); + args = latestMsg.GetArgs(); + formatOutput(memCallBack, file, format, (unsigned)latestLog->threadId, deltaTime, latestMsg.GetFacility(), args); } } msgCtr++; } - latestLog->readPtr = latestLog->AdvanceRead(latestMsg->GetNumberOfArgs()); + latestLog->readPtr = latestLog->AdvanceRead(latestMsg.GetNumberOfArgs()); if (latestLog->CompletedDump()) { latestLog->readPtr = NULL; diff --git a/src/coreclr/tools/StressLogAnalyzer/StressLogPlugin.cpp b/src/coreclr/tools/StressLogAnalyzer/StressLogPlugin.cpp index 65e5edc5a3a9c..d4ec55851c711 100644 --- a/src/coreclr/tools/StressLogAnalyzer/StressLogPlugin.cpp +++ b/src/coreclr/tools/StressLogAnalyzer/StressLogPlugin.cpp @@ -40,6 +40,7 @@ bool IsInCantAllocStressLogRegion() #include #include "../../../inc/stresslog.h" +#include "StressMsgReader.h" size_t StressLog::writing_base_address; size_t StressLog::reading_base_address; @@ -67,7 +68,7 @@ void GcHistClear() { } -void GcHistAddLog(LPCSTR msg, StressMsg* stressMsg) +void GcHistAddLog(LPCSTR msg, StressMsgReader stressMsg) { } @@ -531,7 +532,7 @@ bool FilterMessage(StressLog::StressLogHeader* hdr, ThreadStressLog* tsl, uint32 struct StressThreadAndMsg { uint64_t threadId; - StressMsg* msg; + StressMsgReader msg; uint64_t msgId; }; @@ -540,9 +541,9 @@ int CmpMsg(const void* p1, const void* p2) const StressThreadAndMsg* msg1 = (const StressThreadAndMsg*)p1; const StressThreadAndMsg* msg2 = (const StressThreadAndMsg*)p2; - if (msg1->msg->GetTimeStamp() < msg2->msg->GetTimeStamp()) + if (msg1->msg.GetTimeStamp() < msg2->msg.GetTimeStamp()) return 1; - if (msg1->msg->GetTimeStamp() > msg2->msg->GetTimeStamp()) + if (msg1->msg.GetTimeStamp() > msg2->msg.GetTimeStamp()) return -11; if (msg1->threadId < msg2->threadId) @@ -564,7 +565,7 @@ struct ThreadStressLogDesc volatile LONG workStarted; volatile LONG workFinished; ThreadStressLog* tsl; - StressMsg* earliestMessage; + StressMsgReader earliestMessage; ThreadStressLogDesc() : workStarted(0), workFinished(0), tsl(nullptr), earliestMessage(nullptr) { @@ -584,7 +585,7 @@ static double s_timeFilterStart = 0; static double s_timeFilterEnd = 0; static const char* s_outputFileName = nullptr; -static StressLog::StressLogHeader* s_hdr; +StressLog::StressLogHeader* s_hdr; static bool s_fPrintFormatStrings; @@ -1056,7 +1057,7 @@ bool ParseOptions(int argc, char* argv[]) return true; } -static void IncludeMessage(uint64_t threadId, StressMsg* msg) +static void IncludeMessage(uint64_t threadId, StressMsgReader msg) { LONGLONG msgCount = InterlockedIncrement64(&s_msgCount) - 1; if (msgCount < MAX_MESSAGE_COUNT) @@ -1089,10 +1090,10 @@ DWORD WINAPI ProcessStresslogWorker(LPVOID) wrappedWriteThreadCount++; } // printf("thread: %zx\n", tsl->threadId); - StressMsg* msg = StressLog::TranslateMemoryMappedPointer(tsl->curPtr); + void* msg = StressLog::TranslateMemoryMappedPointer(tsl->curPtr); StressLogChunk* slc = StressLog::TranslateMemoryMappedPointer(tsl->curWriteChunk); int chunkCount = 0; - StressMsg* prevMsg = nullptr; + void* prevMsg = nullptr; while (true) { // printf("stress log chunk %zx\n", (size_t)slc); @@ -1135,14 +1136,15 @@ DWORD WINAPI ProcessStresslogWorker(LPVOID) { while (p < end && *p == 0) p++; - msg = (StressMsg*)p; + msg = (void*)p; } - StressMsg* endMsg = (StressMsg*)end; + void* endMsg = (void*)end; while (msg < endMsg) { + StressMsgReader msgReader(msg); totalMsgCount++; - char* format = (char*)(hdr->moduleImage + msg->GetFormatOffset()); - double deltaTime = ((double)(msg->GetTimeStamp() - hdr->startTimeStamp)) / hdr->tickFrequency; + char* format = (char*)(hdr->moduleImage + msgReader.GetFormatOffset()); + double deltaTime = ((double)(msgReader.GetTimeStamp() - hdr->startTimeStamp)) / hdr->tickFrequency; bool fIgnoreMessage = false; if (fTimeFilter) { @@ -1156,17 +1158,17 @@ DWORD WINAPI ProcessStresslogWorker(LPVOID) fIgnoreMessage = true; } } - int numberOfArgs = msg->GetNumberOfArgs(); + int numberOfArgs = msgReader.GetNumberOfArgs(); if (!fIgnoreMessage) { - bool fIncludeMessage = s_showAllMessages || FilterMessage(hdr, tsl, msg->GetFacility(), format, deltaTime, numberOfArgs, msg->args); + bool fIncludeMessage = s_showAllMessages || FilterMessage(hdr, tsl, msgReader.GetFacility(), format, deltaTime, numberOfArgs, msgReader.GetArgs()); if (!fIncludeMessage && s_valueFilterCount > 0) { for (int i = 0; i < numberOfArgs; i++) { for (int j = 0; j < s_valueFilterCount; j++) { - if (s_valueFilter[j].start <= (size_t)msg->args[i] && (size_t)msg->args[i] <= s_valueFilter[j].end) + if (s_valueFilter[j].start <= (size_t)msgReader.GetArgs()[i] && (size_t)msgReader.GetArgs()[i] <= s_valueFilter[j].end) { fIncludeMessage = true; break; @@ -1182,7 +1184,7 @@ DWORD WINAPI ProcessStresslogWorker(LPVOID) } } prevMsg = msg; - msg = (StressMsg*)&msg->args[numberOfArgs]; + msg = (StressMsg*)&msgReader.GetArgs()[numberOfArgs]; } if (slc == StressLog::TranslateMemoryMappedPointer(tsl->chunkListTail) && !tsl->writeHasWrapped) break; @@ -1233,16 +1235,16 @@ static void PrintFriendlyNumber(LONGLONG n) printf("%11.9f billion", n / 1000000000.0); } -static void PrintMessage(CorClrData& corClrData, FILE *outputFile, uint64_t threadId, StressMsg* msg) +static void PrintMessage(CorClrData& corClrData, FILE *outputFile, uint64_t threadId, StressMsgReader msg) { void* argBuffer[StressMsg::maxArgCnt]; - char* format = (char*)(s_hdr->moduleImage + msg->GetFormatOffset()); - int numberOfArgs = msg->GetNumberOfArgs(); + char* format = (char*)(s_hdr->moduleImage + msg.GetFormatOffset()); + int numberOfArgs = msg.GetNumberOfArgs(); for (int i = 0; i < numberOfArgs; i++) { - argBuffer[i] = msg->args[i]; + argBuffer[i] = msg.GetArgs()[i]; } - double deltaTime = ((double)(msg->GetTimeStamp() - s_hdr->startTimeStamp)) / s_hdr->tickFrequency; + double deltaTime = ((double)(msg.GetTimeStamp() - s_hdr->startTimeStamp)) / s_hdr->tickFrequency; if (!s_printHexTidForGcThreads) { GcThread gcThread; @@ -1255,7 +1257,7 @@ static void PrintMessage(CorClrData& corClrData, FILE *outputFile, uint64_t thre threadId |= 0x4000000000000000; } } - formatOutput(&corClrData, outputFile, format, threadId, deltaTime, msg->GetFacility(), argBuffer, s_fPrintFormatStrings); + formatOutput(&corClrData, outputFile, format, threadId, deltaTime, msg.GetFacility(), argBuffer, s_fPrintFormatStrings); } int ProcessStressLog(void* baseAddress, int argc, char* argv[]) @@ -1301,7 +1303,8 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) StressLog::StressLogHeader* hdr = (StressLog::StressLogHeader*)baseAddress; if (hdr->headerSize != sizeof(*hdr) || hdr->magic != *(uint32_t*)"LRTS" || - hdr->version != 0x00010001) + (hdr->version != 0x00010001 && + hdr->version != 0x00010002)) { printf("Unrecognized file format\n"); return 1; @@ -1383,8 +1386,8 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) int remMsgCount = 0; for (int msgIndex = 0; msgIndex < s_msgCount; msgIndex++) { - StressMsg* msg = s_threadMsgBuf[msgIndex].msg; - double deltaTime = ((double)(msg->GetTimeStamp() - hdr->startTimeStamp)) / hdr->tickFrequency; + StressMsgReader msg = s_threadMsgBuf[msgIndex].msg; + double deltaTime = ((double)(msg.GetTimeStamp() - hdr->startTimeStamp)) / hdr->tickFrequency; if (startTime <= deltaTime && deltaTime <= endTime) { s_threadMsgBuf[remMsgCount] = s_threadMsgBuf[msgIndex]; @@ -1463,7 +1466,7 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) for (LONGLONG i = 0; i < s_msgCount; i++) { uint64_t threadId = (unsigned)s_threadMsgBuf[i].threadId; - StressMsg* msg = s_threadMsgBuf[i].msg; + StressMsgReader msg = s_threadMsgBuf[i].msg; PrintMessage(corClrData, outputFile, threadId, msg); } @@ -1500,7 +1503,7 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) LONGLONG earliestStartCount = s_msgCount; for (int threadStressLogIndex = 0; threadStressLogIndex < s_threadStressLogCount; threadStressLogIndex++) { - StressMsg* msg = s_threadStressLogDesc[threadStressLogIndex].earliestMessage; + StressMsgReader msg = s_threadStressLogDesc[threadStressLogIndex].earliestMessage; if (msg == nullptr) continue; bool fIncludeMessage = s_printEarliestMessages; @@ -1525,7 +1528,7 @@ int ProcessStressLog(void* baseAddress, int argc, char* argv[]) for (LONGLONG i = earliestStartCount; i < s_msgCount; i++) { uint64_t threadId = (unsigned)s_threadMsgBuf[i].threadId; - StressMsg* msg = s_threadMsgBuf[i].msg; + StressMsgReader msg = s_threadMsgBuf[i].msg; PrintMessage(corClrData, outputFile, threadId, msg); } } diff --git a/src/coreclr/tools/SuperFileCheck/Program.cs b/src/coreclr/tools/SuperFileCheck/Program.cs index 64203bedcf3e0..540f1df989d8a 100644 --- a/src/coreclr/tools/SuperFileCheck/Program.cs +++ b/src/coreclr/tools/SuperFileCheck/Program.cs @@ -391,8 +391,8 @@ static string PreProcessMethod(MethodDeclarationInfo methodDeclInfo, string[] ch var methodName = methodDeclInfo.FullyQualifiedName.Replace("*", "{{.*}}"); // Change wild-card to FileCheck wild-card syntax. // Create anchors from the first prefix. - var startAnchorText = $"// {checkPrefixes[0]}-LABEL: for method {methodName}"; - var endAnchorText = $"// {checkPrefixes[0]}: for method {methodName}"; + var beginAnchorText = $"// {checkPrefixes[0]}-LABEL: BEGIN METHOD {methodName}"; + var endAnchorText = $"// {checkPrefixes[0]}: END METHOD {methodName}"; // Create temp source file based on the source text of the method. // Newlines are added to pad the text so FileCheck's error messages will correspond @@ -404,7 +404,7 @@ static string PreProcessMethod(MethodDeclarationInfo methodDeclInfo, string[] ch { tmpSrc.AppendLine(String.Empty); } - tmpSrc.AppendLine(startAnchorText); + tmpSrc.AppendLine(beginAnchorText); tmpSrc.AppendLine(TransformMethod(methodDecl, checkPrefixes)); tmpSrc.AppendLine(endAnchorText); diff --git a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs index a36d77e8fe652..5fabd83920ea2 100644 --- a/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs +++ b/src/coreclr/tools/aot/ILCompiler.ReadyToRun/IBC/IBCProfileData.cs @@ -51,10 +51,7 @@ public IBCProfileData(MibcConfig config, bool partialNGen, IEnumerableheaderSize = sizeof(StressLogHeader); hdr->magic = *(uint32_t*)"LRTS"; - hdr->version = 0x00010001; + hdr->version = 0x00010002; hdr->memoryBase = (uint8_t*)hdr; hdr->memoryCur = hdr->memoryBase + sizeof(StressLogHeader); hdr->memoryLimit = hdr->memoryBase + maxBytesTotal; diff --git a/src/coreclr/vm/codeversion.cpp b/src/coreclr/vm/codeversion.cpp index 55fbb5cdd1e2e..9c1fd769081b3 100644 --- a/src/coreclr/vm/codeversion.cpp +++ b/src/coreclr/vm/codeversion.cpp @@ -46,6 +46,10 @@ void NativeCodeVersion::SetGCCoverageInfo(PTR_GCCoverageInfo gcCover) #else // FEATURE_CODE_VERSIONING +// This is just used as a unique id. Overflow is OK. If we happen to have more than 4+Billion rejits +// and somehow manage to not run out of memory, we'll just have to redefine ReJITID as size_t. +/* static */ +static ReJITID s_GlobalReJitId = 1; #ifndef DACCESS_COMPILE NativeCodeVersionNode::NativeCodeVersionNode( @@ -553,20 +557,22 @@ ILCodeVersionNode::ILCodeVersionNode() : m_pNextILVersionNode(dac_cast(nullptr)), m_rejitState(ILCodeVersion::kStateRequested), m_pIL(), - m_jitFlags(0) + m_jitFlags(0), + m_deoptimized(FALSE) { m_pIL.Store(dac_cast(nullptr)); } #ifndef DACCESS_COMPILE -ILCodeVersionNode::ILCodeVersionNode(Module* pModule, mdMethodDef methodDef, ReJITID id) : +ILCodeVersionNode::ILCodeVersionNode(Module* pModule, mdMethodDef methodDef, ReJITID id, BOOL isDeoptimized) : m_pModule(pModule), m_methodDef(methodDef), m_rejitId(id), m_pNextILVersionNode(dac_cast(nullptr)), m_rejitState(ILCodeVersion::kStateRequested), m_pIL(nullptr), - m_jitFlags(0) + m_jitFlags(0), + m_deoptimized(isDeoptimized) {} #endif @@ -627,6 +633,12 @@ PTR_ILCodeVersionNode ILCodeVersionNode::GetNextILVersionNode() const return m_pNextILVersionNode; } +BOOL ILCodeVersionNode::IsDeoptimized() const +{ + LIMITED_METHOD_DAC_CONTRACT; + return m_deoptimized; +} + #ifndef DACCESS_COMPILE void ILCodeVersionNode::SetRejitState(ILCodeVersion::RejitFlags newState) { @@ -941,6 +953,19 @@ const InstrumentedILOffsetMapping* ILCodeVersion::GetInstrumentedILMap() const } } +BOOL ILCodeVersion::IsDeoptimized() const +{ + LIMITED_METHOD_DAC_CONTRACT; + if (m_storageKind == StorageKind::Explicit) + { + return AsNode()->IsDeoptimized(); + } + else + { + return FALSE; + } +} + #ifndef DACCESS_COMPILE void ILCodeVersion::SetRejitState(RejitFlags newState) { @@ -1448,7 +1473,7 @@ NativeCodeVersion CodeVersionManager::GetNativeCodeVersion(PTR_MethodDesc pMetho } #ifndef DACCESS_COMPILE -HRESULT CodeVersionManager::AddILCodeVersion(Module* pModule, mdMethodDef methodDef, ReJITID rejitId, ILCodeVersion* pILCodeVersion) +HRESULT CodeVersionManager::AddILCodeVersion(Module* pModule, mdMethodDef methodDef, ILCodeVersion* pILCodeVersion, BOOL isDeoptimized) { LIMITED_METHOD_CONTRACT; _ASSERTE(IsLockOwnedByCurrentThread()); @@ -1461,7 +1486,7 @@ HRESULT CodeVersionManager::AddILCodeVersion(Module* pModule, mdMethodDef method return hr; } - ILCodeVersionNode* pILCodeVersionNode = new (nothrow) ILCodeVersionNode(pModule, methodDef, rejitId); + ILCodeVersionNode* pILCodeVersionNode = new (nothrow) ILCodeVersionNode(pModule, methodDef, InterlockedIncrement(reinterpret_cast(&s_GlobalReJitId)), isDeoptimized); if (pILCodeVersionNode == NULL) { return E_OUTOFMEMORY; @@ -1495,7 +1520,7 @@ HRESULT CodeVersionManager::SetActiveILCodeVersions(ILCodeVersion* pActiveVersio CONTRACTL_END; _ASSERTE(!IsLockOwnedByCurrentThread()); HRESULT hr = S_OK; - + #if DEBUG for (DWORD i = 0; i < cActiveVersions; i++) { diff --git a/src/coreclr/vm/codeversion.h b/src/coreclr/vm/codeversion.h index 66de4ba27257a..7b536fb071a62 100644 --- a/src/coreclr/vm/codeversion.h +++ b/src/coreclr/vm/codeversion.h @@ -213,6 +213,7 @@ class ILCodeVersion RejitFlags GetRejitState() const; BOOL GetEnableReJITCallback() const; + BOOL IsDeoptimized() const; #ifndef DACCESS_COMPILE void SetRejitState(RejitFlags newState); void SetEnableReJITCallback(BOOL state); @@ -365,7 +366,7 @@ class ILCodeVersionNode public: ILCodeVersionNode(); #ifndef DACCESS_COMPILE - ILCodeVersionNode(Module* pModule, mdMethodDef methodDef, ReJITID id); + ILCodeVersionNode(Module* pModule, mdMethodDef methodDef, ReJITID id, BOOL isDeoptimized); #endif PTR_Module GetModule() const; mdMethodDef GetMethodDef() const; @@ -376,6 +377,7 @@ class ILCodeVersionNode ILCodeVersion::RejitFlags GetRejitState() const; BOOL GetEnableReJITCallback() const; PTR_ILCodeVersionNode GetNextILVersionNode() const; + BOOL IsDeoptimized() const; #ifndef DACCESS_COMPILE void SetIL(COR_ILMETHOD* pIL); void SetJitFlags(DWORD flags); @@ -394,6 +396,7 @@ class ILCodeVersionNode VolatilePtr m_pIL; Volatile m_jitFlags; InstrumentedILOffsetMapping m_instrumentedILMap; + BOOL m_deoptimized; }; class ILCodeVersionCollection @@ -591,7 +594,7 @@ class CodeVersionManager HRESULT hrStatus; }; - HRESULT AddILCodeVersion(Module* pModule, mdMethodDef methodDef, ReJITID rejitId, ILCodeVersion* pILCodeVersion); + HRESULT AddILCodeVersion(Module* pModule, mdMethodDef methodDef, ILCodeVersion* pILCodeVersion, BOOL isDeoptimized); HRESULT AddNativeCodeVersion(ILCodeVersion ilCodeVersion, MethodDesc* pClosedMethodDesc, NativeCodeVersion::OptimizationTier optimizationTier, NativeCodeVersion* pNativeCodeVersion, PatchpointInfo* patchpointInfo = NULL, unsigned ilOffset = 0); PCODE PublishVersionableCodeIfNecessary( diff --git a/src/coreclr/vm/dbginterface.h b/src/coreclr/vm/dbginterface.h index 25e4bf81722ac..daa57d25c86cf 100644 --- a/src/coreclr/vm/dbginterface.h +++ b/src/coreclr/vm/dbginterface.h @@ -413,6 +413,11 @@ class DebugInterface virtual void ResumeForGarbageCollectionStarted() = 0; #endif virtual BOOL IsSynchronizing() = 0; + +#ifndef DACCESS_COMPILE + virtual HRESULT DeoptimizeMethod(Module* pModule, mdMethodDef methodDef) = 0; + virtual HRESULT IsMethodDeoptimized(Module *pModule, mdMethodDef methodDef, BOOL *pResult) = 0; +#endif //DACCESS_COMPILE }; #ifndef DACCESS_COMPILE diff --git a/src/coreclr/vm/dllimport.h b/src/coreclr/vm/dllimport.h index d3ac9847abf7b..256b950799336 100644 --- a/src/coreclr/vm/dllimport.h +++ b/src/coreclr/vm/dllimport.h @@ -194,6 +194,7 @@ enum ILStubTypes ILSTUB_WRAPPERDELEGATE_INVOKE = 0x80000007, ILSTUB_TAILCALL_STOREARGS = 0x80000008, ILSTUB_TAILCALL_CALLTARGET = 0x80000009, + ILSTUB_STATIC_VIRTUAL_DISPATCH_STUB = 0x8000000A, }; #ifdef FEATURE_COMINTEROP @@ -214,6 +215,8 @@ inline bool SF_IsForNumParamBytes (DWORD dwStubFlags) { LIMITED_METHOD_CONT inline bool SF_IsStructMarshalStub (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return (dwStubFlags < NDIRECTSTUB_FL_INVALID && 0 != (dwStubFlags & NDIRECTSTUB_FL_STRUCT_MARSHAL)); } inline bool SF_IsCheckPendingException (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return (dwStubFlags < NDIRECTSTUB_FL_INVALID && 0 != (dwStubFlags & NDIRECTSTUB_FL_CHECK_PENDING_EXCEPTION)); } +inline bool SF_IsVirtualStaticMethodDispatchStub(DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return dwStubFlags == ILSTUB_STATIC_VIRTUAL_DISPATCH_STUB; } + #ifdef FEATURE_ARRAYSTUB_AS_IL inline bool SF_IsArrayOpStub (DWORD dwStubFlags) { LIMITED_METHOD_CONTRACT; return ((dwStubFlags == ILSTUB_ARRAYOP_GET) || (dwStubFlags == ILSTUB_ARRAYOP_SET) || diff --git a/src/coreclr/vm/eedbginterfaceimpl.cpp b/src/coreclr/vm/eedbginterfaceimpl.cpp index 313f240ede190..792c608918a61 100644 --- a/src/coreclr/vm/eedbginterfaceimpl.cpp +++ b/src/coreclr/vm/eedbginterfaceimpl.cpp @@ -1572,5 +1572,4 @@ BOOL EEDbgInterfaceImpl::AdjustContextForJITHelpersForDebugger(CONTEXT* context) return AdjustContextForJITHelpers(nullptr, context); } #endif - #endif // DEBUGGING_SUPPORTED diff --git a/src/coreclr/vm/gcheaputilities.cpp b/src/coreclr/vm/gcheaputilities.cpp index ed4e89f4797a4..a705a428c707b 100644 --- a/src/coreclr/vm/gcheaputilities.cpp +++ b/src/coreclr/vm/gcheaputilities.cpp @@ -344,6 +344,8 @@ HRESULT GCHeapUtilities::LoadAndInitialize() g_gc_load_status = GC_LOAD_STATUS_START; LPCWSTR standaloneGcLocation = Configuration::GetKnobStringValue(W("System.GC.Name"), CLRConfig::EXTERNAL_GCName); + g_gc_dac_vars.major_version_number = GC_INTERFACE_MAJOR_VERSION; + g_gc_dac_vars.minor_version_number = GC_INTERFACE_MINOR_VERSION; if (!standaloneGcLocation) { return InitializeDefaultGC(); diff --git a/src/coreclr/vm/genericdict.cpp b/src/coreclr/vm/genericdict.cpp index 2a79009f4cbd7..456bec758b2a6 100644 --- a/src/coreclr/vm/genericdict.cpp +++ b/src/coreclr/vm/genericdict.cpp @@ -29,6 +29,7 @@ #include "typectxt.h" #include "virtualcallstub.h" #include "sigbuilder.h" +#include "dllimport.h" #ifndef DACCESS_COMPILE @@ -599,6 +600,70 @@ Dictionary* Dictionary::GetTypeDictionaryWithSizeCheck(MethodTable* pMT, ULONG s RETURN pDictionary; } +struct StaticVirtualDispatchHashBlob : public ILStubHashBlobBase +{ + MethodDesc *pExactInterfaceMethod; + MethodTable *pTargetMT; +}; + +PCODE CreateStubForStaticVirtualDispatch(MethodTable* pTargetMT, MethodTable* pInterfaceMT, MethodDesc *pInterfaceMD) +{ + GCX_PREEMP(); + + Module* pLoaderModule = ClassLoader::ComputeLoaderModule(pTargetMT, 0, pInterfaceMD->GetMethodInstantiation()); + + MethodDesc *pExactMD = MethodDesc::FindOrCreateAssociatedMethodDesc( + pInterfaceMD, + pInterfaceMT, + FALSE, // forceBoxedEntryPoint + pInterfaceMD->GetMethodInstantiation(), // methodInst + FALSE, // allowInstParam + TRUE); // forceRemotableMethod + + StaticVirtualDispatchHashBlob hashBlob; + memset(&hashBlob, 0, sizeof(hashBlob)); + hashBlob.pExactInterfaceMethod = pExactMD; + hashBlob.pTargetMT = pTargetMT; + hashBlob.m_cbSizeOfBlob = sizeof(hashBlob); + ILStubHashBlob *pHashBlob = (ILStubHashBlob*)&hashBlob; + + MethodDesc *pStubMD = pLoaderModule->GetILStubCache()->LookupStubMethodDesc(pHashBlob); + if (pStubMD == NULL) + { + SigTypeContext context(pExactMD); + ILStubLinker sl(pExactMD->GetModule(), pExactMD->GetSignature(), &context, pExactMD, ILSTUB_LINKER_FLAG_NONE); + MetaSig sig(pInterfaceMD); + + ILCodeStream *pCode = sl.NewCodeStream(ILStubLinker::kDispatch); + + UINT paramCount = 0; + BOOL fReturnVal = !sig.IsReturnTypeVoid(); + while(paramCount < sig.NumFixedArgs()) + pCode->EmitLDARG(paramCount++); + + pCode->EmitCONSTRAINED(pCode->GetToken(pTargetMT)); + pCode->EmitCALL(pCode->GetToken(pInterfaceMD), sig.NumFixedArgs(), fReturnVal); + pCode->EmitRET(); + + PCCOR_SIGNATURE pSig; + DWORD cbSig; + + pInterfaceMD->GetSig(&pSig,&cbSig); + + pStubMD = ILStubCache::CreateAndLinkNewILStubMethodDesc(pLoaderModule->GetLoaderAllocator(), + pLoaderModule->GetILStubCache()->GetOrCreateStubMethodTable(pLoaderModule), + ILSTUB_STATIC_VIRTUAL_DISPATCH_STUB, + pInterfaceMD->GetModule(), + pSig, cbSig, + &context, + &sl); + + pStubMD = pLoaderModule->GetILStubCache()->InsertStubMethodDesc(pStubMD, pHashBlob); + } + + return JitILStub(pStubMD); +} + //--------------------------------------------------------------------------------------- // DictionaryEntry @@ -1068,11 +1133,40 @@ Dictionary::PopulateEntry( } _ASSERTE(!constraintType.IsNull()); - MethodDesc *pResolvedMD = constraintType.GetMethodTable()->TryResolveConstraintMethodApprox(ownerType, pMethod); + MethodDesc *pResolvedMD; - // All such calls should be resolvable. If not then for now just throw an error. - _ASSERTE(pResolvedMD); - INDEBUG(if (!pResolvedMD) constraintType.GetMethodTable()->TryResolveConstraintMethodApprox(ownerType, pMethod);) + if (pMethod->IsStatic()) + { + // Virtual Static Method resolution + _ASSERTE(!ownerType.IsTypeDesc()); + _ASSERTE(ownerType.IsInterface()); + BOOL uniqueResolution; + pResolvedMD = constraintType.GetMethodTable()->ResolveVirtualStaticMethod( + ownerType.GetMethodTable(), + pMethod, + /* allowNullResult */ TRUE, + /* verifyImplemented */ FALSE, + /* allowVariantMatches */ TRUE, + &uniqueResolution); + + // If we couldn't get an exact result, fall back to using a stub to make the exact function call + // This will trigger the logic in the JIT which can handle AmbiguousImplementationException and + // EntryPointNotFoundException at exactly the right time + if (!uniqueResolution || pResolvedMD == NULL || pResolvedMD->IsAbstract()) + { + _ASSERTE(pResolvedMD == NULL || pResolvedMD->IsStatic()); + result = (CORINFO_GENERIC_HANDLE)CreateStubForStaticVirtualDispatch(constraintType.GetMethodTable(), ownerType.GetMethodTable(), pMethod); + break; + } + } + else + { + pResolvedMD = constraintType.GetMethodTable()->TryResolveConstraintMethodApprox(ownerType, pMethod); + + // All such calls should be resolvable. If not then for now just throw an error. + _ASSERTE(pResolvedMD); + INDEBUG(if (!pResolvedMD) constraintType.GetMethodTable()->TryResolveConstraintMethodApprox(ownerType, pMethod);) + } if (!pResolvedMD) COMPlusThrowHR(COR_E_BADIMAGEFORMAT); diff --git a/src/coreclr/vm/ilstubcache.cpp b/src/coreclr/vm/ilstubcache.cpp index 8737bbd33bfba..4c955e322bb73 100644 --- a/src/coreclr/vm/ilstubcache.cpp +++ b/src/coreclr/vm/ilstubcache.cpp @@ -159,6 +159,7 @@ namespace case DynamicMethodDesc::StubWrapperDelegate: return "IL_STUB_WrapperDelegate_Invoke"; case DynamicMethodDesc::StubTailCallStoreArgs: return "IL_STUB_StoreTailCallArgs"; case DynamicMethodDesc::StubTailCallCallTarget: return "IL_STUB_CallTailCallTarget"; + case DynamicMethodDesc::StubVirtualStaticMethodDispatch: return "IL_STUB_bVirtualStaticMethodDispatch"; default: UNREACHABLE_MSG("Unknown stub type"); } @@ -319,6 +320,11 @@ MethodDesc* ILStubCache::CreateNewMethodDesc(LoaderHeap* pCreationHeap, MethodTa } } + if (SF_IsVirtualStaticMethodDispatchStub(dwStubFlags)) + { + pMD->SetILStubType(DynamicMethodDesc::StubVirtualStaticMethodDispatch); + } + // if we made it this far, we can set a more descriptive stub name #ifdef FEATURE_ARRAYSTUB_AS_IL if (SF_IsArrayOpStub(dwStubFlags)) @@ -397,6 +403,45 @@ MethodTable* ILStubCache::GetOrCreateStubMethodTable(Module* pModule) RETURN m_pStubMT; } + +MethodDesc* ILStubCache::LookupStubMethodDesc(ILStubHashBlob* pHashBlob) +{ + CrstHolder ch(&m_crst); + + // Try to find the stub + const ILStubCacheEntry* phe = m_hashMap.LookupPtr(pHashBlob); + if (phe) + { + return phe->m_pMethodDesc; + } + + return NULL; +} + +MethodDesc* ILStubCache::InsertStubMethodDesc(MethodDesc *pMD, ILStubHashBlob* pHashBlob) +{ + size_t cbSizeOfBlob = pHashBlob->m_cbSizeOfBlob; + + CrstHolder ch(&m_crst); + + const ILStubCacheEntry* phe = m_hashMap.LookupPtr(pHashBlob); + if (phe == NULL) + { + AllocMemHolder pBlobHolder( m_heap->AllocMem(S_SIZE_T(cbSizeOfBlob)) ); + ILStubHashBlob* pBlob = pBlobHolder; + _ASSERTE(pHashBlob->m_cbSizeOfBlob == cbSizeOfBlob); + memcpy(pBlob, pHashBlob, cbSizeOfBlob); + + m_hashMap.Add(ILStubCacheEntry{ pMD, pBlob }); + pBlobHolder.SuppressRelease(); + + return pMD; + } + else + { + return phe->m_pMethodDesc; + } +} #endif // DACCESS_COMPILE // diff --git a/src/coreclr/vm/ilstubcache.h b/src/coreclr/vm/ilstubcache.h index d70d1baac6c60..b101e14f2c4fb 100644 --- a/src/coreclr/vm/ilstubcache.h +++ b/src/coreclr/vm/ilstubcache.h @@ -79,6 +79,12 @@ class ILStubCache final MethodTable* GetOrCreateStubMethodTable(Module* pLoaderModule); + MethodDesc* LookupStubMethodDesc(ILStubHashBlob* pHashBlob); + + // Insert a stub MethodDesc into the cache + // If one is already present at a matching hash blob, return the already present one, otherwise, return pMD + MethodDesc* InsertStubMethodDesc(MethodDesc* pMD, ILStubHashBlob* pHashBlob); + private: // static static MethodDesc* CreateNewMethodDesc( LoaderHeap* pCreationHeap, diff --git a/src/coreclr/vm/inlinetracking.cpp b/src/coreclr/vm/inlinetracking.cpp index c22f012bc58cb..850d7d7ee23ea 100644 --- a/src/coreclr/vm/inlinetracking.cpp +++ b/src/coreclr/vm/inlinetracking.cpp @@ -189,6 +189,82 @@ void InlineTrackingMap::AddInlining(MethodDesc *inliner, MethodDesc *inlinee) } } +NativeImageInliningIterator::NativeImageInliningIterator() : + m_pModule(NULL), + m_dynamicBuffer(NULL), + m_dynamicBufferSize(0), + m_dynamicAvailable(0), + m_currentPos(-1) +{ + +} + +HRESULT NativeImageInliningIterator::Reset(Module *pInlinerModule, MethodInModule inlinee) +{ + _ASSERTE(pInlinerModule != NULL); + _ASSERTE(inlinee.m_module != NULL); + + m_pModule = pInlinerModule; + m_inlinee = inlinee; + + HRESULT hr = S_OK; + EX_TRY + { + // Trying to use the existing buffer + BOOL incompleteData; + Module *inlineeModule = m_inlinee.m_module; + mdMethodDef mdInlinee = m_inlinee.m_methodDef; + COUNT_T methodsAvailable = m_pModule->GetReadyToRunInliners(inlineeModule, mdInlinee, m_dynamicBufferSize, m_dynamicBuffer, &incompleteData); + + // If the existing buffer is not large enough, reallocate. + if (methodsAvailable > m_dynamicBufferSize) + { + COUNT_T newSize = max(methodsAvailable, s_bufferSize); + m_dynamicBuffer = new MethodInModule[newSize]; + m_dynamicBufferSize = newSize; + + methodsAvailable = m_pModule->GetReadyToRunInliners(inlineeModule, mdInlinee, m_dynamicBufferSize, m_dynamicBuffer, &incompleteData); + _ASSERTE(methodsAvailable <= m_dynamicBufferSize); + } + + m_dynamicAvailable = methodsAvailable; + } + EX_CATCH_HRESULT(hr); + + if (FAILED(hr)) + { + m_currentPos = s_failurePos; + } + else + { + m_currentPos = -1; + } + + return hr; +} + +BOOL NativeImageInliningIterator::Next() +{ + if (m_currentPos == s_failurePos) + { + return FALSE; + } + + m_currentPos++; + return m_currentPos < m_dynamicAvailable; +} + +MethodInModule NativeImageInliningIterator::GetMethod() +{ + // this evaluates true when m_currentPos == s_failurePos or m_currentPos == (COUNT_T)-1 + // m_currentPos is an unsigned type + if (m_currentPos >= m_dynamicAvailable) + { + return MethodInModule(); + } + + return m_dynamicBuffer[m_currentPos]; +} #endif //!DACCESS_COMPILE #ifdef FEATURE_READYTORUN @@ -503,7 +579,7 @@ COUNT_T CrossModulePersistentInlineTrackingMapR2R::GetInliners(PTR_Module inline CONTRACTL { THROWS; - GC_TRIGGERS; + GC_NOTRIGGER; MODE_ANY; } CONTRACTL_END; diff --git a/src/coreclr/vm/inlinetracking.h b/src/coreclr/vm/inlinetracking.h index 01ae910cc4e8a..1cb7bd76b2a41 100644 --- a/src/coreclr/vm/inlinetracking.h +++ b/src/coreclr/vm/inlinetracking.h @@ -149,7 +149,29 @@ class InlineTrackingMap : public SHash < InlineTrackingMapTraits > typedef DPTR(InlineTrackingMap) PTR_InlineTrackingMap; +#ifndef DACCESS_COMPILE +// Used to walk the NGEN/R2R inlining data +class NativeImageInliningIterator +{ +public: + NativeImageInliningIterator(); + + HRESULT Reset(Module* pInlinerModule, MethodInModule inlinee); + BOOL Next(); + MethodInModule GetMethod(); +private: + Module *m_pModule; + MethodInModule m_inlinee; + NewArrayHolder m_dynamicBuffer; + COUNT_T m_dynamicBufferSize; + COUNT_T m_dynamicAvailable; + COUNT_T m_currentPos; + + const COUNT_T s_bufferSize = 10; + const COUNT_T s_failurePos = -2; +}; +#endif // DACCESS_COMPILE // ------------------------------------ Persistance support ---------------------------------------------------------- @@ -392,7 +414,7 @@ class JITInlineTrackingMap CONTRACTL { NOTHROW; - GC_TRIGGERS; + GC_NOTRIGGER; CAN_TAKE_LOCK; MODE_ANY; } @@ -413,7 +435,7 @@ class JITInlineTrackingMap static void StaticInitialize() { WRAPPER_NO_CONTRACT; - s_mapCrst.Init(CrstJitInlineTrackingMap); + s_mapCrst.Init(CrstJitInlineTrackingMap, CrstFlags(CRST_DEBUGGER_THREAD)); } static CrstBase *GetMapCrst() { return &s_mapCrst; } diff --git a/src/coreclr/vm/jithelpers.cpp b/src/coreclr/vm/jithelpers.cpp index ecf03922039c4..e78f312ea3f58 100644 --- a/src/coreclr/vm/jithelpers.cpp +++ b/src/coreclr/vm/jithelpers.cpp @@ -4428,6 +4428,38 @@ HCIMPL3(void, JIT_ThrowAmbiguousResolutionException, } HCIMPLEND +/*********************************************************************/ +HCIMPL3(void, JIT_ThrowEntryPointNotFoundException, + MethodDesc *method, + MethodTable *interfaceType, + MethodTable *targetType) +{ + FCALL_CONTRACT; + + HELPER_METHOD_FRAME_BEGIN_0(); // Set up a frame + + SString strMethodName; + SString strInterfaceName; + SString strTargetClassName; + SString assemblyName; + + targetType->GetAssembly()->GetDisplayName(assemblyName); + TypeString::AppendMethod(strMethodName, method, method->GetMethodInstantiation()); + TypeString::AppendType(strInterfaceName, TypeHandle(interfaceType)); + TypeString::AppendType(strTargetClassName, targetType); + + COMPlusThrow( + kEntryPointNotFoundException, + IDS_CLASSLOAD_METHOD_NOT_IMPLEMENTED, + strMethodName, + strInterfaceName, + strTargetClassName, + assemblyName); + + HELPER_METHOD_FRAME_END(); // Set up a frame +} +HCIMPLEND + /*********************************************************************/ HCIMPL0(void, JIT_Overflow) { diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index 4beafb36745cb..b7dcf9eacd88e 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -5069,6 +5069,7 @@ void CEEInfo::getCallInfo( BOOL fResolvedConstraint = FALSE; BOOL fForceUseRuntimeLookup = FALSE; + BOOL fAbstractSVM = FALSE; MethodDesc * pMDAfterConstraintResolution = pMD; if (constrainedType.IsNull()) @@ -5149,11 +5150,21 @@ void CEEInfo::getCallInfo( #ifdef FEATURE_DEFAULT_INTERFACES else if (directMethod && pMD->IsStatic()) { - // Default interface implementation of static virtual method - pMDAfterConstraintResolution = directMethod; - fResolvedConstraint = TRUE; - pResult->thisTransform = CORINFO_NO_THIS_TRANSFORM; - exactType = directMethod->GetMethodTable(); + if (directMethod->IsAbstract()) + { + // This is the result when we call a SVM which is abstract, or re-abstracted + directMethod = NULL; + pResult->thisTransform = CORINFO_NO_THIS_TRANSFORM; + fAbstractSVM = true; + } + else + { + // Default interface implementation of static virtual method + pMDAfterConstraintResolution = directMethod; + fResolvedConstraint = TRUE; + pResult->thisTransform = CORINFO_NO_THIS_TRANSFORM; + exactType = directMethod->GetMethodTable(); + } } #endif else if (constrainedType.IsValueType()) @@ -5650,7 +5661,14 @@ void CEEInfo::getCallInfo( // shared generics is covered by the ConstrainedMethodEntrySlot dictionary entry. pResult->kind = CORINFO_CALL; pResult->accessAllowed = CORINFO_ACCESS_ILLEGAL; - pResult->callsiteCalloutHelper.helperNum = CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION; + if (fAbstractSVM) + { + pResult->callsiteCalloutHelper.helperNum = CORINFO_HELP_THROW_ENTRYPOINT_NOT_FOUND_EXCEPTION; + } + else + { + pResult->callsiteCalloutHelper.helperNum = CORINFO_HELP_THROW_AMBIGUOUS_RESOLUTION_EXCEPTION; + } pResult->callsiteCalloutHelper.numArgs = 3; pResult->callsiteCalloutHelper.args[0].methodHandle = (CORINFO_METHOD_HANDLE)pMD; pResult->callsiteCalloutHelper.args[0].argType = CORINFO_HELPER_ARG_TYPE_Method; diff --git a/src/coreclr/vm/method.cpp b/src/coreclr/vm/method.cpp index 2e147e90dab80..ea77443f68df9 100644 --- a/src/coreclr/vm/method.cpp +++ b/src/coreclr/vm/method.cpp @@ -935,6 +935,34 @@ PCODE MethodDesc::GetNativeCode() return GetStableEntryPoint(); } +PCODE MethodDesc::GetNativeCodeReJITAware() +{ + WRAPPER_NO_CONTRACT; + SUPPORTS_DAC; + + PCODE pDefaultCode = GetNativeCode(); + if (pDefaultCode != NULL) + { + return pDefaultCode; + } + + { + CodeVersionManager *pCodeVersionManager = GetCodeVersionManager(); + CodeVersionManager::LockHolder codeVersioningLockHolder; + ILCodeVersion ilVersion = pCodeVersionManager->GetActiveILCodeVersion(PTR_MethodDesc(this)); + if (!ilVersion.IsDefaultVersion()) + { + NativeCodeVersion activeNativeCodeVersion = ilVersion.GetActiveNativeCodeVersion(PTR_MethodDesc(this)); + if (!activeNativeCodeVersion.IsNull()) + { + return activeNativeCodeVersion.GetNativeCode(); + } + } + + return NULL; + } +} + //******************************************************************************* PTR_PCODE MethodDesc::GetAddrOfNativeCodeSlot() { diff --git a/src/coreclr/vm/method.hpp b/src/coreclr/vm/method.hpp index 02783201fcd3a..a315ca2d6fcf7 100644 --- a/src/coreclr/vm/method.hpp +++ b/src/coreclr/vm/method.hpp @@ -1387,6 +1387,14 @@ class MethodDesc return GetNativeCode() != NULL; } + // Perf warning: takes the CodeVersionManagerLock on every call + BOOL HasNativeCodeReJITAware() + { + LIMITED_METHOD_DAC_CONTRACT; + + return GetNativeCodeReJITAware() != NULL; + } + BOOL SetNativeCodeInterlocked(PCODE addr, PCODE pExpected = NULL); PTR_PCODE GetAddrOfNativeCodeSlot(); @@ -1443,6 +1451,11 @@ class MethodDesc // Returns the address of the native code. PCODE GetNativeCode(); + // Returns GetNativeCode() if it exists, but also checks to see if there + // is a non-default IL code version and returns that. + // Perf warning: takes the CodeVersionManagerLock on every call + PCODE GetNativeCodeReJITAware(); + #if defined(FEATURE_JIT_PITCHING) bool IsPitchable(); void PitchNativeCode(); @@ -2458,6 +2471,8 @@ class DynamicMethodDesc : public StoredSigMethodDesc StubTailCallStoreArgs, StubTailCallCallTarget, + StubVirtualStaticMethodDispatch, + StubLast }; diff --git a/src/coreclr/vm/methoddescbackpatchinfo.h b/src/coreclr/vm/methoddescbackpatchinfo.h index d9c706cac6530..54a326d136f5d 100644 --- a/src/coreclr/vm/methoddescbackpatchinfo.h +++ b/src/coreclr/vm/methoddescbackpatchinfo.h @@ -80,7 +80,7 @@ class MethodDescBackpatchInfoTracker static void StaticInitialize() { WRAPPER_NO_CONTRACT; - s_lock.Init(CrstMethodDescBackpatchInfoTracker); + s_lock.Init(CrstMethodDescBackpatchInfoTracker, CrstFlags(CRST_DEBUGGER_THREAD)); } #endif diff --git a/src/coreclr/vm/prestub.cpp b/src/coreclr/vm/prestub.cpp index 80b1f87928e58..014d06c000b39 100644 --- a/src/coreclr/vm/prestub.cpp +++ b/src/coreclr/vm/prestub.cpp @@ -372,6 +372,15 @@ PCODE MethodDesc::PrepareILBasedCode(PrepareCodeConfig* pConfig) shouldTier = false; } #endif // FEATURE_TIERED_COMPILATION + NativeCodeVersion nativeCodeVersion = pConfig->GetCodeVersion(); + if (shouldTier && !nativeCodeVersion.IsDefaultVersion()) + { + CodeVersionManager::LockHolder codeVersioningLockHolder; + if (pConfig->GetCodeVersion().GetILCodeVersion().IsDeoptimized()) + { + shouldTier = false; + } + } if (pConfig->MayUsePrecompiledCode()) { diff --git a/src/coreclr/vm/rejit.cpp b/src/coreclr/vm/rejit.cpp index a603fad19354c..c4f7394a93870 100644 --- a/src/coreclr/vm/rejit.cpp +++ b/src/coreclr/vm/rejit.cpp @@ -147,11 +147,6 @@ #include "../debug/ee/controller.h" #include "codeversion.h" -// This is just used as a unique id. Overflow is OK. If we happen to have more than 4+Billion rejits -// and somehow manage to not run out of memory, we'll just have to redefine ReJITID as size_t. -/* static */ -static ReJITID s_GlobalReJitId = 1; - /* static */ CrstStatic ReJitManager::s_csGlobalRequest; @@ -169,6 +164,10 @@ CORJIT_FLAGS ReJitManager::JitFlagsFromProfCodegenFlags(DWORD dwCodegenFlags) { jitFlags.Set(CORJIT_FLAGS::CORJIT_FLAG_DEBUG_CODE); } + if ((dwCodegenFlags & COR_PRF_CODEGEN_DEBUG_INFO) != 0) + { + jitFlags.Set(CORJIT_FLAGS::CORJIT_FLAG_DEBUG_INFO); + } if ((dwCodegenFlags & COR_PRF_CODEGEN_DISABLE_INLINING) != 0) { jitFlags.Set(CORJIT_FLAGS::CORJIT_FLAG_NO_INLINING); @@ -418,82 +417,6 @@ COR_IL_MAP* ProfilerFunctionControl::GetInstrumentedMapEntries() } #ifndef DACCESS_COMPILE -NativeImageInliningIterator::NativeImageInliningIterator() : - m_pModule(NULL), - m_dynamicBuffer(NULL), - m_dynamicBufferSize(0), - m_dynamicAvailable(0), - m_currentPos(-1) -{ - -} - -HRESULT NativeImageInliningIterator::Reset(Module *pInlinerModule, MethodInModule inlinee) -{ - _ASSERTE(pInlinerModule != NULL); - _ASSERTE(inlinee.m_module != NULL); - - m_pModule = pInlinerModule; - m_inlinee = inlinee; - - HRESULT hr = S_OK; - EX_TRY - { - // Trying to use the existing buffer - BOOL incompleteData; - Module *inlineeModule = m_inlinee.m_module; - mdMethodDef mdInlinee = m_inlinee.m_methodDef; - COUNT_T methodsAvailable = m_pModule->GetReadyToRunInliners(inlineeModule, mdInlinee, m_dynamicBufferSize, m_dynamicBuffer, &incompleteData); - - // If the existing buffer is not large enough, reallocate. - if (methodsAvailable > m_dynamicBufferSize) - { - COUNT_T newSize = max(methodsAvailable, s_bufferSize); - m_dynamicBuffer = new MethodInModule[newSize]; - m_dynamicBufferSize = newSize; - - methodsAvailable = m_pModule->GetReadyToRunInliners(inlineeModule, mdInlinee, m_dynamicBufferSize, m_dynamicBuffer, &incompleteData); - _ASSERTE(methodsAvailable <= m_dynamicBufferSize); - } - - m_dynamicAvailable = methodsAvailable; - } - EX_CATCH_HRESULT(hr); - - if (FAILED(hr)) - { - m_currentPos = s_failurePos; - } - else - { - m_currentPos = -1; - } - - return hr; -} - -BOOL NativeImageInliningIterator::Next() -{ - if (m_currentPos == s_failurePos) - { - return FALSE; - } - - m_currentPos++; - return m_currentPos < m_dynamicAvailable; -} - -MethodInModule NativeImageInliningIterator::GetMethod() -{ - // this evaluates true when m_currentPos == s_failurePos or m_currentPos == (COUNT_T)-1 - // m_currentPos is an unsigned type - if (m_currentPos >= m_dynamicAvailable) - { - return MethodInModule(); - } - - return m_dynamicBuffer[m_currentPos]; -} //--------------------------------------------------------------------------------------- // ReJitManager implementation @@ -802,7 +725,6 @@ HRESULT ReJitManager::UpdateNativeInlinerActiveILVersions( // Iterate through all modules, for any that are NGEN or R2R need to check if there are inliners there and call // RequestReJIT on them - // TODO: is the default domain enough for coreclr? AppDomain::AssemblyIterator domainAssemblyIterator = SystemDomain::System()->DefaultDomain()->IterateAssembliesEx((AssemblyIterationFlags) (kIncludeLoaded | kIncludeExecution)); CollectibleAssemblyHolder pDomainAssembly; NativeImageInliningIterator inlinerIter; @@ -975,7 +897,7 @@ HRESULT ReJitManager::BindILVersion( // Either there was no ILCodeVersion yet for this MethodDesc OR whatever we've found // couldn't be reused (and needed to be reverted). Create a new ILCodeVersion to return // to the caller. - HRESULT hr = pCodeVersionManager->AddILCodeVersion(pModule, methodDef, InterlockedIncrement(reinterpret_cast(&s_GlobalReJitId)), pILCodeVersion); + HRESULT hr = pCodeVersionManager->AddILCodeVersion(pModule, methodDef, pILCodeVersion, FALSE); pILCodeVersion->SetEnableReJITCallback(fDoCallback); return hr; } diff --git a/src/coreclr/vm/rejit.h b/src/coreclr/vm/rejit.h index 17d32aa75a107..c54c567e592a7 100644 --- a/src/coreclr/vm/rejit.h +++ b/src/coreclr/vm/rejit.h @@ -68,30 +68,6 @@ class ProfilerFunctionControl : public ICorProfilerFunctionControl #endif // FEATURE_REJIT -#ifndef DACCESS_COMPILE -// Used to walk the NGEN/R2R inlining data -class NativeImageInliningIterator -{ -public: - NativeImageInliningIterator(); - - HRESULT Reset(Module* pInlinerModule, MethodInModule inlinee); - BOOL Next(); - MethodInModule GetMethod(); - -private: - Module *m_pModule; - MethodInModule m_inlinee; - NewArrayHolder m_dynamicBuffer; - COUNT_T m_dynamicBufferSize; - COUNT_T m_dynamicAvailable; - COUNT_T m_currentPos; - - const COUNT_T s_bufferSize = 10; - const COUNT_T s_failurePos = -2; -}; -#endif // DACCESS_COMPILE - //--------------------------------------------------------------------------------------- // The big honcho. One of these per AppDomain, plus one for the // SharedDomain. Contains the hash table of ReJitInfo structures to manage diff --git a/src/coreclr/vm/stubgen.cpp b/src/coreclr/vm/stubgen.cpp index d96b3779f4f91..78e7fb621c90d 100644 --- a/src/coreclr/vm/stubgen.cpp +++ b/src/coreclr/vm/stubgen.cpp @@ -1237,6 +1237,11 @@ void ILCodeStream::EmitCLT_UN() WRAPPER_NO_CONTRACT; Emit(CEE_CLT_UN, -1, 0); } +void ILCodeStream::EmitCONSTRAINED(int token) +{ + WRAPPER_NO_CONTRACT; + Emit(CEE_CONSTRAINED, 0, token); +} void ILCodeStream::EmitCONV_I() { WRAPPER_NO_CONTRACT; diff --git a/src/coreclr/vm/stubgen.h b/src/coreclr/vm/stubgen.h index 5c83f23a94aed..595de649220cc 100644 --- a/src/coreclr/vm/stubgen.h +++ b/src/coreclr/vm/stubgen.h @@ -720,6 +720,7 @@ class ILCodeStream void EmitCGT_UN (); void EmitCLT (); void EmitCLT_UN (); + void EmitCONSTRAINED(int token); void EmitCONV_I (); void EmitCONV_I1 (); void EmitCONV_I2 (); diff --git a/src/coreclr/vm/stublink.h b/src/coreclr/vm/stublink.h index 9151e48fe0560..bd926001ae719 100644 --- a/src/coreclr/vm/stublink.h +++ b/src/coreclr/vm/stublink.h @@ -467,10 +467,10 @@ class Stub UNWIND_INFO_BIT = 0x08000000, THUNK_BIT = 0x04000000, - CODEBYTES_MASK = UNWIND_INFO_BIT - 1, + CODEBYTES_MASK = THUNK_BIT - 1, MAX_CODEBYTES = CODEBYTES_MASK + 1, }; - static_assert_no_msg(CODEBYTES_MASK < UNWIND_INFO_BIT); + static_assert_no_msg(CODEBYTES_MASK < THUNK_BIT); public: //------------------------------------------------------------------- diff --git a/src/coreclr/vm/threadstatics.cpp b/src/coreclr/vm/threadstatics.cpp index af1466f2d15bf..e3430acf8e4ff 100644 --- a/src/coreclr/vm/threadstatics.cpp +++ b/src/coreclr/vm/threadstatics.cpp @@ -160,7 +160,7 @@ void ThreadLocalBlock::EnsureModuleIndex(ModuleIndex index) } if (pOldModuleSlots != NULL) - delete pOldModuleSlots; + delete[] pOldModuleSlots; } #endif diff --git a/src/coreclr/vm/tieredcompilation.cpp b/src/coreclr/vm/tieredcompilation.cpp index c08e945ccab00..78a1d69c658f2 100644 --- a/src/coreclr/vm/tieredcompilation.cpp +++ b/src/coreclr/vm/tieredcompilation.cpp @@ -268,6 +268,7 @@ void TieredCompilationManager::AsyncPromoteToTier1( _ASSERTE(!currentNativeCodeVersion.IsNull()); _ASSERTE(!currentNativeCodeVersion.IsFinalTier()); _ASSERTE(createTieringBackgroundWorkerRef != nullptr); + _ASSERTE(!currentNativeCodeVersion.GetILCodeVersion().IsDeoptimized()); NativeCodeVersion t1NativeCodeVersion; HRESULT hr; @@ -1003,7 +1004,7 @@ void TieredCompilationManager::ActivateCodeVersion(NativeCodeVersion nativeCodeV bool mayHaveEntryPointSlotsToBackpatch = pMethod->MayHaveEntryPointSlotsToBackpatch(); MethodDescBackpatchInfoTracker::ConditionalLockHolder slotBackpatchLockHolder(mayHaveEntryPointSlotsToBackpatch); CodeVersionManager::LockHolder codeVersioningLockHolder; - + // As long as we are exclusively using any non-JumpStamp publishing for tiered compilation // methods this first attempt should succeed ilParent = nativeCodeVersion.GetILCodeVersion(); diff --git a/src/coreclr/vm/tieredcompilation.h b/src/coreclr/vm/tieredcompilation.h index bf078dbc2979e..40caf063ad461 100644 --- a/src/coreclr/vm/tieredcompilation.h +++ b/src/coreclr/vm/tieredcompilation.h @@ -75,9 +75,14 @@ class TieredCompilationManager private: void OptimizeMethod(NativeCodeVersion nativeCodeVersion); + HRESULT DeoptimizeMethodHelper(Module* pModule, mdMethodDef methodDef); + NativeCodeVersion GetNextMethodToOptimize(); BOOL CompileCodeVersion(NativeCodeVersion nativeCodeVersion); void ActivateCodeVersion(NativeCodeVersion nativeCodeVersion); +public: + HRESULT DeoptimizeMethod(Module* pModule, mdMethodDef methodDef); + HRESULT IsMethodDeoptimized(Module *pModule, mdMethodDef methodDef, BOOL *pResult); #ifndef DACCESS_COMPILE public: diff --git a/src/libraries/Common/src/System/Security/Cryptography/SP800108HmacCounterKdf.cs b/src/libraries/Common/src/System/Security/Cryptography/SP800108HmacCounterKdf.cs index a9f37b0fb11a4..81059c89fd4aa 100644 --- a/src/libraries/Common/src/System/Security/Cryptography/SP800108HmacCounterKdf.cs +++ b/src/libraries/Common/src/System/Security/Cryptography/SP800108HmacCounterKdf.cs @@ -194,10 +194,10 @@ public static byte[] DeriveBytes(byte[] key, HashAlgorithmName hashAlgorithm, by /// is not a known or supported hash algorithm. /// /// - /// or contains text that cannot be converted to UTF8. + /// or contains text that cannot be converted to UTF-8. /// /// - /// and will be converted to bytes using the UTF8 encoding. + /// and will be converted to bytes using the UTF-8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -310,13 +310,13 @@ public static void DeriveBytes(ReadOnlySpan key, HashAlgorithmName hashAlg /// is not a known or supported hash algorithm. /// /// - /// or contains text that cannot be converted to UTF8. + /// or contains text that cannot be converted to UTF-8. /// /// /// The current platform does not have a supported implementation of HMAC. /// /// - /// and will be converted to bytes using the UTF8 encoding. + /// and will be converted to bytes using the UTF-8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -350,13 +350,13 @@ public static byte[] DeriveBytes(ReadOnlySpan key, HashAlgorithmName hashA /// is not a known or supported hash algorithm. /// /// - /// or contains text that cannot be converted to UTF8. + /// or contains text that cannot be converted to UTF-8. /// /// /// The current platform does not have a supported implementation of HMAC. /// /// - /// and will be converted to bytes using the UTF8 encoding. + /// and will be converted to bytes using the UTF-8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -458,10 +458,10 @@ public void DeriveKey(ReadOnlySpan label, ReadOnlySpan context, Span /// that can be derived. /// /// - /// or contains text that cannot be converted to UTF8. + /// or contains text that cannot be converted to UTF-8. /// /// - /// and will be converted to bytes using the UTF8 encoding. + /// and will be converted to bytes using the UTF-8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -484,10 +484,10 @@ public byte[] DeriveKey(ReadOnlySpan label, ReadOnlySpan context, in /// is larger than the maximum number of bytes that can be derived. /// /// - /// or contains text that cannot be converted to UTF8. + /// or contains text that cannot be converted to UTF-8. /// /// - /// and will be converted to bytes using the UTF8 encoding. + /// and will be converted to bytes using the UTF-8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// @@ -518,10 +518,10 @@ public void DeriveKey(ReadOnlySpan label, ReadOnlySpan context, Span /// that can be derived. /// /// - /// or contains text that cannot be converted to UTF8. + /// or contains text that cannot be converted to UTF-8. /// /// - /// and will be converted to bytes using the UTF8 encoding. + /// and will be converted to bytes using the UTF-8 encoding. /// for other encodings, perform the conversion using the desired encoding and use an overload which accepts the /// label and context as a sequence of bytes. /// diff --git a/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj b/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj index 6826c18679d28..cbb1f4ed69be9 100644 --- a/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj +++ b/src/libraries/Common/tests/TestUtilities/TestUtilities.csproj @@ -11,7 +11,9 @@ true - + @@ -35,7 +37,8 @@ - + - - - - - - - - - - - - - + + + + + + + + + + + + + - - + + - - - - - + + + + + - - + + @@ -91,10 +116,4 @@ - - - - - - diff --git a/src/libraries/Microsoft.Extensions.Http/ref/Microsoft.Extensions.Http.cs b/src/libraries/Microsoft.Extensions.Http/ref/Microsoft.Extensions.Http.cs index 3a60d5920adbc..9071751734f94 100644 --- a/src/libraries/Microsoft.Extensions.Http/ref/Microsoft.Extensions.Http.cs +++ b/src/libraries/Microsoft.Extensions.Http/ref/Microsoft.Extensions.Http.cs @@ -5,21 +5,28 @@ namespace Microsoft.Extensions.DependencyInjection { public static partial class HttpClientBuilderExtensions { + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddDefaultLogger(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where THandler : System.Net.Http.DelegatingHandler { throw null; } + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddLogger(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func httpClientLoggerFactory, bool wrapHandlersPipeline = false) { throw null; } + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddLogger(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, bool wrapHandlersPipeline = false) where TLogger : Microsoft.Extensions.Http.Logging.IHttpClientLogger { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient<[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)] TClient>(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where TClient : class { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func factory) where TClient : class { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func factory) where TClient : class { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddTypedClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where TClient : class where TImplementation : class, TClient { throw null; } + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureAdditionalHttpMessageHandlers(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action, System.IServiceProvider> configureAdditionalHandlers) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureClient) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpClient(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureClient) { throw null; } + [System.Obsolete("This method has been deprecated. Use ConfigurePrimaryHttpMessageHandler or ConfigureAdditionalHttpMessageHandlers instead.")] public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigureHttpMessageHandlerBuilder(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureBuilder) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) where THandler : System.Net.Http.HttpMessageHandler { throw null; } + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Action configureHandler) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder RedactLoggedHeaders(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Collections.Generic.IEnumerable redactedLoggedHeaderNames) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder RedactLoggedHeaders(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.Func shouldRedactHeaderValue) { throw null; } + public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder RemoveAllLoggers(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder) { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder SetHandlerLifetime(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, System.TimeSpan handlerLifetime) { throw null; } #if NET5_0_OR_GREATER [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] @@ -50,6 +57,7 @@ public static partial class HttpClientFactoryServiceCollectionExtensions public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Action configureClient) where TClient : class where TImplementation : class, TClient { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Func factory) where TClient : class where TImplementation : class, TClient { throw null; } public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddHttpClient(this Microsoft.Extensions.DependencyInjection.IServiceCollection services, string name, System.Func factory) where TClient : class where TImplementation : class, TClient { throw null; } + public static Microsoft.Extensions.DependencyInjection.IServiceCollection ConfigureHttpClientDefaults(Microsoft.Extensions.DependencyInjection.IServiceCollection services, System.Action configure) { throw null; } } public partial interface IHttpClientBuilder { @@ -120,6 +128,18 @@ public LoggingScopeHttpMessageHandler(Microsoft.Extensions.Logging.ILogger logge [System.Diagnostics.DebuggerStepThroughAttribute] protected override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { throw null; } } + public partial interface IHttpClientAsyncLogger : Microsoft.Extensions.Http.Logging.IHttpClientLogger + { + System.Threading.Tasks.ValueTask LogRequestStartAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.ValueTask LogRequestStopAsync(object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage response, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken = default); + System.Threading.Tasks.ValueTask LogRequestFailedAsync(object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage? response, System.Exception exception, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken = default); + } + public partial interface IHttpClientLogger + { + object? LogRequestStart(System.Net.Http.HttpRequestMessage request); + void LogRequestStop(object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage response, System.TimeSpan elapsed); + void LogRequestFailed(object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage? response, System.Exception exception, System.TimeSpan elapsed); + } } namespace System.Net.Http { diff --git a/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs b/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs index 7e2967ab36f30..ec14a145c0394 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/DefaultHttpClientFactory.cs @@ -168,6 +168,12 @@ void Configure(HttpMessageHandlerBuilder b) { options.HttpMessageHandlerBuilderActions[i](b); } + + // Logging is added separately in the end. But for now it should be still possible to override it via filters... + foreach (Action action in options.LoggingBuilderActions) + { + action(b); + } } } catch diff --git a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/DefaultHttpClientBuilder.cs b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/DefaultHttpClientBuilder.cs index 8e1e3daf9096b..c4913edbd09be 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/DefaultHttpClientBuilder.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/DefaultHttpClientBuilder.cs @@ -1,14 +1,21 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Diagnostics; +using System.Linq; + namespace Microsoft.Extensions.DependencyInjection { internal sealed class DefaultHttpClientBuilder : IHttpClientBuilder { public DefaultHttpClientBuilder(IServiceCollection services, string name) { - Services = services; - Name = name; + // The tracker references a descriptor. It marks the position of where default services are added to the collection. + var tracker = (DefaultHttpClientConfigurationTracker?)services.Single(sd => sd.ServiceType == typeof(DefaultHttpClientConfigurationTracker)).ImplementationInstance; + Debug.Assert(tracker != null); + + Services = new DefaultHttpClientBuilderServiceCollection(services, name == null, tracker); + Name = name!; } public string Name { get; } diff --git a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientBuilderExtensions.cs b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientBuilderExtensions.cs index e3329e829a4ba..4ccf2432c5ee1 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientBuilderExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientBuilderExtensions.cs @@ -17,7 +17,7 @@ namespace Microsoft.Extensions.DependencyInjection /// /// Extension methods for configuring an /// - public static class HttpClientBuilderExtensions + public static partial class HttpClientBuilderExtensions { /// /// Adds a delegate that will be used to configure a named . @@ -221,6 +221,32 @@ public static IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(th return builder; } + /// + /// Adds a delegate that will be used to configure the primary for a + /// named . + /// + /// The . + /// A delegate that is used to configure a previously set or default primary . + /// An that can be used to configure the client. + /// + /// + /// The argument provided to will be + /// a reference to a scoped service provider that shares the lifetime of the handler being constructed. + /// + /// + public static IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(this IHttpClientBuilder builder, Action configureHandler) + { + ThrowHelper.ThrowIfNull(builder); + ThrowHelper.ThrowIfNull(configureHandler); + + builder.Services.Configure(builder.Name, options => + { + options.HttpMessageHandlerBuilderActions.Add(b => configureHandler(b.PrimaryHandler, b.Services)); + }); + + return builder; + } + /// /// Adds a delegate that will be used to configure message handlers using /// for a named . @@ -228,6 +254,7 @@ public static IHttpClientBuilder ConfigurePrimaryHttpMessageHandler(th /// The . /// A delegate that is used to configure an . /// An that can be used to configure the client. + [Obsolete("This method has been deprecated. Use ConfigurePrimaryHttpMessageHandler or ConfigureAdditionalHttpMessageHandlers instead.")] public static IHttpClientBuilder ConfigureHttpMessageHandlerBuilder(this IHttpClientBuilder builder, Action configureBuilder) { ThrowHelper.ThrowIfNull(builder); @@ -342,6 +369,11 @@ public static IHttpClientBuilder UseSocketsHttpHandler(this IHttpClientBuilder b this IHttpClientBuilder builder, bool validateSingleType) where TClient : class { + if (builder.Name is null) + { + throw new InvalidOperationException($"{nameof(HttpClientBuilderExtensions.AddTypedClient)} isn't supported with {nameof(HttpClientFactoryServiceCollectionExtensions.ConfigureHttpClientDefaults)}."); + } + ReserveClient(builder, typeof(TClient), builder.Name, validateSingleType); builder.Services.AddTransient(s => AddTransientHelper(s, builder)); @@ -598,6 +630,26 @@ public static IHttpClientBuilder SetHandlerLifetime(this IHttpClientBuilder buil return builder; } + /// + /// Adds a delegate that will be used to configure additional message handlers using + /// for a named . + /// + /// The . + /// A delegate that is used to configure a collection of s. + /// An that can be used to configure the client. + public static IHttpClientBuilder ConfigureAdditionalHttpMessageHandlers(this IHttpClientBuilder builder, Action, IServiceProvider> configureAdditionalHandlers) + { + ThrowHelper.ThrowIfNull(builder); + ThrowHelper.ThrowIfNull(configureAdditionalHandlers); + + builder.Services.Configure(builder.Name, options => + { + options.HttpMessageHandlerBuilderActions.Add(b => configureAdditionalHandlers(b.AdditionalHandlers, b.Services)); + }); + + return builder; + } + // See comments on HttpClientMappingRegistry. private static void ReserveClient(IHttpClientBuilder builder, Type type, string name, bool validateSingleType) { diff --git a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientFactoryServiceCollectionExtensions.cs b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientFactoryServiceCollectionExtensions.cs index 08072f0b43987..e5dffcfe25340 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientFactoryServiceCollectionExtensions.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/DependencyInjection/HttpClientFactoryServiceCollectionExtensions.cs @@ -2,7 +2,10 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.Collections.Generic; +using System.Diagnostics; using System.Diagnostics.CodeAnalysis; +using System.Linq; using System.Net.Http; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Http; @@ -50,6 +53,9 @@ public static IServiceCollection AddHttpClient(this IServiceCollection services) // because we access it by reaching into the service collection. services.TryAddSingleton(new HttpClientMappingRegistry()); + // This is used to store configuration for the default builder. + services.TryAddSingleton(new DefaultHttpClientConfigurationTracker()); + // Register default client as HttpClient services.TryAddTransient(s => { @@ -59,6 +65,24 @@ public static IServiceCollection AddHttpClient(this IServiceCollection services) return services; } + /// + /// Adds a delegate that will be used to configure all instances. + /// + /// The . + /// A delegate that is used to configure an . + /// The . + public static IServiceCollection ConfigureHttpClientDefaults(this IServiceCollection services, Action configure) + { + ThrowHelper.ThrowIfNull(services); + ThrowHelper.ThrowIfNull(configure); + + AddHttpClient(services); + + configure(new DefaultHttpClientBuilder(services, name: null!)); + + return services; + } + /// /// Adds the and related services to the and configures /// a named . diff --git a/src/libraries/Microsoft.Extensions.Http/src/HttpClientFactoryOptions.cs b/src/libraries/Microsoft.Extensions.Http/src/HttpClientFactoryOptions.cs index 12ee8585ac0eb..ec82a6ca5e44b 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/HttpClientFactoryOptions.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/HttpClientFactoryOptions.cs @@ -100,5 +100,8 @@ public TimeSpan HandlerLifetime /// /// public bool SuppressHandlerScope { get; set; } + + internal bool SuppressDefaultLogging { get; set; } + internal List> LoggingBuilderActions { get; } = new List>(); } } diff --git a/src/libraries/Microsoft.Extensions.Http/src/Logging/LoggingHttpMessageHandlerBuilderFilter.cs b/src/libraries/Microsoft.Extensions.Http/src/Logging/LoggingHttpMessageHandlerBuilderFilter.cs index 4907c14816609..9b982bbf3cc5b 100644 --- a/src/libraries/Microsoft.Extensions.Http/src/Logging/LoggingHttpMessageHandlerBuilderFilter.cs +++ b/src/libraries/Microsoft.Extensions.Http/src/Logging/LoggingHttpMessageHandlerBuilderFilter.cs @@ -32,6 +32,12 @@ public Action Configure(Action Configure(Action c.BaseAddress = new Uri("http://example.com/")); + serviceCollection.ConfigureHttpClientDefaults(builder => + { + builder.ConfigureHttpClient(c => c.BaseAddress = new Uri("http://default.com/")); + }); + + var services = serviceCollection.BuildServiceProvider(); + var factory = services.GetRequiredService(); + + // Act2 + var client = factory.CreateClient("example.com"); + + // Assert + Assert.NotNull(client); + Assert.Equal("http://example.com/", client.BaseAddress.AbsoluteUri); + } + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] public void AddHttpClient_WithTypedClient_ConfiguresNamedClient() { @@ -742,14 +766,14 @@ public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHt // Arrange var serviceCollection = new ServiceCollection(); - HttpMessageHandlerBuilder builder = null; + IList additionalHandlers = null; // Act1 - serviceCollection.AddHttpClient("example.com").ConfigureHttpMessageHandlerBuilder(b => + serviceCollection.AddHttpClient("example.com").ConfigureAdditionalHttpMessageHandlers((handlers, _) => { - builder = b; + additionalHandlers = handlers; - b.AdditionalHandlers.Add(Mock.Of()); + handlers.Add(Mock.Of()); }); var services = serviceCollection.BuildServiceProvider(); @@ -764,7 +788,7 @@ public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHt Assert.NotNull(client); Assert.Collection( - builder.AdditionalHandlers, + additionalHandlers, h => Assert.IsType(h), h => Assert.NotNull(h), h => Assert.IsType(h)); @@ -883,14 +907,14 @@ public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHt { var serviceCollection = new ServiceCollection(); - HttpMessageHandlerBuilder builder = null; + IList additionalHandlers = null; // Act1 - serviceCollection.AddHttpClient("example.com").ConfigureHttpMessageHandlerBuilder(b => + serviceCollection.AddHttpClient("example.com").ConfigureAdditionalHttpMessageHandlers((handlers, _) => { - builder = b; + additionalHandlers = handlers; - b.AdditionalHandlers.Add(Mock.Of()); + handlers.Add(Mock.Of()); }); var services = serviceCollection.BuildServiceProvider(); @@ -905,7 +929,7 @@ public void AddHttpMessageHandler_WithName_NewHandlerIsSurroundedByLogging_ForHt Assert.IsNotType(handler); Assert.Collection( - builder.AdditionalHandlers, + additionalHandlers, h => Assert.IsType(h), h => Assert.NotNull(h), h => Assert.IsType(h)); @@ -1342,6 +1366,94 @@ public void SuppressScope_True_InScope_DoesNotCreateScope() } } + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + public void AddHttpClient_ConfigurePrimaryHttpMessageHandler_ApplyChangesPrimaryHandler() + { + // Arrange + var testCredentials = new TestCredentials(); + var testBuilder = new TestHttpMessageHandlerBuilder(); + + var serviceCollection = new ServiceCollection(); + serviceCollection.AddSingleton(testBuilder); + serviceCollection + .AddHttpClient("test") + .ConfigurePrimaryHttpMessageHandler((primaryHandler, _) => + { + ((HttpClientHandler)primaryHandler).Credentials = testCredentials; + }); + + var services = serviceCollection.BuildServiceProvider(); + + // Act & Assert + _ = services.GetRequiredService(); + + Assert.Same(testCredentials, ((HttpClientHandler)testBuilder.PrimaryHandler).Credentials); + } + + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + public void AddHttpClient_ConfigureAdditionalHttpMessageHandlers_ModifyAdditionalHandlers() + { + // Arrange + var testCredentials = new TestCredentials(); + var testBuilder = new TestHttpMessageHandlerBuilder(); + + var serviceCollection = new ServiceCollection(); + serviceCollection.AddSingleton(testBuilder); + serviceCollection + .AddHttpClient("test") + .AddHttpMessageHandler(() => Mock.Of()) + .ConfigureAdditionalHttpMessageHandlers((additionalHandlers, _) => + { + additionalHandlers.Clear(); + }); + + var services = serviceCollection.BuildServiceProvider(); + + // Act & Assert + _ = services.GetRequiredService(); + + // Contains two logging handlers added by the filter. + Assert.Equal(2, testBuilder.AdditionalHandlers.Count); + } + + private sealed class TestHttpMessageHandlerBuilder : HttpMessageHandlerBuilder + { + public override string? Name { get; set; } + public override HttpMessageHandler PrimaryHandler { get; set; } = new HttpClientHandler(); + public override IList AdditionalHandlers { get; } = new List(); + + public override HttpMessageHandler Build() => PrimaryHandler; + } + + private sealed class TestCredentials : ICredentials + { + public NetworkCredential GetCredential(Uri uri, string authType) => throw new NotImplementedException(); + } + + [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsThreadingSupported))] + public void AddHttpClientDefaults_MultipleConfigInOneDefault_LastWins() + { + // Arrange + var serviceCollection = new ServiceCollection(); + + // Act1 + serviceCollection.ConfigureHttpClientDefaults(builder => + { + builder.ConfigureHttpClient(c => c.BaseAddress = new Uri("http://default1.com/")); + builder.ConfigureHttpClient(c => c.BaseAddress = new Uri("http://default2.com/")); + }); + + var services = serviceCollection.BuildServiceProvider(); + var factory = services.GetRequiredService(); + + // Act2 + var client = factory.CreateClient(); + + // Assert + Assert.NotNull(client); + Assert.Equal("http://default2.com/", client.BaseAddress.AbsoluteUri); + } + private class TestGenericTypedClient : TestTypedClient { public TestGenericTypedClient(HttpClient httpClient) @@ -1395,7 +1507,7 @@ protected override Task SendAsync(HttpRequestMessage reques { #if NETFRAMEWORK request.Properties[nameof(ScopedService)] = Service; -#else +#else request.Options.Set(new HttpRequestOptionsKey(nameof(ScopedService)), Service); #endif return Task.FromResult(new HttpResponseMessage()); diff --git a/src/libraries/Microsoft.Extensions.Http/tests/Microsoft.Extensions.Http.Tests/Logging/LoggingUriOutputTests.cs b/src/libraries/Microsoft.Extensions.Http/tests/Microsoft.Extensions.Http.Tests/Logging/LoggingUriOutputTests.cs index c7a30a591351e..8f6ca7a8c4e28 100644 --- a/src/libraries/Microsoft.Extensions.Http/tests/Microsoft.Extensions.Http.Tests/Logging/LoggingUriOutputTests.cs +++ b/src/libraries/Microsoft.Extensions.Http/tests/Microsoft.Extensions.Http.Tests/Logging/LoggingUriOutputTests.cs @@ -167,19 +167,5 @@ public void LoggingScopeHttpMessageHandler_LogsAbsoluteUri_Sync() Assert.Equal("HTTP GET http://api.example.com/search?term=Western%20Australia", message.Scope.ToString()); } #endif - - private class TestMessageHandler : HttpClientHandler - { - protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) - { - var response = new HttpResponseMessage(); - - return Task.FromResult(response); - } - -#if NET5_0_OR_GREATER - protected override HttpResponseMessage Send(HttpRequestMessage request, CancellationToken cancellationToken) => new(); -#endif - } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Configuration/src/LoggerFilterConfigureOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Configuration/src/LoggerFilterConfigureOptions.cs index 8a4507cfe4e19..6afe56fe68294 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Configuration/src/LoggerFilterConfigureOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Configuration/src/LoggerFilterConfigureOptions.cs @@ -30,7 +30,7 @@ private void LoadDefaultConfigValues(LoggerFilterOptions options) return; } - options.CaptureScopes = GetCaptureScopesValue(options); + options.CaptureScopes = _configuration.GetValue(nameof(options.CaptureScopes), options.CaptureScopes); foreach (IConfigurationSection configurationSection in _configuration.GetChildren()) { @@ -50,8 +50,6 @@ private void LoadDefaultConfigValues(LoggerFilterOptions options) } } } - - bool GetCaptureScopesValue(LoggerFilterOptions options) => _configuration.GetValue(nameof(options.CaptureScopes), options.CaptureScopes); } private static void LoadRules(LoggerFilterOptions options, IConfigurationSection configurationSection, string? logger) diff --git a/src/libraries/Microsoft.Extensions.Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj b/src/libraries/Microsoft.Extensions.Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj index fa787baa1962a..545e2867e4de6 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj @@ -37,7 +37,7 @@ - + diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleFormatterOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleFormatterOptions.cs index 408afda399db9..2b3d0128b72cd 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleFormatterOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleFormatterOptions.cs @@ -32,22 +32,6 @@ public ConsoleFormatterOptions() { } /// public bool UseUtcTimestamp { get; set; } - internal virtual void Configure(IConfiguration configuration) - { - if (ConsoleLoggerOptions.ParseBool(configuration, nameof(IncludeScopes), out bool includeScopes)) - { - IncludeScopes = includeScopes; - } - - if (configuration[nameof(TimestampFormat)] is string timestampFormat) - { - TimestampFormat = timestampFormat; - } - - if (ConsoleLoggerOptions.ParseBool(configuration, nameof(UseUtcTimestamp), out bool useUtcTimestamp)) - { - UseUtcTimestamp = useUtcTimestamp; - } - } + internal virtual void Configure(IConfiguration configuration) => configuration.Bind(this); } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerConfigureOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerConfigureOptions.cs index dc4b98b0a02ff..b8cd54a488d86 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerConfigureOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerConfigureOptions.cs @@ -26,6 +26,6 @@ public ConsoleLoggerConfigureOptions(ILoggerProviderConfiguration options.Configure(_configuration); + public void Configure(ConsoleLoggerOptions options) => _configuration.Bind(options); } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs index 3ddc4586e9833..4e8d31a3a7395 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerExtensions.Obsolete.cs @@ -87,14 +87,14 @@ private ConsoleLoggerSettingsAdapter(IConsoleLoggerSettings settings) IChangeToken IOptionsChangeTokenSource.GetChangeToken() => _settings.ChangeToken ?? NullChangeToken.Instance; - string IOptionsChangeTokenSource.Name => Microsoft.Extensions.Options.Options.DefaultName; + string IOptionsChangeTokenSource.Name => Options.Options.DefaultName; void IConfigureOptions.Configure(ConsoleLoggerOptions options) { options.IncludeScopes = _settings.IncludeScopes; if (_settings is ConfigurationConsoleLoggerSettings configSettings) { - options.Configure(configSettings._configuration); + configSettings._configuration.Bind(options); } else if (_settings is ConsoleLoggerSettings consoleSettings) { @@ -105,7 +105,7 @@ void IConfigureOptions.Configure(ConsoleLoggerOptions opti internal static OptionsMonitor GetOptionsMonitor(IConsoleLoggerSettings settings) { ConsoleLoggerSettingsAdapter adapter = new(settings); - OptionsFactory factory = new( new IConfigureOptions[] { adapter }, Array.Empty>()); + OptionsFactory factory = new(new IConfigureOptions[] { adapter }, Array.Empty>()); IOptionsChangeTokenSource[] sources = new IOptionsChangeTokenSource[] { adapter }; OptionsCache cache = new(); diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerOptions.cs index 8b833ad6eff0e..69704e4095a8e 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/ConsoleLoggerOptions.cs @@ -2,8 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Globalization; -using Microsoft.Extensions.Configuration; namespace Microsoft.Extensions.Logging.Console { @@ -102,146 +100,5 @@ public int MaxQueueLength _maxQueuedMessages = value; } } - - internal void Configure(IConfiguration configuration) - { -#pragma warning disable CS0618 // Type or member is obsolete - if (ParseBool(configuration, nameof(DisableColors), out bool disableColors)) - { - DisableColors = disableColors; - } -#pragma warning restore CS0618 // Type or member is obsolete - -#pragma warning disable CS0618 // Type or member is obsolete - if (ParseEnum(configuration, nameof(Format), out ConsoleLoggerFormat format)) - { - Format = format; - } -#pragma warning restore CS0618 // Type or member is obsolete - - if (configuration[nameof(FormatterName)] is string formatterName) - { - FormatterName = formatterName; - } - -#pragma warning disable CS0618 // Type or member is obsolete - if (ParseBool(configuration, nameof(IncludeScopes), out bool includeScopes)) - { - IncludeScopes = includeScopes; - } -#pragma warning restore CS0618 // Type or member is obsolete - - if (ParseEnum(configuration, nameof(LogToStandardErrorThreshold), out LogLevel logToStandardErrorThreshold)) - { - LogToStandardErrorThreshold = logToStandardErrorThreshold; - } - - if (ParseInt(configuration, nameof(MaxQueueLength), out int maxQueueLength)) - { - MaxQueueLength = maxQueueLength; - } - - if (ParseEnum(configuration, nameof(QueueFullMode), out ConsoleLoggerQueueFullMode queueFullMode)) - { - QueueFullMode = queueFullMode; - } - -#pragma warning disable CS0618 // Type or member is obsolete - if (configuration[nameof(TimestampFormat)] is string timestampFormat) - { - TimestampFormat = timestampFormat; - } -#pragma warning restore CS0618 // Type or member is obsolete - -#pragma warning disable CS0618 // Type or member is obsolete - if (ParseBool(configuration, nameof(UseUtcTimestamp), out bool useUtcTimestamp)) - { - UseUtcTimestamp = useUtcTimestamp; - } -#pragma warning restore CS0618 // Type or member is obsolete - } - - /// - /// Parses the configuration value at the specified key into a bool. - /// - /// true if the value was successfully found and parsed. false if the key wasn't found. - /// Thrown when invalid data was found at the specified configuration key. - internal static bool ParseBool(IConfiguration configuration, string key, out bool value) - { - if (configuration[key] is string valueString) - { - try - { - value = bool.Parse(valueString); - return true; - } - catch (Exception e) - { - ThrowInvalidConfigurationException(configuration, key, typeof(bool), e); - } - } - - value = default; - return false; - } - - /// - /// Parses the configuration value at the specified key into an enum. - /// - /// true if the value was successfully found and parsed. false if the key wasn't found. - /// Thrown when invalid data was found at the specified configuration key. - internal static bool ParseEnum(IConfiguration configuration, string key, out T value) where T : struct - { - if (configuration[key] is string valueString) - { - try - { - value = -#if NETFRAMEWORK || NETSTANDARD2_0 - (T)Enum.Parse(typeof(T), valueString, ignoreCase: true); -#else - Enum.Parse(valueString, ignoreCase: true); -#endif - return true; - } - catch (Exception e) - { - ThrowInvalidConfigurationException(configuration, key, typeof(T), e); - } - } - - value = default; - return false; - } - - /// - /// Parses the configuration value at the specified key into an int. - /// - /// true if the value was successfully found and parsed. false if the key wasn't found. - /// Thrown when invalid data was found at the specified configuration key. - internal static bool ParseInt(IConfiguration configuration, string key, out int value) - { - if (configuration[key] is string valueString) - { - try - { - value = int.Parse(valueString, NumberStyles.Integer, NumberFormatInfo.InvariantInfo); - return true; - } - catch (Exception e) - { - ThrowInvalidConfigurationException(configuration, key, typeof(int), e); - } - } - - value = default; - return false; - } - - private static void ThrowInvalidConfigurationException(IConfiguration configuration, string key, Type valueType, Exception innerException) - { - IConfigurationSection section = configuration.GetSection(key); - throw new InvalidOperationException(SR.Format(SR.InvalidConfigurationData, section.Path, valueType), innerException); - } } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatterOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatterOptions.cs index 2bdf51c67a847..2a9d4e5901a49 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatterOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/JsonConsoleFormatterOptions.cs @@ -21,31 +21,6 @@ public JsonConsoleFormatterOptions() { } /// public JsonWriterOptions JsonWriterOptions { get; set; } - internal override void Configure(IConfiguration configuration) - { - base.Configure(configuration); - - if (configuration.GetSection(nameof(JsonWriterOptions)) is IConfigurationSection jsonWriterOptionsConfig) - { - JsonWriterOptions jsonWriterOptions = JsonWriterOptions; - - if (ConsoleLoggerOptions.ParseBool(jsonWriterOptionsConfig, nameof(JsonWriterOptions.Indented), out bool indented)) - { - jsonWriterOptions.Indented = indented; - } - - if (ConsoleLoggerOptions.ParseInt(jsonWriterOptionsConfig, nameof(JsonWriterOptions.MaxDepth), out int maxDepth)) - { - jsonWriterOptions.MaxDepth = maxDepth; - } - - if (ConsoleLoggerOptions.ParseBool(jsonWriterOptionsConfig, nameof(JsonWriterOptions.SkipValidation), out bool skipValidation)) - { - jsonWriterOptions.SkipValidation = skipValidation; - } - - JsonWriterOptions = jsonWriterOptions; - } - } + internal override void Configure(IConfiguration configuration) => configuration.Bind(this); } } diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj b/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj index ed78c7dce5f78..8cec9d1b8ca78 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/Microsoft.Extensions.Logging.Console.csproj @@ -7,29 +7,24 @@ $(DefineConstants);NO_SUPPRESS_GC_TRANSITION true true + true + + $(NoWarn);SYSLIB1100 Console logger provider implementation for Microsoft.Extensions.Logging. - - - - + + + + - - - - + + + + @@ -67,4 +62,8 @@ + + + + diff --git a/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatterOptions.cs b/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatterOptions.cs index d31efbeda54e0..326fb16d752bb 100644 --- a/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatterOptions.cs +++ b/src/libraries/Microsoft.Extensions.Logging.Console/src/SimpleConsoleFormatterOptions.cs @@ -25,19 +25,6 @@ public SimpleConsoleFormatterOptions() { } /// public bool SingleLine { get; set; } - internal override void Configure(IConfiguration configuration) - { - base.Configure(configuration); - - if (ConsoleLoggerOptions.ParseEnum(configuration, nameof(ColorBehavior), out LoggerColorBehavior colorBehavior)) - { - ColorBehavior = colorBehavior; - } - - if (ConsoleLoggerOptions.ParseBool(configuration, nameof(SingleLine), out bool singleLine)) - { - SingleLine = singleLine; - } - } + internal override void Configure(IConfiguration configuration) => configuration.Bind(this); } } diff --git a/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/ImplicitMachineConfigHost.cs b/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/ImplicitMachineConfigHost.cs index 665ef24e47c26..1d8f37ddb3ff3 100644 --- a/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/ImplicitMachineConfigHost.cs +++ b/src/libraries/System.Configuration.ConfigurationManager/src/System/Configuration/ImplicitMachineConfigHost.cs @@ -82,6 +82,8 @@ public override Stream OpenStreamForRead(string streamName)
+
+
diff --git a/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/ImplicitMachineConfigTests.cs b/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/ImplicitMachineConfigTests.cs index 5727efe404bec..ad7c96600b81c 100644 --- a/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/ImplicitMachineConfigTests.cs +++ b/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/ImplicitMachineConfigTests.cs @@ -5,6 +5,8 @@ using System.Configuration; using System.Configuration.Internal; using System.IO; +using Microsoft.DotNet.RemoteExecutor; + using Xunit; namespace System.ConfigurationTests @@ -18,6 +20,30 @@ public void RuntimeAppSettingsAccessible() Assert.NotNull(appSettings); } + [ConditionalFact(typeof(RemoteExecutor), nameof(RemoteExecutor.IsSupported))] + public void RuntimeAppSettingsSystemRuntimeRemotingSectionIsSupported() + { + using (var temp = new TempConfig(TestData.SystemRuntimeRemotingSectionConfig)) + { + RemoteExecutor.Invoke((string configFilePath) => { + AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configFilePath); + Assert.NotNull(ConfigurationManager.GetSection("system.runtime.remoting")); + }, temp.ConfigPath).Dispose(); + } + } + + [ConditionalFact(typeof(RemoteExecutor), nameof(RemoteExecutor.IsSupported))] + public void RuntimeAppSettingsWindowsSectionIsSupported() + { + using (var temp = new TempConfig(TestData.WindowsSectionConfig)) + { + RemoteExecutor.Invoke((string configFilePath) => { + AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", configFilePath); + Assert.NotNull(ConfigurationManager.GetSection("windows")); + }, temp.ConfigPath).Dispose(); + } + } + [Fact] public void DesignTimeAppSettingsAccessible() { diff --git a/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/TestData.cs b/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/TestData.cs index 6ee1f6683752a..74b685f92f4f8 100644 --- a/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/TestData.cs +++ b/src/libraries/System.Configuration.ConfigurationManager/tests/System/Configuration/TestData.cs @@ -25,5 +25,23 @@ public static class TestData "; + + public static string SystemRuntimeRemotingSectionConfig = +@" + + + + + + + + +"; + + public static string WindowsSectionConfig = +@" + + +"; } } diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/AggregationManager.cs b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/AggregationManager.cs index b1035b2b2b544..e4adce2f275c1 100644 --- a/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/AggregationManager.cs +++ b/src/libraries/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Metrics/AggregationManager.cs @@ -129,8 +129,9 @@ private void PublishedInstrument(Instrument instrument, MeterListener _) if (state != null) { _beginInstrumentMeasurements(instrument); - +#pragma warning disable CA1864 // Prefer the 'IDictionary.TryAdd(TKey, TValue)' method. IDictionary.TryAdd() is not available in one of the builds if (!_instruments.ContainsKey(instrument)) +#pragma warning restore CA1864 { // This has side effects that prompt MeasurementsCompleted // to be called if this is called multiple times on an diff --git a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs index 4594267defc33..5762874bbef77 100644 --- a/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs +++ b/src/libraries/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Windows.cs @@ -522,7 +522,7 @@ private static ProcessInfo[] GetProcessInfos(PerformanceCounterLib library, int } else { - if (processInfos.ContainsKey(processInfo.ProcessId)) + if (!processInfos.TryAdd(processInfo.ProcessId, processInfo)) { // We've found two entries in the perfcounters that claim to be the // same process. We throw an exception. Is this really going to be @@ -549,7 +549,6 @@ private static ProcessInfo[] GetProcessInfos(PerformanceCounterLib library, int } } processInfo.ProcessName = instanceName.ToString(); - processInfos.Add(processInfo.ProcessId, processInfo); } } } diff --git a/src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/AD/ADDNLinkedAttrSet.cs b/src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/AD/ADDNLinkedAttrSet.cs index 84e0191a869d9..a89db78183856 100644 --- a/src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/AD/ADDNLinkedAttrSet.cs +++ b/src/libraries/System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/AD/ADDNLinkedAttrSet.cs @@ -667,11 +667,10 @@ private bool MoveNextForeign(ref bool outerNeedToRetry) if (null == foreignSid.sidIssuerName) { // create and return the unknown principal if it is not yet present in usersVisited - if (!_usersVisited.ContainsKey(foreignSid.name)) + if (_usersVisited.TryAdd(foreignSid.name, true)) { byte[] sid = Utils.ConvertNativeSidToByteArray(foreignSid.pSid); UnknownPrincipal unknownPrincipal = UnknownPrincipal.CreateUnknownPrincipal(_storeCtx.OwningContext, sid, foreignSid.name); - _usersVisited.Add(foreignSid.name, true); this.current = null; _currentForeignDE = null; _currentForeignPrincipal = unknownPrincipal; diff --git a/src/libraries/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.Linux.cs b/src/libraries/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.Linux.cs index 2cc4226613ff2..1dc9573d943f8 100644 --- a/src/libraries/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.Linux.cs +++ b/src/libraries/System.IO.FileSystem.Watcher/src/System/IO/FileSystemWatcher.Linux.cs @@ -829,7 +829,7 @@ private bool TryReadEvent(out NotifyEvent notifyEvent) } /// - /// Reads a UTF8 string from _buffer starting at the specified position and up to + /// Reads a UTF-8 string from _buffer starting at the specified position and up to /// the specified length. Null termination is trimmed off (the length may include /// many null bytes, not just one, or it may include none). /// diff --git a/src/libraries/System.Net.Http/ref/System.Net.Http.cs b/src/libraries/System.Net.Http/ref/System.Net.Http.cs index da69bbf10a72f..3ac82158387eb 100644 --- a/src/libraries/System.Net.Http/ref/System.Net.Http.cs +++ b/src/libraries/System.Net.Http/ref/System.Net.Http.cs @@ -135,6 +135,8 @@ public HttpClientHandler() { } public long MaxRequestContentBufferSize { get { throw null; } set { } } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public int MaxResponseHeadersLength { get { throw null; } set { } } + [System.CLSCompliantAttribute(false)] + public System.Diagnostics.Metrics.IMeterFactory? MeterFactory { get { throw null; } set { } } [System.Runtime.Versioning.UnsupportedOSPlatformAttribute("browser")] public bool PreAuthenticate { get { throw null; } set { } } public System.Collections.Generic.IDictionary Properties { get { throw null; } } @@ -419,6 +421,8 @@ public SocketsHttpHandler() { } public int MaxConnectionsPerServer { get { throw null; } set { } } public int MaxResponseDrainSize { get { throw null; } set { } } public int MaxResponseHeadersLength { get { throw null; } set { } } + [System.CLSCompliantAttribute(false)] + public System.Diagnostics.Metrics.IMeterFactory? MeterFactory { get { throw null; } set { } } public System.TimeSpan PooledConnectionIdleTimeout { get { throw null; } set { } } public System.TimeSpan PooledConnectionLifetime { get { throw null; } set { } } public bool PreAuthenticate { get { throw null; } set { } } @@ -923,3 +927,15 @@ public WarningHeaderValue(int code, string agent, string text, System.DateTimeOf public static bool TryParse([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] string? input, [System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] out System.Net.Http.Headers.WarningHeaderValue? parsedValue) { throw null; } } } +namespace System.Net.Http.Metrics +{ + public sealed class HttpMetricsEnrichmentContext + { + internal HttpMetricsEnrichmentContext() { } + public System.Net.Http.HttpRequestMessage Request { get { throw null; } } + public System.Net.Http.HttpResponseMessage? Response { get { throw null; } } + public System.Exception? Exception { get { throw null; } } + public void AddCustomTag(string name, object? value) { throw null; } + public static void AddCallback(System.Net.Http.HttpRequestMessage request, System.Action callback) { throw null; } + } +} diff --git a/src/libraries/System.Net.Http/src/System.Net.Http.csproj b/src/libraries/System.Net.Http/src/System.Net.Http.csproj index a044104e55d2a..f9c229575e121 100644 --- a/src/libraries/System.Net.Http/src/System.Net.Http.csproj +++ b/src/libraries/System.Net.Http/src/System.Net.Http.csproj @@ -124,6 +124,8 @@ + + @@ -231,7 +233,7 @@ Link="Common\System\Net\DebugSafeHandleZeroOrMinusOneIsInvalid.cs" /> - + Common\System\Net\Http\aspnetcore\IHttpStreamHeadersHandler.cs @@ -475,4 +477,4 @@ - + \ No newline at end of file diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs b/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs index 8b9919906076e..ed8abc2a1905a 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/BrowserHttpHandler.cs @@ -289,7 +289,6 @@ private static HttpResponseMessage ConvertResponse(HttpRequestMessage request, W protected internal override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { - ArgumentNullException.ThrowIfNull(request); bool? allowAutoRedirect = _isAllowAutoRedirectTouched ? AllowAutoRedirect : null; #if FEATURE_WASM_THREADS return JSHost.CurrentOrMainJSSynchronizationContext.Send(() => diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/SocketsHttpHandler.cs b/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/SocketsHttpHandler.cs index 1cd0dbdb7a645..9afd16e0d051b 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/SocketsHttpHandler.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/BrowserHttpHandler/SocketsHttpHandler.cs @@ -9,6 +9,7 @@ using System.Threading.Tasks; using System.Diagnostics.CodeAnalysis; using System.Diagnostics; +using System.Diagnostics.Metrics; namespace System.Net.Http { @@ -91,6 +92,13 @@ public int MaxResponseDrainSize set => throw new PlatformNotSupportedException(); } + [CLSCompliant(false)] + public IMeterFactory? MeterFactory + { + get => throw new PlatformNotSupportedException(); + set => throw new PlatformNotSupportedException(); + } + public TimeSpan ResponseDrainTimeout { get => throw new PlatformNotSupportedException(); diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs b/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs index fd9d9420f7a22..6436c1595b46e 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs @@ -78,7 +78,6 @@ internal override ValueTask SendAsync(HttpRequestMessage re { if (IsEnabled()) { - ArgumentNullException.ThrowIfNull(request); return SendAsyncCore(request, async, cancellationToken); } else diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs b/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs index ceb93c06a2aae..c9e55048c802a 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/HttpMessageInvoker.cs @@ -1,8 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.IO; -using System.Net.Http.Headers; using System.Runtime.Versioning; using System.Threading; using System.Threading.Tasks; @@ -124,7 +122,6 @@ protected virtual void Dispose(bool disposing) if (disposing && !_disposed) { _disposed = true; - if (_disposeHandler) { _handler.Dispose(); diff --git a/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs b/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs index 566d5ac46f562..691db4059a248 100644 --- a/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs +++ b/src/libraries/System.Net.Http/src/System/Net/Http/HttpRequestMessage.cs @@ -30,7 +30,7 @@ public class HttpRequestMessage : IDisposable private Version _version; private HttpVersionPolicy _versionPolicy; private HttpContent? _content; - private HttpRequestOptions? _options; + internal HttpRequestOptions? _options; public Version Version { diff --git a/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj b/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj index 260c34fc8fb17..bbeb3395d36e0 100644 --- a/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj +++ b/src/libraries/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj @@ -152,6 +152,7 @@ Link="Common\System\Net\Http\HttpClientHandlerTest.DefaultProxyCredentials.cs" /> + @@ -194,6 +195,7 @@ + The close status code '{0}' is reserved for system use only and cannot be specified when calling this method. - The close status description '{0}' is too long. The UTF8-representation of the status description must not be longer than {1} bytes. + The close status description '{0}' is too long. The UTF-8 representation of the status description must not be longer than {1} bytes. The WebSocket protocol is not supported on this platform. diff --git a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs index 899f1885d3c0e..66d233cd98194 100644 --- a/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs +++ b/src/libraries/System.Net.Primitives/src/System/Net/IPAddress.cs @@ -428,7 +428,7 @@ public bool TryFormat(Span destination, out int charsWritten) => TryFormatCore(destination, out charsWritten); /// Tries to format the current IP address into the provided span. - /// When this method returns, the IP address as a span of UTF8 bytes. + /// When this method returns, the IP address as a span of UTF-8 bytes. /// When this method returns, the number of bytes written into the . /// if the formatting was successful; otherwise, . public bool TryFormat(Span utf8Destination, out int bytesWritten) => diff --git a/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs b/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs index b3c94569148aa..1c3a3acd42932 100644 --- a/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs +++ b/src/libraries/System.Net.Primitives/src/System/Net/IPNetwork.cs @@ -252,9 +252,9 @@ public bool TryFormat(Span destination, out int charsWritten) => destination.TryWrite(CultureInfo.InvariantCulture, $"{BaseAddress}/{(uint)PrefixLength}", out charsWritten); /// - /// Attempts to write the 's CIDR notation to the given UTF8 span and returns a value indicating whether the operation succeeded. + /// Attempts to write the 's CIDR notation to the given UTF-8 span and returns a value indicating whether the operation succeeded. /// - /// The destination span of UTF8 bytes. + /// The destination span of UTF-8 bytes. /// When this method returns, contains the number of bytes that were written to . /// if the formatting was succesful; otherwise . public bool TryFormat(Span utf8Destination, out int bytesWritten) => diff --git a/src/libraries/System.Net.WebSockets.Client/src/Resources/Strings.resx b/src/libraries/System.Net.WebSockets.Client/src/Resources/Strings.resx index 81ae9dc7e21e4..449db4cbd6a36 100644 --- a/src/libraries/System.Net.WebSockets.Client/src/Resources/Strings.resx +++ b/src/libraries/System.Net.WebSockets.Client/src/Resources/Strings.resx @@ -100,7 +100,7 @@ The close status code '{0}' is reserved for system use only and cannot be specified when calling this method. - The close status description '{0}' is too long. The UTF8-representation of the status description must not be longer than {1} bytes. + The close status description '{0}' is too long. The UTF-8 representation of the status description must not be longer than {1} bytes. Only Uris starting with 'ws://' or 'wss://' are supported. diff --git a/src/libraries/System.Net.WebSockets/src/Resources/Strings.resx b/src/libraries/System.Net.WebSockets/src/Resources/Strings.resx index 1b7857f002160..8e01fce49ad88 100644 --- a/src/libraries/System.Net.WebSockets/src/Resources/Strings.resx +++ b/src/libraries/System.Net.WebSockets/src/Resources/Strings.resx @@ -100,7 +100,7 @@ The close status code '{0}' is reserved for system use only and cannot be specified when calling this method. - The close status description '{0}' is too long. The UTF8-representation of the status description must not be longer than {1} bytes. + The close status description '{0}' is too long. The UTF-8 representation of the status description must not be longer than {1} bytes. The WebSocket protocol is not supported on this platform. diff --git a/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs b/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs index db420d6ebe500..bcf6500a8a630 100644 --- a/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs +++ b/src/libraries/System.Net.WebSockets/src/System/Net/WebSockets/ManagedWebSocket.cs @@ -26,7 +26,7 @@ namespace System.Net.WebSockets /// internal sealed partial class ManagedWebSocket : WebSocket { - /// Encoding for the payload of text messages: UTF8 encoding that throws if invalid bytes are discovered, per the RFC. + /// Encoding for the payload of text messages: UTF-8 encoding that throws if invalid bytes are discovered, per the RFC. private static readonly UTF8Encoding s_textEncoding = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true); /// Valid states to be in when calling SendAsync. @@ -61,7 +61,7 @@ internal sealed partial class ManagedWebSocket : WebSocket /// Buffer used for reading data from the network. private readonly Memory _receiveBuffer; /// - /// Tracks the state of the validity of the UTF8 encoding of text payloads. Text may be split across fragments. + /// Tracks the state of the validity of the UTF-8 encoding of text payloads. Text may be split across fragments. /// private readonly Utf8MessageState _utf8TextState = new Utf8MessageState(); /// diff --git a/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx b/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx index 0b723db439866..bd016b716a161 100644 --- a/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx +++ b/src/libraries/System.Private.CoreLib/src/Resources/Strings.resx @@ -452,7 +452,7 @@ The signature Type array contains some invalid type (i.e. null, void) - The UTF8 string passed in could not be converted to Unicode. + The UTF-8 string passed in could not be converted to Unicode. I/O error occurred. @@ -1292,7 +1292,7 @@ The NativeDigits array must contain exactly ten members. - Each member of the NativeDigits array must be a single text element (one or more UTF16 code points) with a Unicode Nd (Number, Decimal Digit) property indicating it is a digit. + Each member of the NativeDigits array must be a single text element (one or more UTF-16 code points) with a Unicode Nd (Number, Decimal Digit) property indicating it is a digit. The region name {0} should not correspond to neutral culture; a specific culture name is required. @@ -2614,6 +2614,9 @@ Handle is not pinned. + + Formatted string contains characters not representable as valid UTF-8. + Hashtable insert failed. Load factor too high. The most common cause is multiple threads writing to the Hashtable simultaneously. diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Base64Validator.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Base64Validator.cs index 403377fab99c5..22071725a2352 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Base64Validator.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Base64Validator.cs @@ -30,8 +30,8 @@ public static bool IsValid(ReadOnlySpan base64Text) => public static bool IsValid(ReadOnlySpan base64Text, out int decodedLength) => IsValid(base64Text, out decodedLength); - /// Validates that the specified span of UTF8 text is comprised of valid base-64 encoded data. - /// A span of UTF8 text to validate. + /// Validates that the specified span of UTF-8 text is comprised of valid base-64 encoded data. + /// A span of UTF-8 text to validate. /// if contains a valid, decodable sequence of base-64 encoded data; otherwise, . /// /// If the method returns , the same text passed to and @@ -41,9 +41,9 @@ public static bool IsValid(ReadOnlySpan base64Text, out int decodedLength) public static bool IsValid(ReadOnlySpan base64TextUtf8) => IsValid(base64TextUtf8, out _); - /// Validates that the specified span of UTF8 text is comprised of valid base-64 encoded data. - /// A span of UTF8 text to validate. - /// If the method returns true, the number of decoded bytes that will result from decoding the input UTF8 text. + /// Validates that the specified span of UTF-8 text is comprised of valid base-64 encoded data. + /// A span of UTF-8 text to validate. + /// If the method returns true, the number of decoded bytes that will result from decoding the input UTF-8 text. /// if contains a valid, decodable sequence of base-64 encoded data; otherwise, . /// /// If the method returns , the same text passed to and diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Boolean.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Boolean.cs index 70c0ba85887c2..51cbbe58d199d 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Boolean.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Boolean.cs @@ -6,10 +6,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Boolean as a UTF8 string. + /// Formats a Boolean as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Date.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Date.cs index fc4bb0c6cc29e..fb2757a9df16a 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Date.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Date.cs @@ -9,10 +9,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a DateTimeOffset as a UTF8 string. + /// Formats a DateTimeOffset as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -58,10 +58,10 @@ public static bool TryFormat(DateTimeOffset value, Span destination, out i } /// - /// Formats a DateTime as a UTF8 string. + /// Formats a DateTime as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Decimal.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Decimal.cs index 1f619009c0594..b150aa78fcbed 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Decimal.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Decimal.cs @@ -6,10 +6,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Decimal as a UTF8 string. + /// Formats a Decimal as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Float.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Float.cs index 3827e79a948a6..62c7f7b281f65 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Float.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Float.cs @@ -6,10 +6,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Double as a UTF8 string. + /// Formats a Double as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -29,10 +29,10 @@ public static bool TryFormat(double value, Span destination, out int bytes FormattingHelpers.TryFormat(value, destination, out bytesWritten, format); /// - /// Formats a Single as a UTF8 string. + /// Formats a Single as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Guid.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Guid.cs index 3e64fbd3ec754..31b60eba9ea61 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Guid.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Guid.cs @@ -6,10 +6,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Guid as a UTF8 string. + /// Formats a Guid as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Integer.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Integer.cs index 0a55ad664ab27..80da602405082 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Integer.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.Integer.cs @@ -11,10 +11,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a Byte as a UTF8 string. + /// Formats a Byte as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -35,10 +35,10 @@ public static bool TryFormat(byte value, Span destination, out int bytesWr TryFormat((uint)value, destination, out bytesWritten, format); /// - /// Formats an SByte as a UTF8 string. + /// Formats an SByte as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -60,10 +60,10 @@ public static bool TryFormat(sbyte value, Span destination, out int bytesW TryFormat(value, 0xFF, destination, out bytesWritten, format); /// - /// Formats a Unt16 as a UTF8 string. + /// Formats a Unt16 as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -85,10 +85,10 @@ public static bool TryFormat(ushort value, Span destination, out int bytes TryFormat((uint)value, destination, out bytesWritten, format); /// - /// Formats an Int16 as a UTF8 string. + /// Formats an Int16 as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -109,10 +109,10 @@ public static bool TryFormat(short value, Span destination, out int bytesW TryFormat(value, 0xFFFF, destination, out bytesWritten, format); /// - /// Formats a UInt32 as a UTF8 string. + /// Formats a UInt32 as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -163,10 +163,10 @@ public static bool TryFormat(uint value, Span destination, out int bytesWr } /// - /// Formats an Int32 as a UTF8 string. + /// Formats an Int32 as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -223,10 +223,10 @@ private static bool TryFormat(int value, int hexMask, Span destination, ou } /// - /// Formats a UInt64 as a UTF8 string. + /// Formats a UInt64 as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// @@ -277,10 +277,10 @@ public static bool TryFormat(ulong value, Span destination, out int bytesW } /// - /// Formats an Int64 as a UTF8 string. + /// Formats an Int64 as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs index c1d8476209ae0..dd386dfb516f5 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Buffers/Text/Utf8Formatter/Utf8Formatter.TimeSpan.cs @@ -8,10 +8,10 @@ namespace System.Buffers.Text public static partial class Utf8Formatter { /// - /// Formats a TimeSpan as a UTF8 string. + /// Formats a TimeSpan as a UTF-8 string. /// /// Value to format - /// Buffer to write the UTF8-formatted value to + /// Buffer to write the UTF-8 formatted value to /// Receives the length of the formatted text in bytes /// The standard format to use /// diff --git a/src/libraries/System.Private.CoreLib/src/System/Convert.Base64.cs b/src/libraries/System.Private.CoreLib/src/System/Convert.Base64.cs index b77506218f5e4..f691316a04e34 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Convert.Base64.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Convert.Base64.cs @@ -25,7 +25,7 @@ public static partial class Convert /// or a destination span that's too small. and are set so that /// parsing can continue with a slower whitespace-tolerant algorithm. /// - /// Note: This is a cut down version of the implementation of Base64.DecodeFromUtf8(), modified the accept UTF16 chars and act as a fast-path + /// Note: This is a cut down version of the implementation of Base64.DecodeFromUtf8(), modified the accept UTF-16 chars and act as a fast-path /// helper for the Convert routines when the input string contains no whitespace. /// private static bool TryDecodeFromUtf16(ReadOnlySpan utf16, Span bytes, out int consumed, out int written) diff --git a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/TraceLogging/FieldMetadata.cs b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/TraceLogging/FieldMetadata.cs index eae652c0cdd4c..bc6bf4fd066ff 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/TraceLogging/FieldMetadata.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Diagnostics/Tracing/TraceLogging/FieldMetadata.cs @@ -19,7 +19,7 @@ internal sealed class FieldMetadata private readonly string name; /// - /// The number of bytes in the UTF8 Encoding of 'name' INCLUDING a null terminator. + /// The number of bytes in the UTF-8 Encoding of 'name' INCLUDING a null terminator. /// private readonly int nameSize; private readonly EventFieldTags tags; diff --git a/src/libraries/System.Private.CoreLib/src/System/Double.cs b/src/libraries/System.Private.CoreLib/src/System/Double.cs index ba621512477f4..5a96ade08d880 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Double.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Double.cs @@ -533,12 +533,28 @@ public static bool IsPow2(double value) { ulong bits = BitConverter.DoubleToUInt64Bits(value); - ushort biasedExponent = ExtractBiasedExponentFromBits(bits);; + if ((long)bits <= 0) + { + // Zero and negative values cannot be powers of 2 + return false; + } + + ushort biasedExponent = ExtractBiasedExponentFromBits(bits); ulong trailingSignificand = ExtractTrailingSignificandFromBits(bits); - return (value > 0) - && (biasedExponent != MinBiasedExponent) && (biasedExponent != MaxBiasedExponent) - && (trailingSignificand == MinTrailingSignificand); + if (biasedExponent == MinBiasedExponent) + { + // Subnormal values have 1 bit set when they're powers of 2 + return ulong.PopCount(trailingSignificand) == 1; + } + else if (biasedExponent == MaxBiasedExponent) + { + // NaN and Infinite values cannot be powers of 2 + return false; + } + + // Normal values have 0 bits set when they're powers of 2 + return trailingSignificand == MinTrailingSignificand; } /// @@ -1871,6 +1887,24 @@ public static double CosPi(double x) return result; } + /// + public static double DegreesToRadians(double degrees) + { + // NOTE: Don't change the algorithm without consulting the DIM + // which elaborates on why this implementation was chosen + + return (degrees * Pi) / 180.0; + } + + /// + public static double RadiansToDegrees(double radians) + { + // NOTE: Don't change the algorithm without consulting the DIM + // which elaborates on why this implementation was chosen + + return (radians * 180.0) / Pi; + } + /// [Intrinsic] public static double Sin(double x) => Math.Sin(x); diff --git a/src/libraries/System.Private.CoreLib/src/System/Half.cs b/src/libraries/System.Private.CoreLib/src/System/Half.cs index 58a7b7865ef82..8daa37bbab576 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Half.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Half.cs @@ -1194,12 +1194,28 @@ public static bool IsPow2(Half value) { ushort bits = BitConverter.HalfToUInt16Bits(value); + if ((short)bits <= 0) + { + // Zero and negative values cannot be powers of 2 + return false; + } + byte biasedExponent = ExtractBiasedExponentFromBits(bits); ushort trailingSignificand = ExtractTrailingSignificandFromBits(bits); - return (value > Zero) - && (biasedExponent != MinBiasedExponent) && (biasedExponent != MaxBiasedExponent) - && (trailingSignificand == MinTrailingSignificand); + if (biasedExponent == MinBiasedExponent) + { + // Subnormal values have 1 bit set when they're powers of 2 + return ushort.PopCount(trailingSignificand) == 1; + } + else if (biasedExponent == MaxBiasedExponent) + { + // NaN and Infinite values cannot be powers of 2 + return false; + } + + // Normal values have 0 bits set when they're powers of 2 + return trailingSignificand == MinTrailingSignificand; } /// @@ -2146,6 +2162,24 @@ private static bool TryConvertTo(Half value, [MaybeNullWhen(false)] out /// public static Half CosPi(Half x) => (Half)float.CosPi((float)x); + /// + public static Half DegreesToRadians(Half degrees) + { + // NOTE: Don't change the algorithm without consulting the DIM + // which elaborates on why this implementation was chosen + + return (Half)float.DegreesToRadians((float)degrees); + } + + /// + public static Half RadiansToDegrees(Half radians) + { + // NOTE: Don't change the algorithm without consulting the DIM + // which elaborates on why this implementation was chosen + + return (Half)float.RadiansToDegrees((float)radians); + } + /// public static Half Sin(Half x) => (Half)MathF.Sin((float)x); diff --git a/src/libraries/System.Private.CoreLib/src/System/IUtf8SpanFormattable.cs b/src/libraries/System.Private.CoreLib/src/System/IUtf8SpanFormattable.cs index 7fa4dd9c30151..c7dbe2a1e64b7 100644 --- a/src/libraries/System.Private.CoreLib/src/System/IUtf8SpanFormattable.cs +++ b/src/libraries/System.Private.CoreLib/src/System/IUtf8SpanFormattable.cs @@ -3,10 +3,10 @@ namespace System { - /// Provides functionality to format the string representation of an object into a span as UTF8. + /// Provides functionality to format the string representation of an object into a span as UTF-8. public interface IUtf8SpanFormattable { - /// Tries to format the value of the current instance as UTF8 into the provided span of bytes. + /// Tries to format the value of the current instance as UTF-8 into the provided span of bytes. /// When this method returns, this instance's value formatted as a span of bytes. /// When this method returns, the number of bytes that were written in . /// A span containing the characters that represent a standard or custom format string that defines the acceptable format for . diff --git a/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs b/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs index a67c7f78aa479..3bb61ebcf736f 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Number.Formatting.cs @@ -3605,7 +3605,7 @@ private static unsafe void FormatFixed( } /// Appends a char to the builder when the char is not known to be ASCII. - /// This requires a helper as if the character isn't ASCII, for UTF8 encoding it will result in multiple bytes added. + /// This requires a helper as if the character isn't ASCII, for UTF-8 encoding it will result in multiple bytes added. [MethodImpl(MethodImplOptions.AggressiveInlining)] private static void AppendUnknownChar(ref ValueListBuilder vlb, char ch) where TChar : unmanaged, IUtfChar { diff --git a/src/libraries/System.Private.CoreLib/src/System/Numerics/INumberBase.cs b/src/libraries/System.Private.CoreLib/src/System/Numerics/INumberBase.cs index 4d943b1933888..4368605183d2e 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Numerics/INumberBase.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Numerics/INumberBase.cs @@ -27,6 +27,7 @@ public interface INumberBase ISubtractionOperators, IUnaryPlusOperators, IUnaryNegationOperators, + IUtf8SpanFormattable, IUtf8SpanParsable where TSelf : INumberBase? { @@ -297,7 +298,7 @@ static virtual TSelf Parse(ReadOnlySpan utf8Text, NumberStyles style, IFor if (textMaxCharCount < 256) { utf16TextArray = null; - utf16Text = stackalloc char[512]; + utf16Text = stackalloc char[256]; } else { @@ -425,7 +426,7 @@ static virtual bool TryParse(ReadOnlySpan utf8Text, NumberStyles style, IF if (textMaxCharCount < 256) { utf16TextArray = null; - utf16Text = stackalloc char[512]; + utf16Text = stackalloc char[256]; } else { @@ -456,6 +457,60 @@ static virtual bool TryParse(ReadOnlySpan utf8Text, NumberStyles style, IF return succeeded; } + bool IUtf8SpanFormattable.TryFormat(Span utf8Destination, out int bytesWritten, ReadOnlySpan format, IFormatProvider? provider) + { + char[]? utf16DestinationArray; + scoped Span utf16Destination; + int destinationMaxCharCount = Encoding.UTF8.GetMaxCharCount(utf8Destination.Length); + + if (destinationMaxCharCount < 256) + { + utf16DestinationArray = null; + utf16Destination = stackalloc char[256]; + } + else + { + utf16DestinationArray = ArrayPool.Shared.Rent(destinationMaxCharCount); + utf16Destination = utf16DestinationArray.AsSpan(0, destinationMaxCharCount); + } + + if (!TryFormat(utf16Destination, out int charsWritten, format, provider)) + { + if (utf16DestinationArray != null) + { + // Return rented buffers if necessary + ArrayPool.Shared.Return(utf16DestinationArray); + } + + bytesWritten = 0; + return false; + } + + // Make sure we slice the buffer to just the characters written + utf16Destination = utf16Destination.Slice(0, charsWritten); + + OperationStatus utf8DestinationStatus = Utf8.FromUtf16(utf16Destination, utf8Destination, out _, out bytesWritten, replaceInvalidSequences: false); + + if (utf16DestinationArray != null) + { + // Return rented buffers if necessary + ArrayPool.Shared.Return(utf16DestinationArray); + } + + if (utf8DestinationStatus == OperationStatus.Done) + { + return true; + } + + if (utf8DestinationStatus != OperationStatus.DestinationTooSmall) + { + ThrowHelper.ThrowInvalidOperationException_InvalidUtf8(); + } + + bytesWritten = 0; + return false; + } + static TSelf IUtf8SpanParsable.Parse(ReadOnlySpan utf8Text, IFormatProvider? provider) { // Convert text using stackalloc for <= 256 characters and ArrayPool otherwise diff --git a/src/libraries/System.Private.CoreLib/src/System/Numerics/ITrigonometricFunctions.cs b/src/libraries/System.Private.CoreLib/src/System/Numerics/ITrigonometricFunctions.cs index 3231901ab6812..eedb795255154 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Numerics/ITrigonometricFunctions.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Numerics/ITrigonometricFunctions.cs @@ -57,6 +57,73 @@ public interface ITrigonometricFunctions /// This computes cos(x * PI). static abstract TSelf CosPi(TSelf x); + /// Converts a given value from degrees to radians. + /// The value to convert to radians. + /// The value of converted to radians. + static virtual TSelf DegreesToRadians(TSelf degrees) + { + // We don't want to simplify this to: degrees * (Pi / 180) + // + // Doing so will change the result and in many cases will + // cause a loss of precision. The main exception to this + // is when the initial multiplication causes overflow, but + // if we decide that should be handled in the future it needs + // to be more explicit around how its done. + // + // Floating-point operations are naturally imprecise due to + // rounding required to fit the "infinitely-precise result" + // into the limits of the underlying representation. Because + // of this, every operation can introduce some amount of rounding + // error. + // + // For integers, the IEEE 754 binary floating-point types can + // exactly represent them up to the 2^n, where n is the number + // of bits in the significand. This is 10 for Half, 23 for Single, + // and 52 for Double. As you approach this limit, the number of + // digits available to represent the fractional portion decreases. + // + // For Half, you get around 3.311 total decimal digits of precision. + // For Single, this is around 7.225 and around 15.955 for Double. + // + // The actual number of digits can be slightly more or less, depending. + // + // This means that values such as `Pi` are not exactly `Pi`, instead: + // * Half: 3.14 0625 + // * Single: 3.14 1592 741012573 2421875 + // * Double: 3.14 1592 653589793 115997963468544185161590576171875 + // * Actual: 3.14 1592 653589793 2384626433832795028841971693993751058209749445923... + // + // If we were to simplify this to simply multiply by (Pi / 180), we get: + // * Half: 0.01745 6054 6875 + // * Single: 0.01745 3292 384743690 49072265625 + // * Double: 0.01745 3292 519943295 4743716805978692718781530857086181640625 + // * Actual: 0.01745 3292 519943295 7692369076848861271344287188854172545609719144... + // + // Neither of these end up "perfect". There will be some cases where they will trade + // in terms of closeness to the "infinitely precise result". Over the entire domain + // however, doing the separate multiplications tends to produce overall more accurate + // results. It helps ensure the implementation can be trivial for the DIM case, and + // covers the vast majority of typical inputs more efficiently largely only pessimizing + // the case where the first multiplication results in overflow. + // + // This is particularly true for `RadiansToDegrees` where 180 is exactly representable + // and so allows an exactly representable intermediate value to be computed when overflow + // doesn't occur. + + return (degrees * TSelf.Pi) / TSelf.CreateChecked(180); + } + + /// Converts a given value from radians to degrees. + /// The value to convert to degrees. + /// The value of converted to degrees. + static virtual TSelf RadiansToDegrees(TSelf radians) + { + // We don't want to simplify this to: radians * (180 / Pi) + // See DegreesToRadians for a longer explanation as to why + + return (radians * TSelf.CreateChecked(180)) / TSelf.Pi; + } + /// Computes the sine of a value. /// The value, in radians, whose sine is to be computed. /// The sine of . diff --git a/src/libraries/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs b/src/libraries/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs index 8017aabdcdb52..e013510453c28 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Reflection/Emit/EnumBuilder.cs @@ -39,5 +39,28 @@ public void SetCustomAttribute(ConstructorInfo con, byte[] binaryAttribute) public void SetCustomAttribute(CustomAttributeBuilder customBuilder) => SetCustomAttributeCore(customBuilder.Ctor, customBuilder.Data); + + public override Type MakePointerType() + { + return SymbolType.FormCompoundType("*", this, 0)!; + } + + public override Type MakeByRefType() + { + return SymbolType.FormCompoundType("&", this, 0)!; + } + + [RequiresDynamicCode("The code for an array of the specified type might not be available.")] + public override Type MakeArrayType() + { + return SymbolType.FormCompoundType("[]", this, 0)!; + } + + [RequiresDynamicCode("The code for an array of the specified type might not be available.")] + public override Type MakeArrayType(int rank) + { + string s = GetRankString(rank); + return SymbolType.FormCompoundType(s, this, 0)!; + } } } diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs index 90ea2c9963767..7625ebb886622 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/MemoryMarshal.cs @@ -257,10 +257,10 @@ public static unsafe ReadOnlySpan CreateReadOnlySpanFromNullTerminated(cha value != null ? new ReadOnlySpan(value, string.wcslen(value)) : default; - /// Creates a new read-only span for a null-terminated UTF8 string. + /// Creates a new read-only span for a null-terminated UTF-8 string. /// The pointer to the null-terminated string of bytes. /// A read-only span representing the specified null-terminated string, or an empty span if the pointer is null. - /// The returned span does not include the null terminator, nor does it validate the well-formedness of the UTF8 data. + /// The returned span does not include the null terminator, nor does it validate the well-formedness of the UTF-8 data. /// The string is longer than . [CLSCompliant(false)] public static unsafe ReadOnlySpan CreateReadOnlySpanFromNullTerminated(byte* value) => diff --git a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/NFloat.cs b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/NFloat.cs index f61091f19e932..3f3312b2c46b6 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/NFloat.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/NFloat.cs @@ -1851,6 +1851,24 @@ private static bool TryConvertTo(NFloat value, [MaybeNullWhen(false)] ou /// public static NFloat CosPi(NFloat x) => new NFloat(NativeType.CosPi(x._value)); + /// + public static NFloat DegreesToRadians(NFloat degrees) + { + // NOTE: Don't change the algorithm without consulting the DIM + // which elaborates on why this implementation was chosen + + return new NFloat(NativeType.DegreesToRadians(degrees._value)); + } + + /// + public static NFloat RadiansToDegrees(NFloat radians) + { + // NOTE: Don't change the algorithm without consulting the DIM + // which elaborates on why this implementation was chosen + + return new NFloat(NativeType.RadiansToDegrees(radians._value)); + } + /// public static NFloat Sin(NFloat x) => new NFloat(NativeType.Sin(x._value)); diff --git a/src/libraries/System.Private.CoreLib/src/System/Single.cs b/src/libraries/System.Private.CoreLib/src/System/Single.cs index a4fa4fa4101c9..fe6400f40c449 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Single.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Single.cs @@ -529,12 +529,28 @@ public static bool IsPow2(float value) { uint bits = BitConverter.SingleToUInt32Bits(value); + if ((int)bits <= 0) + { + // Zero and negative values cannot be powers of 2 + return false; + } + byte biasedExponent = ExtractBiasedExponentFromBits(bits); uint trailingSignificand = ExtractTrailingSignificandFromBits(bits); - return (value > 0) - && (biasedExponent != MinBiasedExponent) && (biasedExponent != MaxBiasedExponent) - && (trailingSignificand == MinTrailingSignificand); + if (biasedExponent == MinBiasedExponent) + { + // Subnormal values have 1 bit set when they're powers of 2 + return uint.PopCount(trailingSignificand) == 1; + } + else if (biasedExponent == MaxBiasedExponent) + { + // NaN and Infinite values cannot be powers of 2 + return false; + } + + // Normal values have 0 bits set when they're powers of 2 + return trailingSignificand == MinTrailingSignificand; } /// @@ -1752,6 +1768,24 @@ public static float CosPi(float x) return result; } + /// + public static float DegreesToRadians(float degrees) + { + // NOTE: Don't change the algorithm without consulting the DIM + // which elaborates on why this implementation was chosen + + return (degrees * Pi) / 180.0f; + } + + /// + public static float RadiansToDegrees(float radians) + { + // NOTE: Don't change the algorithm without consulting the DIM + // which elaborates on why this implementation was chosen + + return (radians * 180.0f) / Pi; + } + /// [Intrinsic] public static float Sin(float x) => MathF.Sin(x); diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8.cs b/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8.cs index b7e4fe5ce6386..53a3916e466ee 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Text/Unicode/Utf8.cs @@ -330,7 +330,7 @@ internal static unsafe OperationStatus ToUtf16PreservingReplacement(ReadOnlySpan } } - /// Writes the specified interpolated string to the UTF8 byte span. + /// Writes the specified interpolated string to the UTF-8 byte span. /// The span to which the interpolated string should be formatted. /// The interpolated string. /// The number of characters written to the span. @@ -349,7 +349,7 @@ public static bool TryWrite(Span destination, [InterpolatedStringHandlerAr return false; } - /// Writes the specified interpolated string to the UTF8 byte span. + /// Writes the specified interpolated string to the UTF-8 byte span. /// The span to which the interpolated string should be formatted. /// An object that supplies culture-specific formatting information. /// The interpolated string. @@ -360,12 +360,12 @@ public static bool TryWrite(Span destination, IFormatProvider? provider, [ // is the same as the non-provider overload. TryWrite(destination, ref handler, out bytesWritten); - /// Provides a handler used by the language compiler to format interpolated strings into UTF8 byte spans. + /// Provides a handler used by the language compiler to format interpolated strings into UTF-8 byte spans. [EditorBrowsable(EditorBrowsableState.Never)] [InterpolatedStringHandler] public ref struct TryWriteInterpolatedStringHandler { - /// The destination UTF8 buffer. + /// The destination UTF-8 buffer. private readonly Span _destination; /// Optional provider to pass to IFormattable.ToString, ISpanFormattable.TryFormat, and IUtf8SpanFormattable.TryFormat calls. private readonly IFormatProvider? _provider; @@ -376,7 +376,7 @@ public ref struct TryWriteInterpolatedStringHandler /// Whether provides an ICustomFormatter. private readonly bool _hasCustomFormatter; - /// Creates a handler used to write an interpolated string into a UTF8 . + /// Creates a handler used to write an interpolated string into a UTF-8 . /// The number of constant characters outside of interpolation expressions in the interpolated string. /// The number of interpolation expressions in the interpolated string. /// The destination buffer. @@ -391,7 +391,7 @@ public TryWriteInterpolatedStringHandler(int literalLength, int formattedCount, _hasCustomFormatter = false; } - /// Creates a handler used to write an interpolated string into a UTF8 . + /// Creates a handler used to write an interpolated string into a UTF-8 . /// The number of constant characters outside of interpolation expressions in the interpolated string. /// The number of interpolation expressions in the interpolated string. /// The destination buffer. @@ -588,7 +588,7 @@ public bool AppendFormatted(scoped ReadOnlySpan value, int alignment = 0, return Fail(); } - /// Writes the specified span of UTF8 bytes to the handler. + /// Writes the specified span of UTF-8 bytes to the handler. /// The span to write. public bool AppendFormatted(scoped ReadOnlySpan utf8Value) { @@ -601,7 +601,7 @@ public bool AppendFormatted(scoped ReadOnlySpan utf8Value) return Fail(); } - /// Writes the specified span of UTF8 bytes to the handler. + /// Writes the specified span of UTF-8 bytes to the handler. /// The span to write. /// Minimum number of characters that should be written for this value. If the value is negative, it indicates left-aligned and the required minimum is the absolute value. /// The format string. diff --git a/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs b/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs index 71e2904b8dfbb..2d4700576196c 100644 --- a/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs +++ b/src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs @@ -529,6 +529,12 @@ internal static void ThrowArraySegmentCtorValidationFailedExceptions(Array? arra throw GetArraySegmentCtorValidationFailedException(array, offset, count); } + [DoesNotReturn] + internal static void ThrowInvalidOperationException_InvalidUtf8() + { + throw new InvalidOperationException(SR.InvalidOperation_InvalidUtf8); + } + [DoesNotReturn] internal static void ThrowFormatException_BadFormatSpecifier() { diff --git a/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.cs b/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.cs index 992035b92df60..2524b4fd53606 100644 --- a/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.cs +++ b/src/libraries/System.Private.CoreLib/src/System/TimeZoneInfo.Unix.cs @@ -33,8 +33,8 @@ private static bool IsUtcAlias (string id) case 69: // e case 101: // E return string.Equals(id, "Etc/UTC", StringComparison.OrdinalIgnoreCase) || + string.Equals(id, "Etc/UCT", StringComparison.OrdinalIgnoreCase) || string.Equals(id, "Etc/Universal", StringComparison.OrdinalIgnoreCase) || - string.Equals(id, "Etc/UTC", StringComparison.OrdinalIgnoreCase) || string.Equals(id, "Etc/Zulu", StringComparison.OrdinalIgnoreCase); case 85: // u case 117: // U diff --git a/src/libraries/System.Private.CoreLib/src/System/Version.cs b/src/libraries/System.Private.CoreLib/src/System/Version.cs index ab0c99cadef5c..99c26d59a9143 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Version.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Version.cs @@ -186,14 +186,14 @@ public bool TryFormat(Span destination, int fieldCount, out int charsWritt TryFormatCore(destination, fieldCount, out charsWritten); /// Tries to format this version instance into a span of bytes. - /// The span in which to write this instance's value formatted as a span of UTF8 bytes. + /// The span in which to write this instance's value formatted as a span of UTF-8 bytes. /// When this method returns, contains the number of bytes that were written in . /// if the formatting was successful; otherwise, . public bool TryFormat(Span utf8Destination, out int bytesWritten) => TryFormatCore(utf8Destination, DefaultFormatFieldCount, out bytesWritten); /// Tries to format this version instance into a span of bytes. - /// The span in which to write this instance's value formatted as a span of UTF8 bytes. + /// The span in which to write this instance's value formatted as a span of UTF-8 bytes. /// The number of components to return. This value ranges from 0 to 4. /// When this method returns, contains the number of bytes that were written in . /// if the formatting was successful; otherwise, . diff --git a/src/libraries/System.Private.DataContractSerialization/src/Resources/Strings.resx b/src/libraries/System.Private.DataContractSerialization/src/Resources/Strings.resx index fc55a5bcb1b49..37da646fbe96b 100644 --- a/src/libraries/System.Private.DataContractSerialization/src/Resources/Strings.resx +++ b/src/libraries/System.Private.DataContractSerialization/src/Resources/Strings.resx @@ -640,13 +640,13 @@ The value '{0}' cannot be represented with the type '{1}'. - An XML declaration with an encoding is required for all non-UTF8 documents. + An XML declaration with an encoding is required for all non UTF-8 documents. Version not found in XML declaration. - An XML declaration is required for all non-UTF8 documents. + An XML declaration is required for all non UTF-8 documents. No characters can appear before the XML declaration. @@ -766,7 +766,7 @@ UniqueId cannot be zero length. - '{0}' contains invalid UTF8 bytes. + '{0}' contains invalid UTF-8 bytes. XML version must be '1.0'. diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParser.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParser.cs index 4b9d94743da4d..96cd5df6ac1c9 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParser.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParser.cs @@ -1229,17 +1229,11 @@ private void ParseEntityDecl() if (isParamEntity) { - if (!_schemaInfo.ParameterEntities.ContainsKey(entityName)) - { - _schemaInfo.ParameterEntities.Add(entityName, entity); - } + _schemaInfo.ParameterEntities.TryAdd(entityName, entity); } else { - if (!_schemaInfo.GeneralEntities.ContainsKey(entityName)) - { - _schemaInfo.GeneralEntities.Add(entityName, entity); - } + _schemaInfo.GeneralEntities.TryAdd(entityName, entity); } entity.DeclaredInExternal = !ParsingInternalSubset; entity.ParsingInProgress = true; diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs index 8bc28f86cb469..fb13f2f8fce68 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/DtdParserAsync.cs @@ -861,17 +861,11 @@ private async Task ParseEntityDeclAsync() if (isParamEntity) { - if (!_schemaInfo.ParameterEntities.ContainsKey(entityName)) - { - _schemaInfo.ParameterEntities.Add(entityName, entity); - } + _schemaInfo.ParameterEntities.TryAdd(entityName, entity); } else { - if (!_schemaInfo.GeneralEntities.ContainsKey(entityName)) - { - _schemaInfo.GeneralEntities.Add(entityName, entity); - } + _schemaInfo.GeneralEntities.TryAdd(entityName, entity); } entity.DeclaredInExternal = !ParsingInternalSubset; entity.ParsingInProgress = true; diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaCollectionCompiler.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaCollectionCompiler.cs index 48ff221c96fdd..c4cdfe3e3acac 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaCollectionCompiler.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaCollectionCompiler.cs @@ -305,10 +305,7 @@ private void Output(SchemaInfo schemaInfo) SchemaNotation no = new SchemaNotation(notation.QualifiedName); no.SystemLiteral = notation.System; no.Pubid = notation.Public; - if (!schemaInfo.Notations.ContainsKey(no.Name.Name)) - { - schemaInfo.Notations.Add(no.Name.Name, no); - } + schemaInfo.Notations.TryAdd(no.Name.Name, no); } } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaInfo.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaInfo.cs index 7fc94acbb4355..df934c1157617 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaInfo.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaInfo.cs @@ -299,10 +299,7 @@ internal void Add(SchemaInfo sinfo, ValidationEventHandler? eventhandler) foreach (string tns in sinfo.TargetNamespaces.Keys) { - if (!_targetNamespaces.ContainsKey(tns)) - { - _targetNamespaces.Add(tns, true); - } + _targetNamespaces.TryAdd(tns, true); } foreach (KeyValuePair entry in sinfo._elementDecls) @@ -321,17 +318,11 @@ internal void Add(SchemaInfo sinfo, ValidationEventHandler? eventhandler) } foreach (SchemaAttDef attdef in sinfo.AttributeDecls.Values) { - if (!_attributeDecls.ContainsKey(attdef.Name)) - { - _attributeDecls.Add(attdef.Name, attdef); - } + _attributeDecls.TryAdd(attdef.Name, attdef); } foreach (SchemaNotation notation in sinfo.Notations.Values) { - if (!Notations.ContainsKey(notation.Name.Name)) - { - Notations.Add(notation.Name.Name, notation); - } + Notations.TryAdd(notation.Name.Name, notation); } } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaSetCompiler.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaSetCompiler.cs index 9ede49c1e7303..6fe5a25c62c9e 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaSetCompiler.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/SchemaSetCompiler.cs @@ -167,10 +167,7 @@ private void Output(SchemaInfo schemaInfo) SchemaNotation no = new SchemaNotation(notation!.QualifiedName); no.SystemLiteral = notation.System; no.Pubid = notation.Public; - if (!schemaInfo.Notations.ContainsKey(no.Name.Name)) - { - schemaInfo.Notations.Add(no.Name.Name, no); - } + schemaInfo.Notations.TryAdd(no.Name.Name, no); } } diff --git a/src/libraries/System.Private.Xml/src/System/Xml/Schema/XdrBuilder.cs b/src/libraries/System.Private.Xml/src/System/Xml/Schema/XdrBuilder.cs index e37bbe1715e3f..2c26833736760 100644 --- a/src/libraries/System.Private.Xml/src/System/Xml/Schema/XdrBuilder.cs +++ b/src/libraries/System.Private.Xml/src/System/Xml/Schema/XdrBuilder.cs @@ -1051,11 +1051,7 @@ private static void XDR_BuildAttributeType_Name(XdrBuilder builder, object obj, // Global AttributeTypes are URN qualified so that we can look them up across schemas. qname = new XmlQualifiedName(qname.Name, builder._TargetNamespace); builder._AttributeDef._AttDef.Name = qname; - if (!builder._SchemaInfo.AttributeDecls.ContainsKey(qname)) - { - builder._SchemaInfo.AttributeDecls.Add(qname, builder._AttributeDef._AttDef); - } - else + if (!builder._SchemaInfo.AttributeDecls.TryAdd(qname, builder._AttributeDef._AttDef)) { builder.SendValidationEvent(SR.Sch_DupAttribute, XmlQualifiedName.ToString(qname.Name, prefix)); } diff --git a/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln b/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln index 7a5969e89e2c8..b774027405c40 100644 --- a/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln +++ b/src/libraries/System.Reflection.Emit/System.Reflection.Emit.sln @@ -1,4 +1,4 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 +Microsoft Visual Studio Solution File, Format Version 12.00 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.Private.CoreLib", "..\..\coreclr\System.Private.CoreLib\System.Private.CoreLib.csproj", "{772C93D4-FC45-46AA-B09F-26F01B672EDC}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestUtilities", "..\Common\tests\TestUtilities\TestUtilities.csproj", "{E5543842-139D-43BD-B604-E65EBB91649E}" @@ -596,4 +596,4 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {739AA767-154B-4C69-8C9B-C3D332833D92} EndGlobalSection -EndGlobal +EndGlobal \ No newline at end of file diff --git a/src/libraries/System.Reflection.Emit/src/Resources/Strings.resx b/src/libraries/System.Reflection.Emit/src/Resources/Strings.resx index 5ff83e0f7b86d..54123a4d079f2 100644 --- a/src/libraries/System.Reflection.Emit/src/Resources/Strings.resx +++ b/src/libraries/System.Reflection.Emit/src/Resources/Strings.resx @@ -171,4 +171,16 @@ The generic parameters are already defined on this MethodBuilder. + + Should only set visibility flags when creating EnumBuilder. + + + Constant does not match the defined type. + + + Null is not a valid constant value for this type. + + + Underlying type information on enumeration is not specified. + \ No newline at end of file diff --git a/src/libraries/System.Reflection.Emit/src/System.Reflection.Emit.csproj b/src/libraries/System.Reflection.Emit/src/System.Reflection.Emit.csproj index 16e302c4efce1..dac4ca741abbc 100644 --- a/src/libraries/System.Reflection.Emit/src/System.Reflection.Emit.csproj +++ b/src/libraries/System.Reflection.Emit/src/System.Reflection.Emit.csproj @@ -7,14 +7,16 @@ + - + + diff --git a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/FieldBuilderImpl.cs b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/FieldBuilderImpl.cs index 0e4fe230fb8cd..39e8881c2ab8c 100644 --- a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/FieldBuilderImpl.cs +++ b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/FieldBuilderImpl.cs @@ -22,6 +22,7 @@ internal sealed class FieldBuilderImpl : FieldBuilder internal MarshallingData? _marshallingData; internal int _offset; internal List? _customAttributes; + internal object? _defaultValue = DBNull.Value; internal FieldBuilderImpl(TypeBuilderImpl typeBuilder, string fieldName, Type type, FieldAttributes attributes) { @@ -32,7 +33,61 @@ internal FieldBuilderImpl(TypeBuilderImpl typeBuilder, string fieldName, Type ty _offset = -1; } - protected override void SetConstantCore(object? defaultValue) => throw new NotImplementedException(); + protected override void SetConstantCore(object? defaultValue) + { + if (defaultValue == null) + { + // nullable value types can hold null value. + if (_fieldType.IsValueType && !(_fieldType.IsGenericType && _fieldType.GetGenericTypeDefinition() == typeof(Nullable<>))) + throw new ArgumentException(SR.Argument_ConstantNull); + } + else + { + Type type = defaultValue.GetType(); + Type destType = _fieldType; + + // We should allow setting a constant value on a ByRef parameter + if (destType.IsByRef) + destType = destType.GetElementType()!; + + // Convert nullable types to their underlying type. + destType = Nullable.GetUnderlyingType(destType) ?? destType; + + if (destType.IsEnum) + { + Type underlyingType; + if (destType is EnumBuilderImpl enumBldr) + { + underlyingType = enumBldr.GetEnumUnderlyingType(); + + if (type != enumBldr._typeBuilder.UnderlyingSystemType && type != underlyingType) + throw new ArgumentException(SR.Argument_ConstantDoesntMatch); + } + else if (destType is TypeBuilderImpl typeBldr) + { + underlyingType = typeBldr.UnderlyingSystemType; + + if (underlyingType == null || (type != typeBldr.UnderlyingSystemType && type != underlyingType)) + throw new ArgumentException(SR.Argument_ConstantDoesntMatch); + } + else + { + underlyingType = Enum.GetUnderlyingType(destType); + + if (type != destType && type != underlyingType) + throw new ArgumentException(SR.Argument_ConstantDoesntMatch); + } + } + else + { + if (!destType.IsAssignableFrom(type)) + throw new ArgumentException(SR.Argument_ConstantDoesntMatch); + } + + _defaultValue = defaultValue; + } + } + protected override void SetCustomAttributeCore(ConstructorInfo con, ReadOnlySpan binaryAttribute) { // Handle pseudo custom attributes diff --git a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/ModuleBuilderImpl.cs b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/ModuleBuilderImpl.cs index a135ed225785e..c3ca6012544f3 100644 --- a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/ModuleBuilderImpl.cs +++ b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/ModuleBuilderImpl.cs @@ -247,6 +247,11 @@ private void WriteFields(TypeBuilderImpl typeBuilder) { AddMarshalling(fieldHandle, field._marshallingData.SerializeMarshallingData()); } + + if (field._defaultValue != DBNull.Value) + { + AddDefaultValue(fieldHandle, field._defaultValue); + } } } @@ -325,8 +330,8 @@ private void AddGenericTypeParametersAndConstraintsCustomAttributes(EntityHandle } } - private void AddDefaultValue(ParameterHandle parameterHandle, object? defaultValue) => - _metadataBuilder.AddConstant(parent: parameterHandle, value: defaultValue); + private void AddDefaultValue(EntityHandle parentHandle, object? defaultValue) => + _metadataBuilder.AddConstant(parent: parentHandle, value: defaultValue); private FieldDefinitionHandle AddFieldDefinition(FieldBuilderImpl field, BlobBuilder fieldSignature) => _metadataBuilder.AddFieldDefinition( @@ -407,6 +412,11 @@ internal EntityHandle GetTypeHandle(Type type) return tb._handle; } + if (type is EnumBuilderImpl eb && Equals(eb.Module)) + { + return eb._typeBuilder._handle; + } + return GetTypeReference(type); } @@ -429,11 +439,19 @@ internal TypeBuilder DefineNestedType(string name, TypeAttributes attr, [Dynamic public override int GetStringMetadataToken(string stringConstant) => throw new NotImplementedException(); public override int GetTypeMetadataToken(Type type) => throw new NotImplementedException(); protected override void CreateGlobalFunctionsCore() => throw new NotImplementedException(); - protected override EnumBuilder DefineEnumCore(string name, TypeAttributes visibility, Type underlyingType) => throw new NotImplementedException(); + + protected override EnumBuilder DefineEnumCore(string name, TypeAttributes visibility, Type underlyingType) + { + TypeDefinitionHandle typeHandle = MetadataTokens.TypeDefinitionHandle(++_nextTypeDefRowId); + EnumBuilderImpl enumBuilder = new EnumBuilderImpl(name, underlyingType, visibility, this, typeHandle); + _typeDefinitions.Add(enumBuilder._typeBuilder); + return enumBuilder; + } protected override MethodBuilder DefineGlobalMethodCore(string name, MethodAttributes attributes, CallingConventions callingConvention, Type? returnType, Type[]? requiredReturnTypeCustomModifiers, Type[]? optionalReturnTypeCustomModifiers, Type[]? parameterTypes, Type[][]? requiredParameterTypeCustomModifiers, Type[][]? optionalParameterTypeCustomModifiers) => throw new NotImplementedException(); protected override FieldBuilder DefineInitializedDataCore(string name, byte[] data, FieldAttributes attributes) => throw new NotImplementedException(); [RequiresUnreferencedCode("P/Invoke marshalling may dynamically access members that could be trimmed.")] protected override MethodBuilder DefinePInvokeMethodCore(string name, string dllName, string entryName, MethodAttributes attributes, CallingConventions callingConvention, Type? returnType, Type[]? parameterTypes, CallingConvention nativeCallConv, CharSet nativeCharSet) => throw new NotImplementedException(); + protected override TypeBuilder DefineTypeCore(string name, TypeAttributes attr, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type? parent, Type[]? interfaces, PackingSize packingSize, int typesize) { @@ -442,6 +460,7 @@ protected override TypeBuilder DefineTypeCore(string name, TypeAttributes attr, _typeDefinitions.Add(_type); return _type; } + protected override FieldBuilder DefineUninitializedDataCore(string name, int size, FieldAttributes attributes) => throw new NotImplementedException(); protected override MethodInfo GetArrayMethodCore(Type arrayClass, string methodName, CallingConventions callingConvention, Type? returnType, Type[]? parameterTypes) => throw new NotImplementedException(); protected override void SetCustomAttributeCore(ConstructorInfo con, ReadOnlySpan binaryAttribute) diff --git a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/TypeBuilderImpl.cs b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/TypeBuilderImpl.cs index 828f3a0820fb0..ba77906508ebb 100644 --- a/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/TypeBuilderImpl.cs +++ b/src/libraries/System.Reflection.Emit/src/System/Reflection/Emit/TypeBuilderImpl.cs @@ -15,6 +15,7 @@ internal sealed class TypeBuilderImpl : TypeBuilder private readonly ModuleBuilderImpl _module; private readonly string _name; private readonly string? _namespace; + private string? _strFullName; [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] private Type? _typeParent; private readonly TypeBuilderImpl? _declaringType; @@ -22,6 +23,7 @@ internal sealed class TypeBuilderImpl : TypeBuilder private TypeAttributes _attributes; private PackingSize _packingSize; private int _typeSize; + private Type? _enumUnderlyingType; internal readonly TypeDefinitionHandle _handle; internal readonly List _methodDefinitions = new(); @@ -73,14 +75,24 @@ protected override void AddInterfaceImplementationCore([DynamicallyAccessedMembe _interfaces.Add(interfaceType); } + [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2083:DynamicallyAccessedMembers", Justification = "Not sure how to handle")] [return: DynamicallyAccessedMembers((DynamicallyAccessedMemberTypes)(-1))] - protected override TypeInfo CreateTypeInfoCore() => throw new NotImplementedException(); + protected override TypeInfo CreateTypeInfoCore() => this; protected override ConstructorBuilder DefineConstructorCore(MethodAttributes attributes, CallingConventions callingConvention, Type[]? parameterTypes, Type[][]? requiredCustomModifiers, Type[][]? optionalCustomModifiers) => throw new NotImplementedException(); protected override ConstructorBuilder DefineDefaultConstructorCore(MethodAttributes attributes) => throw new NotImplementedException(); protected override EventBuilder DefineEventCore(string name, EventAttributes attributes, Type eventtype) => throw new NotImplementedException(); protected override FieldBuilder DefineFieldCore(string fieldName, Type type, Type[]? requiredCustomModifiers, Type[]? optionalCustomModifiers, FieldAttributes attributes) { + if (_enumUnderlyingType == null && IsEnum) + { + if ((attributes & FieldAttributes.Static) == 0) + { + // remember the underlying type for enum type + _enumUnderlyingType = type; + } + } + var field = new FieldBuilderImpl(this, fieldName, type, attributes); _fieldDefinitions.Add(field); return field; @@ -156,6 +168,11 @@ protected override void SetCustomAttributeCore(ConstructorInfo con, ReadOnlySpan _customAttributes.Add(new CustomAttributeWrapper(con, binaryAttribute)); } + internal void SetCustomAttribute(ConstructorInfo con, ReadOnlySpan binaryAttribute) + { + SetCustomAttributeCore(con, binaryAttribute); + } + private void ParseStructLayoutAttribute(ConstructorInfo con, ReadOnlySpan binaryAttribute) { CustomAttributeInfo attributeInfo = CustomAttributeInfo.DecodeCustomAttribute(con, binaryAttribute); @@ -249,11 +266,27 @@ protected override void SetParentCore([DynamicallyAccessedMembers(DynamicallyAcc public override object[] GetCustomAttributes(Type attributeType, bool inherit) => throw new NotImplementedException(); public override Type GetElementType() => throw new NotSupportedException(); public override string? AssemblyQualifiedName => throw new NotSupportedException(); - public override string? FullName => throw new NotSupportedException(); + public override string? FullName => _strFullName ??= TypeNameBuilder.ToString(this, TypeNameBuilder.Format.FullName); public override string? Namespace => _namespace; public override Assembly Assembly => _module.Assembly; public override Module Module => _module; - public override Type UnderlyingSystemType => this; + public override Type UnderlyingSystemType + { + get + { + if (IsEnum) + { + if (_enumUnderlyingType == null) + throw new InvalidOperationException(SR.InvalidOperation_NoUnderlyingTypeOnEnum); + + return _enumUnderlyingType; + } + else + { + return this; + } + } + } public override Guid GUID => throw new NotSupportedException(); public override Type? BaseType => _typeParent; public override int MetadataToken => MetadataTokens.GetToken(_handle); diff --git a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveCustomAttributeTests.cs b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveCustomAttributeTests.cs index 79b9e77bfdf14..a43222afe34f0 100644 --- a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveCustomAttributeTests.cs +++ b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveCustomAttributeTests.cs @@ -21,9 +21,9 @@ public class AssemblySaveCustomAttributeTests }; private static readonly Type s_comVisibleType = typeof(ComVisibleAttribute); - private static readonly Type s_guideType = typeof(GuidAttribute); + private static readonly Type s_guidType = typeof(GuidAttribute); private static readonly (ConstructorInfo con, object[] args) s_comVisiblePair = (s_comVisibleType.GetConstructor(new Type[] { typeof(bool) }), new object[] { true }); - private static readonly (ConstructorInfo con, object[] args) s_guidPair = (s_guideType.GetConstructor(new Type[] { typeof(string) }), new object[] { "9ED54F84-A89D-4fcd-A854-44251E925F09" }); + private static readonly (ConstructorInfo con, object[] args) s_guidPair = (s_guidType.GetConstructor(new Type[] { typeof(string) }), new object[] { "9ED54F84-A89D-4fcd-A854-44251E925F09" }); private static AssemblyName PopulateAssemblyName() { @@ -42,10 +42,10 @@ public void AssemblyModuleWithCustomAttributes() { WriteAssemblyToDisk(assemblyName, Type.EmptyTypes, file.Path, _attributes, _attributes); - Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); Module moduleFromDisk = assemblyFromDisk.Modules.First(); - AssemblyTools.AssertAssemblyNameAndModule(assemblyName, assemblyFromDisk.GetName(), moduleFromDisk); + AssemblySaveTools.AssertAssemblyNameAndModule(assemblyName, assemblyFromDisk.GetName(), moduleFromDisk); ValidateAttributes(assemblyFromDisk.GetCustomAttributesData()); ValidateAttributes(moduleFromDisk.GetCustomAttributesData()); } @@ -61,7 +61,7 @@ public void MethodFieldWithCustomAttributes() WriteAssemblyToDisk(PopulateAssemblyName(), types, file.Path, typeAttributes: _attributes, methodAttributes: _attributes, fieldAttributes: _attributes); - Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); Module moduleFromDisk = assemblyFromDisk.Modules.First(); Type[] typesFromDisk = moduleFromDisk.GetTypes(); @@ -75,9 +75,9 @@ public void MethodFieldWithCustomAttributes() MethodInfo[] methodsFromDisk = typeFromDisk.IsValueType ? typeFromDisk.GetMethods(BindingFlags.DeclaredOnly) : typeFromDisk.GetMethods(); FieldInfo[] fieldsFromDisk = typeFromDisk.GetFields(); - AssemblyTools.AssertTypeProperties(sourceType, typeFromDisk); - AssemblyTools.AssertMethods(sourceType.IsValueType ? sourceType.GetMethods(BindingFlags.DeclaredOnly) : sourceType.GetMethods(), methodsFromDisk); - AssemblyTools.AssertFields(sourceType.GetFields(), fieldsFromDisk); + AssemblySaveTools.AssertTypeProperties(sourceType, typeFromDisk); + AssemblySaveTools.AssertMethods(sourceType.IsValueType ? sourceType.GetMethods(BindingFlags.DeclaredOnly) : sourceType.GetMethods(), methodsFromDisk); + AssemblySaveTools.AssertFields(sourceType.GetFields(), fieldsFromDisk); ValidateAttributes(typeFromDisk.GetCustomAttributesData()); for (int j = 0; j < methodsFromDisk.Length; j++) @@ -109,7 +109,7 @@ private void ValidateAttributes(IList attributesFromDisk) { Assert.Equal(s_guidPair.con.MetadataToken, attribute.Constructor.MetadataToken); Assert.Equal(s_guidPair.args[0].GetType().FullName, attribute.ConstructorArguments[0].ArgumentType.FullName); - Assert.Equal(attribute.AttributeType.Name, s_guideType.Name); + Assert.Equal(attribute.AttributeType.Name, s_guidType.Name); Assert.Equal(s_guidPair.args[0], attribute.ConstructorArguments[0].Value); } } @@ -119,7 +119,7 @@ private static void WriteAssemblyToDisk(AssemblyName assemblyName, Type[] types, List? moduleAttributes = null, List? typeAttributes = null, List? methodAttributes = null, List? fieldAttributes = null) { - AssemblyBuilder assemblyBuilder = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod(assemblyName, assemblyAttributes, typeof(string), out MethodInfo saveMethod); + AssemblyBuilder assemblyBuilder = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod(assemblyName, assemblyAttributes, typeof(string), out MethodInfo saveMethod); ModuleBuilder mb = assemblyBuilder.DefineDynamicModule(assemblyName.Name); PopulateMembersForModule(mb, types, moduleAttributes, typeAttributes, methodAttributes, fieldAttributes); saveMethod.Invoke(assemblyBuilder, new object[] { fileLocation }); @@ -191,14 +191,14 @@ public void CreateStructWithPseudoCustomAttributesTest() new CustomAttributeBuilder(typeof(SpecialNameAttribute).GetConstructor(Type.EmptyTypes), new object[] { }) }; - AssemblyBuilder ab = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod( + AssemblyBuilder ab = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod( PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); TypeBuilder tb = ab.DefineDynamicModule("Module").DefineType(type.FullName, type.Attributes, type.BaseType); DefineFieldsAndSetAttributes(fieldAttributes.ToList(), type.GetFields(), tb); typeAttributes.ForEach(tb.SetCustomAttribute); saveMethod.Invoke(ab, new object[] { file.Path }); - Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); Module moduleFromDisk = assemblyFromDisk.Modules.First(); Type testType = moduleFromDisk.GetTypes()[0]; IList attributesFromDisk = testType.GetCustomAttributesData(); @@ -280,13 +280,13 @@ public void InterfacesWithPseudoCustomAttributes() new CustomAttributeBuilder(marshalAsEnumCtor, new object[] { UnmanagedType.CustomMarshaler }, new FieldInfo[] { typeof(MarshalAsAttribute).GetField("MarshalType")}, new object[] { typeof(EmptyTestClass).AssemblyQualifiedName })}; - AssemblyBuilder ab = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod(PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); + AssemblyBuilder ab = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod(PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); TypeBuilder tb = ab.DefineDynamicModule("Module").DefineType(type.FullName, type.Attributes); typeAttributes.ForEach(tb.SetCustomAttribute); DefineMethodsAndSetAttributes(methodAttributes, tb, type.GetMethods(), parameterAttributes); saveMethod.Invoke(ab, new object[] { file.Path }); - Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); Type testType = assemblyFromDisk.Modules.First().GetTypes()[0]; IList attributesFromDisk = testType.GetCustomAttributesData(); @@ -429,7 +429,7 @@ public void MarshalAsPseudoCustomAttributesTest(CustomAttributeBuilder attribute using (TempFile file = TempFile.Create()) { Type type = typeof(StructWithFields); - AssemblyBuilder ab = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod( + AssemblyBuilder ab = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod( PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); TypeBuilder tb = ab.DefineDynamicModule("Module").DefineType(type.FullName, type.Attributes, type.BaseType); FieldInfo stringField = type.GetFields()[1]; @@ -437,7 +437,7 @@ public void MarshalAsPseudoCustomAttributesTest(CustomAttributeBuilder attribute fb.SetCustomAttribute(attribute); saveMethod.Invoke(ab, new object[] { file.Path }); - Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); + Assembly assemblyFromDisk = AssemblySaveTools.LoadAssemblyFromPath(file.Path); FieldInfo field = assemblyFromDisk.Modules.First().GetTypes()[0].GetFields()[0]; CustomAttributeData attributeFromDisk = field.GetCustomAttributesData()[0]; @@ -458,5 +458,51 @@ public void MarshalAsPseudoCustomAttributesTest(CustomAttributeBuilder attribute } } } + + [Fact] + public void EnumBuilderSetCustomAttributesTest() + { + using (TempFile file = TempFile.Create()) + { + AssemblyBuilder ab = AssemblySaveTools.PopulateAssemblyBuilderAndSaveMethod( + PopulateAssemblyName(), null, typeof(string), out MethodInfo saveMethod); + EnumBuilder enumBuilder = ab.DefineDynamicModule("Module").DefineEnum("TestEnum", TypeAttributes.Public, typeof(int)); + + ConstructorInfo attributeConstructor = typeof(BoolAttribute).GetConstructor(new Type[] { typeof(bool) }); + CustomAttributeBuilder attributeBuilder = new CustomAttributeBuilder(attributeConstructor, new object[] { true }); + enumBuilder.SetCustomAttribute(attributeBuilder); + enumBuilder.SetCustomAttribute(new CustomAttributeBuilder(s_guidPair.con, s_guidPair.args)); + saveMethod.Invoke(ab, new object[] { file.Path }); + + Type testEnum = AssemblySaveTools.LoadAssemblyFromPath(file.Path).Modules.First().GetType("TestEnum"); + + Assert.True(testEnum.IsEnum); + AssemblySaveTools.AssertTypeProperties(enumBuilder, testEnum); + + CustomAttributeData[] attributes = testEnum.GetCustomAttributesData().ToArray(); + if (attributes[0].AttributeType.Name == s_guidType.Name) + { + AssertEnumAttributes(s_guidType.FullName, "9ED54F84-A89D-4fcd-A854-44251E925F09", attributes[0]); + AssertEnumAttributes(typeof(BoolAttribute).FullName, true, attributes[1]); + } + else + { + AssertEnumAttributes(s_guidType.FullName, "9ED54F84-A89D-4fcd-A854-44251E925F09", attributes[1]); + AssertEnumAttributes(typeof(BoolAttribute).FullName, true, attributes[0]); + } + + } + } + private void AssertEnumAttributes(string fullName, object value, CustomAttributeData testAttrbiute) + { + Assert.Equal(fullName, testAttrbiute.AttributeType.FullName); + Assert.Equal(value, testAttrbiute.ConstructorArguments[0].Value); + } + } + + public class BoolAttribute : Attribute + { + private bool _b; + public BoolAttribute(bool myBool) { _b = myBool; } } } diff --git a/src/libraries/System.Reflection.Emit/tests/System.Reflection.Emit.Tests.csproj b/src/libraries/System.Reflection.Emit/tests/System.Reflection.Emit.Tests.csproj index f672dc37d9e82..1395d38e10de5 100644 --- a/src/libraries/System.Reflection.Emit/tests/System.Reflection.Emit.Tests.csproj +++ b/src/libraries/System.Reflection.Emit/tests/System.Reflection.Emit.Tests.csproj @@ -63,8 +63,9 @@ - - + + + diff --git a/src/libraries/System.Reflection.Metadata/src/Resources/Strings.resx b/src/libraries/System.Reflection.Metadata/src/Resources/Strings.resx index 410b7d28ea88d..c035a3efee098 100644 --- a/src/libraries/System.Reflection.Metadata/src/Resources/Strings.resx +++ b/src/libraries/System.Reflection.Metadata/src/Resources/Strings.resx @@ -226,7 +226,7 @@ Image is either too small or contains an invalid byte offset or count. - The MetadataStringDecoder instance used to instantiate the Metadata reader must have a UTF8 encoding. + The MetadataStringDecoder instance used to instantiate the Metadata reader must have a UTF-8 encoding. Invalid constant value. diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/Utilities/MemoryBlock.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/Utilities/MemoryBlock.cs index 64326d2bce4fa..cfd8d863480ed 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/Utilities/MemoryBlock.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Internal/Utilities/MemoryBlock.cs @@ -283,11 +283,11 @@ internal string PeekUtf8(int offset, int byteCount) } /// - /// Read UTF8 at the given offset up to the given terminator, null terminator, or end-of-block. + /// Read UTF-8 at the given offset up to the given terminator, null terminator, or end-of-block. /// - /// Offset in to the block where the UTF8 bytes start. - /// UTF8 encoded prefix to prepend to the bytes at the offset before decoding. - /// The UTF8 decoder to use that allows user to adjust fallback and/or reuse existing strings without allocating a new one. + /// Offset in to the block where the UTF-8 bytes start. + /// UTF-8 encoded prefix to prepend to the bytes at the offset before decoding. + /// The UTF-8 decoder to use that allows user to adjust fallback and/or reuse existing strings without allocating a new one. /// The number of bytes read, which includes the terminator if we did not hit the end of the block. /// A character in the ASCII range that marks the end of the string. /// If a value other than '\0' is passed we still stop at the null terminator if encountered first. @@ -304,7 +304,7 @@ internal string PeekUtf8NullTerminated(int offset, byte[]? prefix, MetadataStrin /// Get number of bytes from offset to given terminator, null terminator, or end-of-block (whichever comes first). /// Returned length does not include the terminator, but numberOfBytesRead out parameter does. /// - /// Offset in to the block where the UTF8 bytes start. + /// Offset in to the block where the UTF-8 bytes start. /// A character in the ASCII range that marks the end of the string. /// If a value other than '\0' is passed we still stop at the null terminator if encountered first. /// The number of bytes read, which includes the terminator if we did not hit the end of the block. diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobBuilder.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobBuilder.cs index 102258b6c61ee..093f60cf7197c 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobBuilder.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobBuilder.cs @@ -951,7 +951,7 @@ public void WriteReference(int reference, bool isSmall) } /// - /// Writes UTF16 (little-endian) encoded string at the current position. + /// Writes UTF-16 (little-endian) encoded string at the current position. /// /// is null. /// Builder is not writable, it has been linked with another one. @@ -971,7 +971,7 @@ public void WriteUTF16(char[] value) } /// - /// Writes UTF16 (little-endian) encoded string at the current position. + /// Writes UTF-16 (little-endian) encoded string at the current position. /// /// is null. /// Builder is not writable, it has been linked with another one. @@ -1014,7 +1014,7 @@ private void WriteUTF16(ReadOnlySpan value) /// Writes string in SerString format (see ECMA-335-II 23.3 Custom attributes). /// /// - /// The string is UTF8 encoded and prefixed by the its size in bytes. + /// The string is UTF-8 encoded and prefixed by the its size in bytes. /// Null string is represented as a single byte 0xFF. /// /// Builder is not writable, it has been linked with another one. @@ -1033,9 +1033,9 @@ public void WriteSerializedString(string? value) /// Writes string in User String (#US) heap format (see ECMA-335-II 24.2.4 #US and #Blob heaps): /// /// - /// The string is UTF16 encoded and prefixed by the its size in bytes. + /// The string is UTF-16 encoded and prefixed by the its size in bytes. /// - /// This final byte holds the value 1 if and only if any UTF16 character within the string has any bit set in its top byte, + /// This final byte holds the value 1 if and only if any UTF-16 character within the string has any bit set in its top byte, /// or its low byte is any of the following: 0x01-0x08, 0x0E-0x1F, 0x27, 0x2D, 0x7F. Otherwise, it holds 0. /// The 1 signifies Unicode characters that require handling beyond that normally provided for 8-bit encoding sets. /// @@ -1053,7 +1053,7 @@ public void WriteUserString(string value) } /// - /// Writes UTF8 encoded string at the current position. + /// Writes UTF-8 encoded string at the current position. /// /// Constant value. /// diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobReader.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobReader.cs index 2ec50504ad745..589f8c501d8ee 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobReader.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobReader.cs @@ -387,7 +387,7 @@ public int IndexOf(byte value) } /// - /// Reads UTF8 encoded string starting at the current position. + /// Reads UTF-8 encoded string starting at the current position. /// /// The number of bytes to read. /// The string. @@ -400,7 +400,7 @@ public string ReadUTF8(int byteCount) } /// - /// Reads UTF16 (little-endian) encoded string starting at the current position. + /// Reads UTF-16 (little-endian) encoded string starting at the current position. /// /// The number of bytes to read. /// The string. @@ -578,7 +578,7 @@ public SignatureTypeCode ReadSignatureTypeCode() /// /// Reads a string encoded as a compressed integer containing its length followed by - /// its contents in UTF8. Null strings are encoded as a single 0xFF byte. + /// its contents in UTF-8. Null strings are encoded as a single 0xFF byte. /// /// Defined as a 'SerString' in the ECMA CLI specification. /// String value or null. diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobWriter.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobWriter.cs index a9bd128811155..4be040305ad98 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobWriter.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/BlobWriter.cs @@ -366,7 +366,7 @@ public void WriteReference(int reference, bool isSmall) } /// - /// Writes UTF16 (little-endian) encoded string at the current position. + /// Writes UTF-16 (little-endian) encoded string at the current position. /// /// is null. public void WriteUTF16(char[] value) @@ -380,7 +380,7 @@ public void WriteUTF16(char[] value) } /// - /// Writes UTF16 (little-endian) encoded string at the current position. + /// Writes UTF-16 (little-endian) encoded string at the current position. /// /// is null. public void WriteUTF16(string value) @@ -412,7 +412,7 @@ private void WriteUTF16(ReadOnlySpan value) /// Writes string in SerString format (see ECMA-335-II 23.3 Custom attributes). /// /// - /// The string is UTF8 encoded and prefixed by the its size in bytes. + /// The string is UTF-8 encoded and prefixed by the its size in bytes. /// Null string is represented as a single byte 0xFF. /// /// Builder is not writable, it has been linked with another one. @@ -431,9 +431,9 @@ public void WriteSerializedString(string? str) /// Writes string in User String (#US) heap format (see ECMA-335-II 24.2.4 #US and #Blob heaps): /// /// - /// The string is UTF16 encoded and prefixed by the its size in bytes. + /// The string is UTF-16 encoded and prefixed by the its size in bytes. /// - /// This final byte holds the value 1 if and only if any UTF16 character within the string has any bit set in its top byte, + /// This final byte holds the value 1 if and only if any UTF-16 character within the string has any bit set in its top byte, /// or its low byte is any of the following: 0x01-0x08, 0x0E-0x1F, 0x27, 0x2D, 0x7F. Otherwise, it holds 0. /// The 1 signifies Unicode characters that require handling beyond that normally provided for 8-bit encoding sets. /// @@ -451,7 +451,7 @@ public void WriteUserString(string value) } /// - /// Writes UTF8 encoded string at the current position. + /// Writes UTF-8 encoded string at the current position. /// /// is null. public void WriteUTF8(string value, bool allowUnpairedSurrogates) diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataBuilder.Heaps.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataBuilder.Heaps.cs index 142ea5f67c6f9..21e47c8b22c1c 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataBuilder.Heaps.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataBuilder.Heaps.cs @@ -245,7 +245,7 @@ public BlobHandle GetOrAddBlob(ImmutableArray value) /// /// Encodes a constant value to a blob and adds it to the Blob heap, if it's not there already. - /// Uses UTF16 to encode string constants. + /// Uses UTF-16 to encode string constants. /// /// Constant value. /// Handle to the added or existing blob. @@ -264,7 +264,7 @@ public unsafe BlobHandle GetOrAddConstantBlob(object? value) } /// - /// Encodes a string using UTF16 encoding to a blob and adds it to the Blob heap, if it's not there already. + /// Encodes a string using UTF-16 encoding to a blob and adds it to the Blob heap, if it's not there already. /// /// String. /// Handle to the added or existing blob. @@ -289,7 +289,7 @@ public BlobHandle GetOrAddBlobUTF16(string value) } /// - /// Encodes a string using UTF8 encoding to a blob and adds it to the Blob heap, if it's not there already. + /// Encodes a string using UTF-8 encoding to a blob and adds it to the Blob heap, if it's not there already. /// /// Constant value. /// diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataRootBuilder.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataRootBuilder.cs index bb6338dd853b2..2945d14acbfb5 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataRootBuilder.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/Ecma335/MetadataRootBuilder.cs @@ -50,7 +50,7 @@ public sealed class MetadataRootBuilder /// It does not enforce all specification requirements on metadata tables. /// /// is null. - /// is too long (the number of bytes when UTF8-encoded must be less than 255). + /// is too long (the number of bytes when UTF-8 encoded must be less than 255). public MetadataRootBuilder(MetadataBuilder tablesAndHeaps, string? metadataVersion = null, bool suppressValidation = false) { if (tablesAndHeaps is null) diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs index a275a9b5a4924..3739ce09cad76 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs @@ -1018,7 +1018,7 @@ internal void GetLocalConstantRange(LocalScopeHandle scope, out int firstConstan public MetadataStringComparer StringComparer => new MetadataStringComparer(this); /// - /// The decoder used by the reader to produce instances from UTF8 encoded byte sequences. + /// The decoder used by the reader to produce instances from UTF-8 encoded byte sequences. /// public MetadataStringDecoder UTF8Decoder { get; } diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEBinaryReader.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEBinaryReader.cs index 579e72292c54c..9cf7b5779540d 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEBinaryReader.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEBinaryReader.cs @@ -86,10 +86,10 @@ public ulong ReadUInt64() } /// - /// Reads a fixed-length byte block as a null-padded UTF8-encoded string. + /// Reads a fixed-length byte block as a null-padded UTF-8 encoded string. /// The padding is not included in the returned string. /// - /// Note that it is legal for UTF8 strings to contain NUL; if NUL occurs + /// Note that it is legal for UTF-8 strings to contain NUL; if NUL occurs /// between non-NUL codepoints, it is not considered to be padding and /// is included in the result. /// diff --git a/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSExportGenerator.cs b/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSExportGenerator.cs index cf647746fb29c..b0bfeef0037cb 100644 --- a/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSExportGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSExportGenerator.cs @@ -206,7 +206,7 @@ private static IncrementalStubGenerationContext CalculateStubInformation( var containingTypeContext = new ContainingSyntaxContext(originalSyntax); - var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers.StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers, SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); return new IncrementalStubGenerationContext( signatureContext, diff --git a/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.cs b/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.cs index 99bdb634b7f9b..87d0484d4414b 100644 --- a/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices.JavaScript/gen/JSImportGenerator/JSImportGenerator.cs @@ -194,7 +194,7 @@ private static IncrementalStubGenerationContext CalculateStubInformation( var containingTypeContext = new ContainingSyntaxContext(originalSyntax); - var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers.StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers, SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); return new IncrementalStubGenerationContext( signatureContext, containingTypeContext, diff --git a/src/libraries/System.Runtime/ref/System.Runtime.cs b/src/libraries/System.Runtime/ref/System.Runtime.cs index 5ddfb2309a9ad..fcf0e7e159bd6 100644 --- a/src/libraries/System.Runtime/ref/System.Runtime.cs +++ b/src/libraries/System.Runtime/ref/System.Runtime.cs @@ -2247,6 +2247,7 @@ public DivideByZeroException(string? message, System.Exception? innerException) public static double CreateChecked(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static double CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static double CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } + public static double DegreesToRadians(double degrees) { throw null; } public bool Equals(double obj) { throw null; } public override bool Equals([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] object? obj) { throw null; } public static double Exp(double x) { throw null; } @@ -2307,6 +2308,7 @@ public DivideByZeroException(string? message, System.Exception? innerException) public static double Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider? provider) { throw null; } public static double Parse(string s, System.IFormatProvider? provider) { throw null; } public static double Pow(double x, double y) { throw null; } + public static double RadiansToDegrees(double radians) { throw null; } public static double ReciprocalEstimate(double x) { throw null; } public static double ReciprocalSqrtEstimate(double x) { throw null; } public static double RootN(double x, int n) { throw null; } @@ -2871,6 +2873,7 @@ public enum GCNotificationStatus public static System.Half CreateChecked(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static System.Half CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static System.Half CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } + public static System.Half DegreesToRadians(System.Half degrees) { throw null; } public bool Equals(System.Half other) { throw null; } public override bool Equals([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] object? obj) { throw null; } public static System.Half Exp(System.Half x) { throw null; } @@ -2999,6 +3002,7 @@ public enum GCNotificationStatus public static System.Half Parse(string s, System.Globalization.NumberStyles style = System.Globalization.NumberStyles.AllowDecimalPoint | System.Globalization.NumberStyles.AllowExponent | System.Globalization.NumberStyles.AllowLeadingSign | System.Globalization.NumberStyles.AllowLeadingWhite | System.Globalization.NumberStyles.AllowThousands | System.Globalization.NumberStyles.AllowTrailingWhite, System.IFormatProvider? provider = null) { throw null; } public static System.Half Parse(string s, System.IFormatProvider? provider) { throw null; } public static System.Half Pow(System.Half x, System.Half y) { throw null; } + public static System.Half RadiansToDegrees(System.Half radians) { throw null; } public static System.Half ReciprocalEstimate(System.Half x) { throw null; } public static System.Half ReciprocalSqrtEstimate(System.Half x) { throw null; } public static System.Half RootN(System.Half x, int n) { throw null; } @@ -4985,6 +4989,7 @@ public SerializableAttribute() { } public static float CreateChecked(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static float CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static float CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } + public static float DegreesToRadians(float degrees) { throw null; } public override bool Equals([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] object? obj) { throw null; } public bool Equals(float obj) { throw null; } public static float Exp(float x) { throw null; } @@ -5045,6 +5050,7 @@ public SerializableAttribute() { } public static float Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider? provider) { throw null; } public static float Parse(string s, System.IFormatProvider? provider) { throw null; } public static float Pow(float x, float y) { throw null; } + public static float RadiansToDegrees(float radians) { throw null; } public static float ReciprocalEstimate(float x) { throw null; } public static float ReciprocalSqrtEstimate(float x) { throw null; } public static float RootN(float x, int n) { throw null; } @@ -10793,7 +10799,7 @@ public partial interface IMultiplyOperators where TSelf static virtual TResult operator checked *(TSelf left, TOther right) { throw null; } static abstract TResult operator *(TSelf left, TOther right); } - public partial interface INumberBase : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.IUtf8SpanParsable where TSelf : System.Numerics.INumberBase? + public partial interface INumberBase : System.IEquatable, System.IFormattable, System.IParsable, System.ISpanFormattable, System.ISpanParsable, System.Numerics.IAdditionOperators, System.Numerics.IAdditiveIdentity, System.Numerics.IDecrementOperators, System.Numerics.IDivisionOperators, System.Numerics.IEqualityOperators, System.Numerics.IIncrementOperators, System.Numerics.IMultiplicativeIdentity, System.Numerics.IMultiplyOperators, System.Numerics.ISubtractionOperators, System.Numerics.IUnaryNegationOperators, System.Numerics.IUnaryPlusOperators, System.IUtf8SpanFormattable, System.IUtf8SpanParsable where TSelf : System.Numerics.INumberBase? { static abstract TSelf One { get; } static abstract int Radix { get; } @@ -10835,6 +10841,7 @@ static virtual TSelf CreateTruncating(TOther value) static virtual TSelf Parse(System.ReadOnlySpan utf8Text, System.Globalization.NumberStyles style, System.IFormatProvider? provider) { throw null; } static abstract TSelf Parse(System.ReadOnlySpan s, System.Globalization.NumberStyles style, System.IFormatProvider? provider); static abstract TSelf Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider? provider); + bool System.IUtf8SpanFormattable.TryFormat(System.Span utf8Destination, out int bytesWritten, System.ReadOnlySpan format, System.IFormatProvider? provider) { throw null; } static TSelf System.IUtf8SpanParsable.Parse(System.ReadOnlySpan utf8Text, System.IFormatProvider? provider) { throw null; } static bool System.IUtf8SpanParsable.TryParse(System.ReadOnlySpan utf8Text, System.IFormatProvider? provider, [System.Diagnostics.CodeAnalysis.MaybeNullWhen(false)] out TSelf result) { throw null; } protected static abstract bool TryConvertFromChecked(TOther value, [System.Diagnostics.CodeAnalysis.MaybeNullWhen(false)] out TSelf result) @@ -10911,6 +10918,8 @@ public partial interface ITrigonometricFunctions : System.Numerics.IFloat static abstract TSelf AtanPi(TSelf x); static abstract TSelf Cos(TSelf x); static abstract TSelf CosPi(TSelf x); + static virtual TSelf DegreesToRadians(TSelf degrees) { throw null; } + static virtual TSelf RadiansToDegrees(TSelf radians) { throw null; } static abstract TSelf Sin(TSelf x); static abstract (TSelf Sin, TSelf Cos) SinCos(TSelf x); static abstract (TSelf SinPi, TSelf CosPi) SinCosPi(TSelf x); diff --git a/src/libraries/System.Runtime/tests/System/DoubleTests.GenericMath.cs b/src/libraries/System.Runtime/tests/System/DoubleTests.GenericMath.cs index 7527954fc0526..829ff9adaceeb 100644 --- a/src/libraries/System.Runtime/tests/System/DoubleTests.GenericMath.cs +++ b/src/libraries/System.Runtime/tests/System/DoubleTests.GenericMath.cs @@ -108,7 +108,7 @@ public static void IsPow2Test() Assert.False(BinaryNumberHelper.IsPow2(-0.0)); Assert.False(BinaryNumberHelper.IsPow2(double.NaN)); Assert.False(BinaryNumberHelper.IsPow2(0.0)); - Assert.False(BinaryNumberHelper.IsPow2(double.Epsilon)); + Assert.True(BinaryNumberHelper.IsPow2(double.Epsilon)); Assert.False(BinaryNumberHelper.IsPow2(MaxSubnormal)); Assert.True(BinaryNumberHelper.IsPow2(MinNormal)); Assert.True(BinaryNumberHelper.IsPow2(1.0)); diff --git a/src/libraries/System.Runtime/tests/System/DoubleTests.cs b/src/libraries/System.Runtime/tests/System/DoubleTests.cs index 6c8cfda43d565..3c159c0534e7e 100644 --- a/src/libraries/System.Runtime/tests/System/DoubleTests.cs +++ b/src/libraries/System.Runtime/tests/System/DoubleTests.cs @@ -1685,5 +1685,65 @@ public static void LerpTest(double value1, double value2, double amount, double AssertExtensions.Equal(+expectedResult, double.Lerp(+value1, +value2, amount), 0); AssertExtensions.Equal((expectedResult == 0.0) ? expectedResult : -expectedResult, double.Lerp(-value1, -value2, amount), 0); } + + [Theory] + [InlineData(double.NaN, double.NaN, 0.0)] + [InlineData(0.0, 0.0, 0.0)] + [InlineData(0.31830988618379067, 0.005555555555555556, CrossPlatformMachineEpsilon)] // value: (1 / pi) + [InlineData(0.43429448190325183, 0.007579868632454674, CrossPlatformMachineEpsilon)] // value: (log10(e)) + [InlineData(0.5, 0.008726646259971648, CrossPlatformMachineEpsilon)] + [InlineData(0.63661977236758134, 0.011111111111111112, CrossPlatformMachineEpsilon)] // value: (2 / pi) + [InlineData(0.69314718055994531, 0.01209770050168668, CrossPlatformMachineEpsilon)] // value: (ln(2)) + [InlineData(0.70710678118654752, 0.012341341494884351, CrossPlatformMachineEpsilon)] // value: (1 / sqrt(2)) + [InlineData(0.78539816339744831, 0.013707783890401885, CrossPlatformMachineEpsilon)] // value: (pi / 4) + [InlineData(1.0, 0.017453292519943295, CrossPlatformMachineEpsilon)] + [InlineData(1.1283791670955126, 0.019693931676727953, CrossPlatformMachineEpsilon)] // value: (2 / sqrt(pi)) + [InlineData(1.4142135623730950, 0.024682682989768702, CrossPlatformMachineEpsilon)] // value: (sqrt(2)) + [InlineData(1.4426950408889634, 0.02517977856570663, CrossPlatformMachineEpsilon)] // value: (log2(e)) + [InlineData(1.5, 0.02617993877991494, CrossPlatformMachineEpsilon)] + [InlineData(1.5707963267948966, 0.02741556778080377, CrossPlatformMachineEpsilon)] // value: (pi / 2) + [InlineData(2.0, 0.03490658503988659, CrossPlatformMachineEpsilon)] + [InlineData(2.3025850929940457, 0.040187691180085916, CrossPlatformMachineEpsilon)] // value: (ln(10)) + [InlineData(2.5, 0.04363323129985824, CrossPlatformMachineEpsilon)] + [InlineData(2.7182818284590452, 0.047442967903742035, CrossPlatformMachineEpsilon)] // value: (e) + [InlineData(3.0, 0.05235987755982988, CrossPlatformMachineEpsilon)] + [InlineData(3.1415926535897932, 0.05483113556160754, CrossPlatformMachineEpsilon)] // value: (pi) + [InlineData(3.5, 0.061086523819801536, CrossPlatformMachineEpsilon)] + [InlineData(double.PositiveInfinity, double.PositiveInfinity, 0.0)] + public static void DegreesToRadiansTest(double value, double expectedResult, double allowedVariance) + { + AssertExtensions.Equal(-expectedResult, double.DegreesToRadians(-value), allowedVariance); + AssertExtensions.Equal(+expectedResult, double.DegreesToRadians(+value), allowedVariance); + } + + [Theory] + [InlineData(double.NaN, double.NaN, 0.0)] + [InlineData(0.0, 0.0, 0.0)] + [InlineData(0.0055555555555555567, 0.3183098861837906, CrossPlatformMachineEpsilon)] // expected: (1 / pi) + [InlineData(0.0075798686324546743, 0.4342944819032518, CrossPlatformMachineEpsilon)] // expected: (log10(e)) + [InlineData(0.008726646259971648, 0.5, CrossPlatformMachineEpsilon)] + [InlineData(0.0111111111111111124, 0.6366197723675813, CrossPlatformMachineEpsilon)] // expected: (2 / pi) + [InlineData(0.0120977005016866801, 0.6931471805599453, CrossPlatformMachineEpsilon)] // expected: (ln(2)) + [InlineData(0.0123413414948843512, 0.7071067811865475, CrossPlatformMachineEpsilon)] // expected: (1 / sqrt(2)) + [InlineData(0.0137077838904018851, 0.7853981633974483, CrossPlatformMachineEpsilon)] // expected: (pi / 4) + [InlineData(0.017453292519943295, 1.0, CrossPlatformMachineEpsilon)] + [InlineData(0.019693931676727953, 1.1283791670955126, CrossPlatformMachineEpsilon)] // expected: (2 / sqrt(pi)) + [InlineData(0.024682682989768702, 1.4142135623730950, CrossPlatformMachineEpsilon)] // expected: (sqrt(2)) + [InlineData(0.025179778565706630, 1.4426950408889634, CrossPlatformMachineEpsilon)] // expected: (log2(e)) + [InlineData(0.026179938779914940, 1.5, CrossPlatformMachineEpsilon)] + [InlineData(0.027415567780803770, 1.5707963267948966, CrossPlatformMachineEpsilon)] // expected: (pi / 2) + [InlineData(0.034906585039886590, 2.0, CrossPlatformMachineEpsilon)] + [InlineData(0.040187691180085916, 2.3025850929940457, CrossPlatformMachineEpsilon)] // expected: (ln(10)) + [InlineData(0.043633231299858240, 2.5, CrossPlatformMachineEpsilon)] + [InlineData(0.047442967903742035, 2.7182818284590452, CrossPlatformMachineEpsilon)] // expected: (e) + [InlineData(0.052359877559829880, 3.0, CrossPlatformMachineEpsilon)] + [InlineData(0.054831135561607540, 3.1415926535897932, CrossPlatformMachineEpsilon)] // expected: (pi) + [InlineData(0.061086523819801536, 3.5, CrossPlatformMachineEpsilon)] + [InlineData(double.PositiveInfinity, double.PositiveInfinity, 0.0)] + public static void RadiansToDegreesTest(double value, double expectedResult, double allowedVariance) + { + AssertExtensions.Equal(-expectedResult, double.RadiansToDegrees(-value), allowedVariance); + AssertExtensions.Equal(+expectedResult, double.RadiansToDegrees(+value), allowedVariance); + } } } diff --git a/src/libraries/System.Runtime/tests/System/HalfTests.GenericMath.cs b/src/libraries/System.Runtime/tests/System/HalfTests.GenericMath.cs index 2b6ef44ef6e27..c93d99f58c407 100644 --- a/src/libraries/System.Runtime/tests/System/HalfTests.GenericMath.cs +++ b/src/libraries/System.Runtime/tests/System/HalfTests.GenericMath.cs @@ -120,7 +120,7 @@ public static void IsPow2Test() Assert.False(BinaryNumberHelper.IsPow2(NegativeZero)); Assert.False(BinaryNumberHelper.IsPow2(Half.NaN)); Assert.False(BinaryNumberHelper.IsPow2(Zero)); - Assert.False(BinaryNumberHelper.IsPow2(Half.Epsilon)); + Assert.True(BinaryNumberHelper.IsPow2(Half.Epsilon)); Assert.False(BinaryNumberHelper.IsPow2(MaxSubnormal)); Assert.True(BinaryNumberHelper.IsPow2(MinNormal)); Assert.True(BinaryNumberHelper.IsPow2(One)); diff --git a/src/libraries/System.Runtime/tests/System/HalfTests.cs b/src/libraries/System.Runtime/tests/System/HalfTests.cs index b37476cb9ae63..e5b68dfd0bc0d 100644 --- a/src/libraries/System.Runtime/tests/System/HalfTests.cs +++ b/src/libraries/System.Runtime/tests/System/HalfTests.cs @@ -2143,5 +2143,75 @@ public static void LerpTest(Half value1, Half value2, Half amount, Half expected AssertExtensions.Equal(+expectedResult, Half.Lerp(+value1, +value2, amount), Half.Zero); AssertExtensions.Equal((expectedResult == Half.Zero) ? expectedResult : -expectedResult, Half.Lerp(-value1, -value2, amount), Half.Zero); } + + public static IEnumerable DegreesToRadians_TestData() + { + yield return new object[] { Half.NaN, Half.NaN, Half.Zero }; + yield return new object[] { Half.Zero, Half.Zero, Half.Zero }; + yield return new object[] { (Half)(0.3184f), (Half)(0.005554f), CrossPlatformMachineEpsilon }; // value: (1 / pi) + yield return new object[] { (Half)(0.4343f), (Half)(0.00758f), CrossPlatformMachineEpsilon }; // value: (log10(e)) + yield return new object[] { (Half)(0.5f), (Half)(0.00872f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(0.6367f), (Half)(0.01111f), CrossPlatformMachineEpsilon }; // value: (2 / pi) + yield return new object[] { (Half)(0.6934f), (Half)(0.0121f), CrossPlatformMachineEpsilon }; // value: (ln(2)) + yield return new object[] { (Half)(0.707f), (Half)(0.01234f), CrossPlatformMachineEpsilon }; // value: (1 / sqrt(2)) + yield return new object[] { (Half)(0.785f), (Half)(0.0137f), CrossPlatformMachineEpsilon }; // value: (pi / 4) + yield return new object[] { (Half)(1.0f), (Half)(0.01744f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(1.128f), (Half)(0.01968f), CrossPlatformMachineEpsilon }; // value: (2 / sqrt(pi)) + yield return new object[] { (Half)(1.414f), (Half)(0.02467f), CrossPlatformMachineEpsilon }; // value: (sqrt(2)) + yield return new object[] { (Half)(1.442f), (Half)(0.02518f), CrossPlatformMachineEpsilon }; // value: (log2(e)) + yield return new object[] { (Half)(1.5f), (Half)(0.02617f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(1.57f), (Half)(0.0274f), CrossPlatformMachineEpsilon }; // value: (pi / 2) + yield return new object[] { (Half)(2.0f), (Half)(0.03488f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(2.303f), (Half)(0.04016f), CrossPlatformMachineEpsilon }; // value: (ln(10)) + yield return new object[] { (Half)(2.5f), (Half)(0.0436f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(2.719f), (Half)(0.04742f), CrossPlatformMachineEpsilon }; // value: (e) + yield return new object[] { (Half)(3.0f), (Half)(0.05234f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(3.14f), (Half)(0.0548f), CrossPlatformMachineEpsilon }; // value: (pi) + yield return new object[] { (Half)(3.5f), (Half)(0.06107f), CrossPlatformMachineEpsilon }; + yield return new object[] { Half.PositiveInfinity, Half.PositiveInfinity, Half.Zero }; + } + + [Theory] + [MemberData(nameof(DegreesToRadians_TestData))] + public static void DegreesToRadiansTest(Half value, Half expectedResult, Half allowedVariance) + { + AssertExtensions.Equal(-expectedResult, Half.DegreesToRadians(-value), allowedVariance); + AssertExtensions.Equal(+expectedResult, Half.DegreesToRadians(+value), allowedVariance); + } + + public static IEnumerable RadiansToDegrees_TestData() + { + yield return new object[] { Half.NaN, Half.NaN, Half.Zero }; + yield return new object[] { Half.Zero, Half.Zero, Half.Zero }; + yield return new object[] { (Half)(0.005554f), (Half)(0.3184f), CrossPlatformMachineEpsilon }; // value: (1 / pi) + yield return new object[] { (Half)(0.00758f), (Half)(0.4343f), CrossPlatformMachineEpsilon }; // value: (log10(e)) + yield return new object[] { (Half)(0.00872f), (Half)(0.5f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(0.01111f), (Half)(0.6367f), CrossPlatformMachineEpsilon }; // value: (2 / pi) + yield return new object[] { (Half)(0.0121f), (Half)(0.6934f), CrossPlatformMachineEpsilon }; // value: (ln(2)) + yield return new object[] { (Half)(0.01234f), (Half)(0.707f), CrossPlatformMachineEpsilon }; // value: (1 / sqrt(2)) + yield return new object[] { (Half)(0.0137f), (Half)(0.785f), CrossPlatformMachineEpsilon }; // value: (pi / 4) + yield return new object[] { (Half)(0.01744f), (Half)(1.0f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(0.01968f), (Half)(1.128f), CrossPlatformMachineEpsilon }; // value: (2 / sqrt(pi)) + yield return new object[] { (Half)(0.02467f), (Half)(1.414f), CrossPlatformMachineEpsilon }; // value: (sqrt(2)) + yield return new object[] { (Half)(0.02518f), (Half)(1.442f), CrossPlatformMachineEpsilon }; // value: (log2(e)) + yield return new object[] { (Half)(0.02617f), (Half)(1.5f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(0.0274f), (Half)(1.57f), CrossPlatformMachineEpsilon }; // value: (pi / 2) + yield return new object[] { (Half)(0.03488f), (Half)(2.0f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(0.04016f), (Half)(2.303f), CrossPlatformMachineEpsilon }; // value: (ln(10)) + yield return new object[] { (Half)(0.0436f), (Half)(2.5f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(0.04742f), (Half)(2.719f), CrossPlatformMachineEpsilon }; // value: (e) + yield return new object[] { (Half)(0.05234f), (Half)(3.0f), CrossPlatformMachineEpsilon }; + yield return new object[] { (Half)(0.0548f), (Half)(3.14f), CrossPlatformMachineEpsilon }; // value: (pi) + yield return new object[] { (Half)(0.06107f), (Half)(3.5f), CrossPlatformMachineEpsilon }; + yield return new object[] { Half.PositiveInfinity, Half.PositiveInfinity, Half.Zero }; + } + + [Theory] + [MemberData(nameof(RadiansToDegrees_TestData))] + public static void RadiansToDegreesTest(Half value, Half expectedResult, Half allowedVariance) + { + AssertExtensions.Equal(-expectedResult, Half.RadiansToDegrees(-value), allowedVariance); + AssertExtensions.Equal(+expectedResult, Half.RadiansToDegrees(+value), allowedVariance); + } } } diff --git a/src/libraries/System.Runtime/tests/System/SingleTests.GenericMath.cs b/src/libraries/System.Runtime/tests/System/SingleTests.GenericMath.cs index fe08e69e39f5c..21ca9fc2b44d3 100644 --- a/src/libraries/System.Runtime/tests/System/SingleTests.GenericMath.cs +++ b/src/libraries/System.Runtime/tests/System/SingleTests.GenericMath.cs @@ -108,7 +108,7 @@ public static void IsPow2Test() Assert.False(BinaryNumberHelper.IsPow2(-0.0f)); Assert.False(BinaryNumberHelper.IsPow2(float.NaN)); Assert.False(BinaryNumberHelper.IsPow2(0.0f)); - Assert.False(BinaryNumberHelper.IsPow2(float.Epsilon)); + Assert.True(BinaryNumberHelper.IsPow2(float.Epsilon)); Assert.False(BinaryNumberHelper.IsPow2(MaxSubnormal)); Assert.True(BinaryNumberHelper.IsPow2(MinNormal)); Assert.True(BinaryNumberHelper.IsPow2(1.0f)); diff --git a/src/libraries/System.Runtime/tests/System/SingleTests.cs b/src/libraries/System.Runtime/tests/System/SingleTests.cs index 176ffc0993cc9..459bdd843f5a9 100644 --- a/src/libraries/System.Runtime/tests/System/SingleTests.cs +++ b/src/libraries/System.Runtime/tests/System/SingleTests.cs @@ -1597,5 +1597,65 @@ public static void LerpTest(float value1, float value2, float amount, float expe AssertExtensions.Equal(+expectedResult, float.Lerp(+value1, +value2, amount), 0); AssertExtensions.Equal((expectedResult == 0.0f) ? expectedResult : -expectedResult, float.Lerp(-value1, -value2, amount), 0); } + + [Theory] + [InlineData(float.NaN, float.NaN, 0.0f)] + [InlineData(0.0f, 0.0f, 0.0f)] + [InlineData(0.318309886f, 0.0055555557f, CrossPlatformMachineEpsilon)] // value: (1 / pi) + [InlineData(0.434294482f, 0.007579869f, CrossPlatformMachineEpsilon)] // value: (log10(e)) + [InlineData(0.5f, 0.008726646f, CrossPlatformMachineEpsilon)] + [InlineData(0.636619772f, 0.011111111f, CrossPlatformMachineEpsilon)] // value: (2 / pi) + [InlineData(0.693147181f, 0.0120977005f, CrossPlatformMachineEpsilon)] // value: (ln(2)) + [InlineData(0.707106781f, 0.012341342f, CrossPlatformMachineEpsilon)] // value: (1 / sqrt(2)) + [InlineData(0.785398163f, 0.013707785f, CrossPlatformMachineEpsilon)] // value: (pi / 4) + [InlineData(1.0f, 0.017453292f, CrossPlatformMachineEpsilon)] + [InlineData(1.12837917f, 0.019693933f, CrossPlatformMachineEpsilon)] // value: (2 / sqrt(pi)) + [InlineData(1.41421356f, 0.024682684f, CrossPlatformMachineEpsilon)] // value: (sqrt(2)) + [InlineData(1.44269504f, 0.025179777f, CrossPlatformMachineEpsilon)] // value: (log2(e)) + [InlineData(1.5f, 0.02617994f, CrossPlatformMachineEpsilon)] + [InlineData(1.57079633f, 0.02741557f, CrossPlatformMachineEpsilon)] // value: (pi / 2) + [InlineData(2.0f, 0.034906585f, CrossPlatformMachineEpsilon)] + [InlineData(2.30258509f, 0.040187694f, CrossPlatformMachineEpsilon)] // value: (ln(10)) + [InlineData(2.5f, 0.043633234f, CrossPlatformMachineEpsilon)] + [InlineData(2.71828183f, 0.047442965f, CrossPlatformMachineEpsilon)] // value: (e) + [InlineData(3.0f, 0.05235988f, CrossPlatformMachineEpsilon)] + [InlineData(3.14159265f, 0.05483114f, CrossPlatformMachineEpsilon)] // value: (pi) + [InlineData(3.5f, 0.061086528f, CrossPlatformMachineEpsilon)] + [InlineData(float.PositiveInfinity, float.PositiveInfinity, 0.0f)] + public static void DegreesToRadiansTest(float value, float expectedResult, float allowedVariance) + { + AssertExtensions.Equal(-expectedResult, float.DegreesToRadians(-value), allowedVariance); + AssertExtensions.Equal(+expectedResult, float.DegreesToRadians(+value), allowedVariance); + } + + [Theory] + [InlineData(float.NaN, float.NaN, 0.0)] + [InlineData(0.0f, 0.0f, 0.0)] + [InlineData(0.0055555557f, 0.318309886f, CrossPlatformMachineEpsilon)] // expected: (1 / pi) + [InlineData(0.007579869f, 0.434294482f, CrossPlatformMachineEpsilon)] // expected: (log10(e)) + [InlineData(0.008726646f, 0.5f, CrossPlatformMachineEpsilon)] + [InlineData(0.011111111f, 0.636619772f, CrossPlatformMachineEpsilon)] // expected: (2 / pi) + [InlineData(0.0120977005f, 0.693147181f, CrossPlatformMachineEpsilon)] // expected: (ln(2)) + [InlineData(0.012341342f, 0.707106781f, CrossPlatformMachineEpsilon)] // expected: (1 / sqrt(2)) + [InlineData(0.013707785f, 0.785398163f, CrossPlatformMachineEpsilon)] // expected: (pi / 4) + [InlineData(0.017453292f, 1.0f, CrossPlatformMachineEpsilon)] + [InlineData(0.019693933f, 1.12837917f, CrossPlatformMachineEpsilon)] // expected: (2 / sqrt(pi)) + [InlineData(0.024682684f, 1.41421356f, CrossPlatformMachineEpsilon)] // expected: (sqrt(2)) + [InlineData(0.025179777f, 1.44269504f, CrossPlatformMachineEpsilon)] // expected: (log2(e)) + [InlineData(0.02617994f, 1.5f, CrossPlatformMachineEpsilon)] + [InlineData(0.02741557f, 1.57079633f, CrossPlatformMachineEpsilon)] // expected: (pi / 2) + [InlineData(0.034906585f, 2.0f, CrossPlatformMachineEpsilon)] + [InlineData(0.040187694f, 2.30258509f, CrossPlatformMachineEpsilon)] // expected: (ln(10)) + [InlineData(0.043633234f, 2.5f, CrossPlatformMachineEpsilon)] + [InlineData(0.047442965f, 2.71828183f, CrossPlatformMachineEpsilon)] // expected: (e) + [InlineData(0.05235988f, 3.0f, CrossPlatformMachineEpsilon)] + [InlineData(0.05483114f, 3.14159265f, CrossPlatformMachineEpsilon)] // expected: (pi) + [InlineData(0.061086528f, 3.5f, CrossPlatformMachineEpsilon)] + [InlineData(float.PositiveInfinity, float.PositiveInfinity, 0.0)] + public static void RadiansToDegreesTest(float value, float expectedResult, float allowedVariance) + { + AssertExtensions.Equal(-expectedResult, float.RadiansToDegrees(-value), allowedVariance); + AssertExtensions.Equal(+expectedResult, float.RadiansToDegrees(+value), allowedVariance); + } } } diff --git a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/Rfc2898DeriveBytes.OneShot.cs b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/Rfc2898DeriveBytes.OneShot.cs index a07718238a6d3..2798b7498fd04 100644 --- a/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/Rfc2898DeriveBytes.OneShot.cs +++ b/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/Rfc2898DeriveBytes.OneShot.cs @@ -149,10 +149,10 @@ public static void Pbkdf2( /// , and . /// /// - /// contains text that cannot be converted to UTF8. + /// contains text that cannot be converted to UTF-8. /// /// - /// The will be converted to bytes using the UTF8 encoding. For + /// The will be converted to bytes using the UTF-8 encoding. For /// other encodings, convert the password string to bytes using the appropriate /// and use . /// @@ -192,10 +192,10 @@ public static byte[] Pbkdf2( /// , and . /// /// - /// contains text that cannot be converted to UTF8. + /// contains text that cannot be converted to UTF-8. /// /// - /// The will be converted to bytes using the UTF8 encoding. For + /// The will be converted to bytes using the UTF-8 encoding. For /// other encodings, convert the password string to bytes using the appropriate /// and use . /// @@ -237,10 +237,10 @@ public static byte[] Pbkdf2( /// , and . /// /// - /// contains text that cannot be converted to UTF8. + /// contains text that cannot be converted to UTF-8. /// /// - /// The will be converted to bytes using the UTF8 encoding. For + /// The will be converted to bytes using the UTF-8 encoding. For /// other encodings, convert the password string to bytes using the appropriate /// and use . /// diff --git a/src/libraries/System.Text.Json/Common/JsonSourceGenerationOptionsAttribute.cs b/src/libraries/System.Text.Json/Common/JsonSourceGenerationOptionsAttribute.cs index e5ef95a3203e4..3a3f1291b1dcb 100644 --- a/src/libraries/System.Text.Json/Common/JsonSourceGenerationOptionsAttribute.cs +++ b/src/libraries/System.Text.Json/Common/JsonSourceGenerationOptionsAttribute.cs @@ -15,11 +15,58 @@ namespace System.Text.Json.Serialization #endif sealed class JsonSourceGenerationOptionsAttribute : JsonAttribute { + /// + /// Constructs a new instance. + /// + public JsonSourceGenerationOptionsAttribute() { } + + /// + /// Constructs a new instance with a predefined set of options determined by the specified . + /// + /// The to reason about. + /// Invalid parameter. + public JsonSourceGenerationOptionsAttribute(JsonSerializerDefaults defaults) + { + // Constructor kept in sync with equivalent overload in JsonSerializerOptions + + if (defaults is JsonSerializerDefaults.Web) + { + PropertyNameCaseInsensitive = true; + PropertyNamingPolicy = JsonKnownNamingPolicy.CamelCase; + NumberHandling = JsonNumberHandling.AllowReadingFromString; + } + else if (defaults is not JsonSerializerDefaults.General) + { + throw new ArgumentOutOfRangeException(nameof(defaults)); + } + } + + /// + /// Defines whether an extra comma at the end of a list of JSON values in an object or array + /// is allowed (and ignored) within the JSON payload being deserialized. + /// + public bool AllowTrailingCommas { get; set; } + + /// + /// Specifies a list of custom converter types to be used. + /// + public Type[]? Converters { get; set; } + + /// + /// The default buffer size in bytes used when creating temporary buffers. + /// + public int DefaultBufferSize { get; set; } + /// /// Specifies the default ignore condition. /// public JsonIgnoreCondition DefaultIgnoreCondition { get; set; } + /// + /// Specifies the policy used to convert a dictionary key to another format, such as camel-casing. + /// + public JsonKnownNamingPolicy DictionaryKeyPolicy { get; set; } + /// /// Specifies whether to ignore read-only fields. /// @@ -35,11 +82,47 @@ sealed class JsonSourceGenerationOptionsAttribute : JsonAttribute /// public bool IncludeFields { get; set; } + /// + /// Gets or sets the maximum depth allowed when serializing or deserializing JSON, with the default (i.e. 0) indicating a max depth of 64. + /// + public int MaxDepth { get; set; } + + /// + /// Specifies how number types should be handled when serializing or deserializing. + /// + public JsonNumberHandling NumberHandling { get; set; } + + /// + /// Specifies preferred object creation handling for properties when deserializing JSON. + /// + public JsonObjectCreationHandling PreferredObjectCreationHandling { get; set; } + + /// + /// Determines whether a property name uses a case-insensitive comparison during deserialization. + /// + public bool PropertyNameCaseInsensitive { get; set; } + /// /// Specifies a built-in naming polices to convert JSON property names with. /// public JsonKnownNamingPolicy PropertyNamingPolicy { get; set; } + /// + /// Defines how JSON comments are handled during deserialization. + /// + public JsonCommentHandling ReadCommentHandling { get; set; } + + /// + /// Defines how deserializing a type declared as an is handled during deserialization. + /// + public JsonUnknownTypeHandling UnknownTypeHandling { get; set; } + + /// + /// Determines how handles JSON properties that + /// cannot be mapped to a specific .NET member when deserializing object types. + /// + public JsonUnmappedMemberHandling UnmappedMemberHandling { get; set; } + /// /// Specifies whether JSON output should be pretty-printed. /// diff --git a/src/libraries/System.Text.Json/gen/Model/ContextGenerationSpec.cs b/src/libraries/System.Text.Json/gen/Model/ContextGenerationSpec.cs index d7e27450cbb55..598d78b41b7f2 100644 --- a/src/libraries/System.Text.Json/gen/Model/ContextGenerationSpec.cs +++ b/src/libraries/System.Text.Json/gen/Model/ContextGenerationSpec.cs @@ -35,16 +35,6 @@ public sealed record ContextGenerationSpec public required ImmutableEquatableArray ContextClassDeclarations { get; init; } - public required JsonIgnoreCondition DefaultIgnoreCondition { get; init; } - - public required bool IgnoreReadOnlyFields { get; init; } - - public required bool IgnoreReadOnlyProperties { get; init; } - - public required bool IncludeFields { get; init; } - - public required JsonKnownNamingPolicy PropertyNamingPolicy { get; init; } - - public required bool WriteIndented { get; init; } + public required SourceGenerationOptionsSpec? GeneratedOptionsSpec { get; init; } } } diff --git a/src/libraries/System.Text.Json/gen/Model/PropertyGenerationSpec.cs b/src/libraries/System.Text.Json/gen/Model/PropertyGenerationSpec.cs index 054e1aefaaaf1..577e92124fa56 100644 --- a/src/libraries/System.Text.Json/gen/Model/PropertyGenerationSpec.cs +++ b/src/libraries/System.Text.Json/gen/Model/PropertyGenerationSpec.cs @@ -57,9 +57,12 @@ public sealed record PropertyGenerationSpec /// specified ahead-of-time via . /// Only used in fast-path serialization logic. /// - public required string RuntimePropertyName { get; init; } + public required string EffectiveJsonPropertyName { get; init; } - public required string PropertyNameVarName { get; init; } + /// + /// The field identifier used for storing JsonEncodedText for use by the fast-path serializer. + /// + public required string PropertyNameFieldName { get; init; } /// /// Whether the property has a set method. @@ -156,7 +159,7 @@ public bool ShouldIncludePropertyForFastPath(ContextGenerationSpec contextSpec) } // Discard fields when JsonInclude or IncludeFields aren't enabled. - if (!IsProperty && !HasJsonInclude && !contextSpec.IncludeFields) + if (!IsProperty && !HasJsonInclude && contextSpec.GeneratedOptionsSpec?.IncludeFields != true) { return false; } @@ -166,12 +169,12 @@ public bool ShouldIncludePropertyForFastPath(ContextGenerationSpec contextSpec) { if (IsProperty) { - if (contextSpec.IgnoreReadOnlyProperties) + if (contextSpec.GeneratedOptionsSpec?.IgnoreReadOnlyProperties == true) { return false; } } - else if (contextSpec.IgnoreReadOnlyFields) + else if (contextSpec.GeneratedOptionsSpec?.IgnoreReadOnlyFields == true) { return false; } diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.cs.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.cs.xlf index af105417ad8ef..bdd3c826078a7 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.cs.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.cs.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + Konstruktor typu {0} byl opatřen poznámkou s atributem JsonConstructorAttribute, ale zdrojový generátor k němu nemá přístup. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + Konstruktor anotovaný atributem JsonConstructorAttribute je nepřístupný. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.de.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.de.xlf index 8a10d9fbab3f9..e055679c10aff 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.de.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.de.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + Der Konstruktor für den Typ "{0}" wurde mit dem Kommentar "JsonConstructorAttribute" versehen, aber der Quellgenerator kann nicht darauf zugreifen. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + Auf den Konstruktor mit dem Kommentar "JsonConstructorAttribute" kann nicht zugegriffen werden. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.es.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.es.xlf index c59fa4f8c38e6..ce257cbb1c713 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.es.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.es.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + El constructor del tipo '{0}' se ha anotado con JsonConstructorAttribute, pero el generador de origen no puede acceder a él. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + No se puede acceder al constructor anotado con JsonConstructorAttribute. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.fr.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.fr.xlf index ec15ea9e30458..14537fd03fb0b 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.fr.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.fr.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + Le constructeur sur le type '{0}' a été annoté avec JsonConstructorAttribute mais n'est pas accessible par le générateur source. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + Le constructeur annoté avec JsonConstructorAttribute est inaccessible. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.it.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.it.xlf index 42f70a8a586e6..374d71010a236 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.it.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.it.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + Il costruttore nel tipo '{0}' è stato annotato con JsonConstructorAttribute ma non è accessibile dal generatore di origine. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + Il costruttore annotato con JsonConstructorAttribute non è accessibile. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ja.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ja.xlf index ac45f319fe035..fc01911e03f10 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ja.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ja.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + 型 '{0}' のコンストラクターには JsonConstructorAttribute で注釈が付けられますが、ソース ジェネレーターからアクセスすることはできません。 Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + JsonConstructorAttribute で注釈が付けられたコンストラクターにアクセスできません。 diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ko.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ko.xlf index 3e4f9eb8eadd7..6ccf47433580c 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ko.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ko.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + '{0}' 형식의 생성자에 JsonConstructorAttribute로 주석이 추가되었지만 원본 생성기에서 액세스할 수 없습니다. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + JsonConstructorAttribute로 주석이 추가된 생성자에 액세스할 수 없습니다. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pl.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pl.xlf index 8474b4bb21f6b..7e051e09a305d 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pl.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pl.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + W przypadku konstruktora w zakresie typu „{0}” dokonano adnotacji przy użyciu atrybutu JsonConstructorAttribute, ale nie jest on dostępny dla generatora źródła. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + Konstruktor, w przypadku którego dokonano adnotacji za pomocą atrybutu JsonConstructorAttribute, jest niedostępny. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pt-BR.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pt-BR.xlf index f8c41b215fbfa..1b2fe43b42993 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pt-BR.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.pt-BR.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + O construtor do tipo '{0}' foi anotado com JsonConstructorAttribute, mas não pode ser acessado pelo gerador de origem. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + O construtor anotado com JsonConstructorAttribute está inacessível. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ru.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ru.xlf index 39cbe37e5514c..0e3e3f34b2c87 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ru.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.ru.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + Конструктор для типа "{0}" аннотирован с использованием JsonConstructorAttribute, но недоступен для генератора источника. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + Конструктор, аннотированный с использованием JsonConstructorAttribute, недоступен. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.tr.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.tr.xlf index f89d0b052db8f..2e8e0df34594f 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.tr.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.tr.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + '{0}' türündeki oluşturucuya JsonConstructorAttribute ile açıklama eklenmiş ancak kaynak oluşturucu tarafından erişilebilir değil. Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + JsonConstructorAttribute ile açıklama eklenmiş oluşturucuya erişilemiyor. diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hans.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hans.xlf index dcefcc43c2b04..d0732a7bf2130 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hans.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hans.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + 类型“{0}”上的构造函数已使用 JsonConstructorAttribute 进行批注,但源生成器无法访问该构造函数。 Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + 无法访问使用 JsonConstructorAttribute 批注的构造函数。 diff --git a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hant.xlf b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hant.xlf index 0a2d4af6e07ae..9ecddba3e923d 100644 --- a/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hant.xlf +++ b/src/libraries/System.Text.Json/gen/Resources/xlf/Strings.zh-Hant.xlf @@ -64,12 +64,12 @@ The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. - The constructor on type '{0}' has been annotated with JsonConstructorAttribute but is not accessible by the source generator. + 類型 '{0}' 上的建構函式已使用 JsonConstructorAttribute 標註,但無法供來源產生器存取。 Constructor annotated with JsonConstructorAttribute is inaccessible. - Constructor annotated with JsonConstructorAttribute is inaccessible. + 無法存取使用 JsonConstructorAttribute 標註的建構函式。 diff --git a/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets b/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets index 06fccb03c2bce..e14905d814875 100644 --- a/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets +++ b/src/libraries/System.Text.Json/gen/System.Text.Json.SourceGeneration.targets @@ -31,6 +31,7 @@ + @@ -41,10 +42,12 @@ + + @@ -67,6 +70,7 @@ + diff --git a/src/libraries/System.Text.Json/src/System.Text.Json.csproj b/src/libraries/System.Text.Json/src/System.Text.Json.csproj index 8e73fc42fdea3..624bd3c7ffd4e 100644 --- a/src/libraries/System.Text.Json/src/System.Text.Json.csproj +++ b/src/libraries/System.Text.Json/src/System.Text.Json.csproj @@ -28,6 +28,7 @@ The System.Text.Json library is built-in as part of the shared framework in .NET + @@ -39,10 +40,12 @@ The System.Text.Json library is built-in as part of the shared framework in .NET + + @@ -61,7 +64,6 @@ The System.Text.Json library is built-in as part of the shared framework in .NET - @@ -250,12 +252,10 @@ The System.Text.Json library is built-in as part of the shared framework in .NET - - diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs index 41458025b8c57..f639fcc2471c2 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs @@ -20,7 +20,7 @@ public sealed partial class JsonDocument private const int UnseekableStreamInitialRentSize = 4096; /// - /// Parse memory as UTF-8-encoded text representing a single JSON value into a JsonDocument. + /// Parse memory as UTF-8 encoded text representing a single JSON value into a JsonDocument. /// /// /// @@ -50,7 +50,7 @@ public static JsonDocument Parse(ReadOnlyMemory utf8Json, JsonDocumentOpti } /// - /// Parse a sequence as UTF-8-encoded text representing a single JSON value into a JsonDocument. + /// Parse a sequence as UTF-8 encoded text representing a single JSON value into a JsonDocument. /// /// /// @@ -101,7 +101,7 @@ public static JsonDocument Parse(ReadOnlySequence utf8Json, JsonDocumentOp } /// - /// Parse a as UTF-8-encoded data representing a single JSON value into a + /// Parse a as UTF-8 encoded data representing a single JSON value into a /// JsonDocument. The Stream will be read to completion. /// /// JSON data to parse. @@ -180,7 +180,7 @@ internal static JsonDocument ParseValue(string json, JsonDocumentOptions options } /// - /// Parse a as UTF-8-encoded data representing a single JSON value into a + /// Parse a as UTF-8 encoded data representing a single JSON value into a /// JsonDocument. The Stream will be read to completion. /// /// JSON data to parse. diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.Parse.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.Parse.cs index d8eb3657541cc..750802b94ea12 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.Parse.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.Parse.cs @@ -101,7 +101,7 @@ public abstract partial class JsonNode } /// - /// Parse a as UTF-8-encoded data representing a single JSON value into a + /// Parse a as UTF-8 encoded data representing a single JSON value into a /// . The Stream will be read to completion. /// /// JSON text to parse. diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerContext.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerContext.cs index bb77e529cab97..b3564a75701fd 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerContext.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerContext.cs @@ -55,17 +55,11 @@ bool IBuiltInJsonTypeInfoResolver.IsCompatibleWithOptions(JsonSerializerOptions JsonSerializerOptions? generatedSerializerOptions = GeneratedSerializerOptions; - if (ReferenceEquals(options, generatedSerializerOptions)) - { - // Fast path for the 99% case - return true; - } - return generatedSerializerOptions is not null && // Guard against unsupported features options.Converters.Count == 0 && - options.Encoder == null && + options.Encoder is null && // Disallow custom number handling we'd need to honor when writing. // AllowReadingFromString and Strict are fine since there's no action to take when writing. !JsonHelpers.RequiresSpecialNumberHandlingOnWrite(options.NumberHandling) && @@ -80,8 +74,7 @@ generatedSerializerOptions is not null && options.IgnoreReadOnlyProperties == generatedSerializerOptions.IgnoreReadOnlyProperties && options.IncludeFields == generatedSerializerOptions.IncludeFields && options.PropertyNamingPolicy == generatedSerializerOptions.PropertyNamingPolicy && - options.DictionaryKeyPolicy == generatedSerializerOptions.DictionaryKeyPolicy && - options.WriteIndented == generatedSerializerOptions.WriteIndented; + options.DictionaryKeyPolicy is null; } /// diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs index 7a5f2f8d52142..72b3e420e8308 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerOptions.cs @@ -139,6 +139,8 @@ public JsonSerializerOptions(JsonSerializerOptions options) /// The to reason about. public JsonSerializerOptions(JsonSerializerDefaults defaults) : this() { + // Should be kept in sync with equivalent overload in JsonSourceGenerationOptionsAttribute + if (defaults == JsonSerializerDefaults.Web) { _propertyNameCaseInsensitive = true; diff --git a/src/libraries/System.Text.Json/tests/Common/JsonTestHelper.cs b/src/libraries/System.Text.Json/tests/Common/JsonTestHelper.cs index 2428e979009c8..23b66ab10a387 100644 --- a/src/libraries/System.Text.Json/tests/Common/JsonTestHelper.cs +++ b/src/libraries/System.Text.Json/tests/Common/JsonTestHelper.cs @@ -4,6 +4,9 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using System.Reflection; +using System.Text.Json.Serialization; +using System.Text.Json.Serialization.Metadata; using System.Text.RegularExpressions; using System.Threading.Tasks; using Xunit; @@ -144,6 +147,39 @@ static string BuildJsonPath(Stack path) } } + public static void AssertOptionsEqual(JsonSerializerOptions expected, JsonSerializerOptions actual) + { + foreach (PropertyInfo property in typeof(JsonSerializerOptions).GetProperties(BindingFlags.Public | BindingFlags.Instance)) + { + Type propertyType = property.PropertyType; + + if (property.Name == nameof(JsonSerializerOptions.IsReadOnly)) + { + continue; // readonly-ness is not a structural property of JsonSerializerOptions. + } + else if (propertyType == typeof(IList)) + { + var expectedConverters = (IList)property.GetValue(expected); + var actualConverters = (IList)property.GetValue(actual); + Assert.Equal(expectedConverters.Count, actualConverters.Count); + for (int i = 0; i < actualConverters.Count; i++) + { + Assert.IsType(expectedConverters[i].GetType(), actualConverters[i]); + } + } + else if (propertyType == typeof(IList)) + { + var list1 = (IList)property.GetValue(expected); + var list2 = (IList)property.GetValue(actual); + Assert.Equal(list1, list2); + } + else + { + Assert.Equal(property.GetValue(expected), property.GetValue(actual)); + } + } + } + /// /// Linq Cartesian product /// diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/System.Text.Json.SourceGeneration.Tests.targets b/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/System.Text.Json.SourceGeneration.Tests.targets index 05c65b87d52d4..96c0a34cc8851 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/System.Text.Json.SourceGeneration.Tests.targets +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.SourceGeneration.Tests/System.Text.Json.SourceGeneration.Tests.targets @@ -115,6 +115,7 @@ + diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/OptionsTests.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/OptionsTests.cs index 575cd0eaf028a..7c4621f68595c 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/OptionsTests.cs +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/OptionsTests.cs @@ -860,7 +860,7 @@ public static void CopyConstructor_OriginalLocked() var newOptions = new JsonSerializerOptions(options); Assert.False(newOptions.IsReadOnly); - VerifyOptionsEqual(options, newOptions); + JsonTestHelper.AssertOptionsEqual(options, newOptions); // No exception is thrown on mutating the new options instance because it is "unlocked". newOptions.ReferenceHandler = ReferenceHandler.Preserve; @@ -902,7 +902,7 @@ public static void CopyConstructor_CopiesAllPublicProperties() { JsonSerializerOptions options = GetFullyPopulatedOptionsInstance(); var newOptions = new JsonSerializerOptions(options); - VerifyOptionsEqual(options, newOptions); + JsonTestHelper.AssertOptionsEqual(options, newOptions); } [Fact] @@ -937,7 +937,7 @@ public static void JsonSerializerOptions_Default_MatchesDefaultConstructorWithDe { var options = new JsonSerializerOptions { TypeInfoResolver = JsonSerializerOptions.Default.TypeInfoResolver }; JsonSerializerOptions optionsSingleton = JsonSerializerOptions.Default; - VerifyOptionsEqual(options, optionsSingleton); + JsonTestHelper.AssertOptionsEqual(options, optionsSingleton); } [Fact] @@ -1176,7 +1176,7 @@ public static void DefaultSerializerOptions_General() var options = new JsonSerializerOptions(); var newOptions = new JsonSerializerOptions(JsonSerializerDefaults.General); Assert.False(newOptions.IsReadOnly); - VerifyOptionsEqual(options, newOptions); + JsonTestHelper.AssertOptionsEqual(options, newOptions); } [Fact] @@ -1262,45 +1262,12 @@ and not nameof(JsonSerializerOptions.IsReadOnly)) // Property is not structural return options; } - private static void VerifyOptionsEqual(JsonSerializerOptions options, JsonSerializerOptions newOptions) - { - foreach (PropertyInfo property in typeof(JsonSerializerOptions).GetProperties(BindingFlags.Public | BindingFlags.Instance)) - { - Type propertyType = property.PropertyType; - - if (property.Name == nameof(JsonSerializerOptions.IsReadOnly)) - { - continue; // readonly-ness is not a structural property of JsonSerializerOptions. - } - else if (propertyType == typeof(IList)) - { - var list1 = (IList)property.GetValue(options); - var list2 = (IList)property.GetValue(newOptions); - Assert.Equal(list1, list2); - } - else if (propertyType == typeof(IList)) - { - var list1 = (IList)property.GetValue(options); - var list2 = (IList)property.GetValue(newOptions); - Assert.Equal(list1, list2); - } - else if (propertyType.IsValueType) - { - Assert.Equal(property.GetValue(options), property.GetValue(newOptions)); - } - else - { - Assert.Same(property.GetValue(options), property.GetValue(newOptions)); - } - } - } - [Fact] public static void CopyConstructor_IgnoreNullValuesCopied() { var options = new JsonSerializerOptions { IgnoreNullValues = true }; var newOptions = new JsonSerializerOptions(options); - VerifyOptionsEqual(options, newOptions); + JsonTestHelper.AssertOptionsEqual(options, newOptions); } [Fact] diff --git a/src/mono/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.Mono.cs b/src/mono/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.Mono.cs index b417c32f06aba..ff8de04d7b791 100644 --- a/src/mono/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.Mono.cs +++ b/src/mono/System.Private.CoreLib/src/System/Reflection/Emit/RuntimeEnumBuilder.Mono.cs @@ -424,29 +424,6 @@ public override bool IsDefined(Type attributeType, bool inherit) return _tb.IsDefined(attributeType, inherit); } - [RequiresDynamicCode("The code for an array of the specified type might not be available.")] - public override Type MakeArrayType() - { - return SymbolType.FormCompoundType("[]", this, 0)!; - } - - [RequiresDynamicCode("The code for an array of the specified type might not be available.")] - public override Type MakeArrayType(int rank) - { - string s = GetRankString(rank); - return SymbolType.FormCompoundType(s, this, 0)!; - } - - public override Type MakeByRefType() - { - return SymbolType.FormCompoundType("&", this, 0)!; - } - - public override Type MakePointerType() - { - return SymbolType.FormCompoundType("*", this, 0)!; - } - protected override void SetCustomAttributeCore(ConstructorInfo con, ReadOnlySpan binaryAttribute) { _tb.SetCustomAttribute(con, binaryAttribute); diff --git a/src/mono/mono/component/debugger-protocol.h b/src/mono/mono/component/debugger-protocol.h index cbcecb43304ac..9a8cc5e1c53d3 100644 --- a/src/mono/mono/component/debugger-protocol.h +++ b/src/mono/mono/component/debugger-protocol.h @@ -11,7 +11,7 @@ */ #define MAJOR_VERSION 2 -#define MINOR_VERSION 63 +#define MINOR_VERSION 64 typedef enum { MDBGPROT_CMD_COMPOSITE = 100 diff --git a/src/mono/mono/component/mini-wasm-debugger.c b/src/mono/mono/component/mini-wasm-debugger.c index b73db552ebc62..0e737f420f2a7 100644 --- a/src/mono/mono/component/mini-wasm-debugger.c +++ b/src/mono/mono/component/mini-wasm-debugger.c @@ -432,28 +432,6 @@ mono_wasm_send_dbg_command (int id, MdbgProtCommandSet command_set, int command, invoke_data.flags = INVOKE_FLAG_DISABLE_BREAKPOINTS_AND_STEPPING; error = mono_do_invoke_method (tls, &buf, &invoke_data, data, &data); } - else if (command_set == MDBGPROT_CMD_SET_VM && (command == MDBGPROT_CMD_GET_ASSEMBLY_BYTES)) - { - char* assembly_name = m_dbgprot_decode_string (data, &data, data + size); - if (assembly_name == NULL) - { - m_dbgprot_buffer_init (&buf, 128); - m_dbgprot_buffer_add_int (&buf, 0); - m_dbgprot_buffer_add_int (&buf, 0); - } - else - { - const unsigned char* assembly_bytes = NULL; - unsigned int assembly_size = 0; - mono_bundled_resources_get_assembly_resource_values (assembly_name, &assembly_bytes, &assembly_size); - const unsigned char* pdb_bytes = NULL; - unsigned int symfile_size = 0; - mono_bundled_resources_get_assembly_resource_symbol_values (assembly_name, &pdb_bytes, &symfile_size); - m_dbgprot_buffer_init (&buf, assembly_size + symfile_size); - m_dbgprot_buffer_add_byte_array (&buf, (uint8_t *) assembly_bytes, assembly_size); - m_dbgprot_buffer_add_byte_array (&buf, (uint8_t *) pdb_bytes, symfile_size); - } - } else { m_dbgprot_buffer_init (&buf, 128); diff --git a/src/mono/mono/metadata/CMakeLists.txt b/src/mono/mono/metadata/CMakeLists.txt index dac92188d4f68..39ec34205c680 100644 --- a/src/mono/mono/metadata/CMakeLists.txt +++ b/src/mono/mono/metadata/CMakeLists.txt @@ -171,6 +171,8 @@ set(metadata_common_sources abi-details.h abi.c memory-manager.c + unsafe-accessor.h + unsafe-accessor.c icall-table.h ${icall_table_sources}) diff --git a/src/mono/mono/metadata/class-internals.h b/src/mono/mono/metadata/class-internals.h index 68f83b16ab2fc..3863d3213fa40 100644 --- a/src/mono/mono/metadata/class-internals.h +++ b/src/mono/mono/metadata/class-internals.h @@ -1421,6 +1421,9 @@ mono_method_has_no_body (MonoMethod *method); MONO_COMPONENT_API MonoMethodHeader* mono_method_get_header_internal (MonoMethod *method, MonoError *error); +gboolean +mono_method_metadata_has_header (MonoMethod *method); + MONO_COMPONENT_API void mono_method_get_param_names_internal (MonoMethod *method, const char **names); diff --git a/src/mono/mono/metadata/custom-attrs.c b/src/mono/mono/metadata/custom-attrs.c index 31a0be630fa05..8fc9f47daf0af 100644 --- a/src/mono/mono/metadata/custom-attrs.c +++ b/src/mono/mono/metadata/custom-attrs.c @@ -50,6 +50,7 @@ static gboolean type_is_reference (MonoType *type); static GENERATE_GET_CLASS_WITH_CACHE (custom_attribute_typed_argument, "System.Reflection", "CustomAttributeTypedArgument"); static GENERATE_GET_CLASS_WITH_CACHE (custom_attribute_named_argument, "System.Reflection", "CustomAttributeNamedArgument"); static GENERATE_TRY_GET_CLASS_WITH_CACHE (customattribute_data, "System.Reflection", "RuntimeCustomAttributeData"); +static GENERATE_TRY_GET_CLASS_WITH_CACHE (unsafe_accessor_attribute, "System.Runtime.CompilerServices", "UnsafeAccessorAttribute"); static MonoCustomAttrInfo* mono_custom_attrs_from_builders_handle (MonoImage *alloc_img, MonoImage *image, MonoArrayHandle cattrs, gboolean respect_cattr_visibility); @@ -2056,6 +2057,62 @@ mono_custom_attrs_from_method_checked (MonoMethod *method, MonoError *error) return mono_custom_attrs_from_index_checked (m_class_get_image (method->klass), idx, FALSE, error); } +gboolean +mono_method_get_unsafe_accessor_attr_data (MonoMethod *method, int *accessor_kind, char **member_name, MonoError *error) +{ + MonoCustomAttrInfo *cinfo = mono_custom_attrs_from_method_checked (method, error); + + if (!cinfo) + return FALSE; + + MonoClass *unsafeAccessor = mono_class_try_get_unsafe_accessor_attribute_class (); + MonoCustomAttrEntry *attr = NULL; + + for (int idx = 0; idx < cinfo->num_attrs; ++idx) { + MonoClass *ctor_class = cinfo->attrs [idx].ctor->klass; + if (ctor_class == unsafeAccessor) { + attr = &cinfo->attrs [idx]; + break; + } + } + + if (!attr){ + if (!cinfo->cached) + mono_custom_attrs_free(cinfo); + return FALSE; + } + + MonoDecodeCustomAttr *decoded_args = mono_reflection_create_custom_attr_data_args_noalloc (m_class_get_image (attr->ctor->klass), attr->ctor, attr->data, attr->data_size, error); + + if (!is_ok (error)) { + mono_error_cleanup (error); + mono_reflection_free_custom_attr_data_args_noalloc (decoded_args); + if (!cinfo->cached) + mono_custom_attrs_free(cinfo); + return FALSE; + } + + g_assert (decoded_args->typed_args_num == 1); + *accessor_kind = *(int*)decoded_args->typed_args [0]->value.primitive; + + for (int i = 0; i < decoded_args->named_args_num; ++i) { + if (decoded_args->named_args_info [i].prop && !strcmp (decoded_args->named_args_info [i].prop->name, "Name")) { + const char *ptr = (const char*)decoded_args->named_args [i]->value.primitive; + uint32_t len = mono_metadata_decode_value (ptr, &ptr); + char *name = m_method_alloc0 (method, len + 1); + memcpy (name, ptr, len); + name[len] = 0; + *member_name = (char*)name; + } + } + + mono_reflection_free_custom_attr_data_args_noalloc (decoded_args); + if (!cinfo->cached) + mono_custom_attrs_free(cinfo); + + return TRUE; +} + /** * mono_custom_attrs_from_class: */ diff --git a/src/mono/mono/metadata/loader-internals.h b/src/mono/mono/metadata/loader-internals.h index 18fdb4dcbaabe..994d7d96c2642 100644 --- a/src/mono/mono/metadata/loader-internals.h +++ b/src/mono/mono/metadata/loader-internals.h @@ -88,6 +88,7 @@ typedef struct { GHashTable *cominterop_invoke_cache; GHashTable *cominterop_wrapper_cache; /* LOCKING: marshal lock */ GHashTable *thunk_invoke_cache; + GHashTable *unsafe_accessor_cache; } MonoWrapperCaches; /* Lock-free allocator */ diff --git a/src/mono/mono/metadata/loader.c b/src/mono/mono/metadata/loader.c index 1e4c390b23f55..b3b7bbd108608 100644 --- a/src/mono/mono/metadata/loader.c +++ b/src/mono/mono/metadata/loader.c @@ -2092,8 +2092,8 @@ mono_method_get_header_internal (MonoMethod *method, MonoError *error) g_assert (mono_metadata_token_table (method->token) == MONO_TABLE_METHOD); idx = mono_metadata_token_index (method->token); - if (G_UNLIKELY (img->has_updates)) - loc = mono_metadata_update_get_updated_method_rva (img, idx); + if (G_UNLIKELY (img->has_updates)) + loc = mono_metadata_update_get_updated_method_rva (img, idx); if (!loc) { rva = mono_metadata_decode_row_col (&img->tables [MONO_TABLE_METHOD], idx - 1, MONO_METHOD_RVA); @@ -2116,6 +2116,44 @@ mono_method_get_header_internal (MonoMethod *method, MonoError *error) return mono_metadata_parse_mh_full (img, container, (const char *)loc, error); } +gboolean +mono_method_metadata_has_header (MonoMethod *method) +{ + int idx; + guint32 rva; + MonoImage* img; + gpointer loc = NULL; + + img = m_class_get_image (method->klass); + + if (mono_method_has_no_body (method)) { + return FALSE; + } + + if (method->is_inflated) { + MonoMethodInflated *imethod = (MonoMethodInflated *) method; + return mono_method_metadata_has_header (imethod->declaring); + } + + if (method->wrapper_type != MONO_WRAPPER_NONE || method->sre_method) { + MonoMethodWrapper *mw = (MonoMethodWrapper *)method; + return mw->header != NULL; + } + + g_assert (mono_metadata_token_table (method->token) == MONO_TABLE_METHOD); + idx = mono_metadata_token_index (method->token); + + if (G_UNLIKELY (img->has_updates)) + loc = mono_metadata_update_get_updated_method_rva (img, idx); + + if (!loc) { + rva = mono_metadata_decode_row_col (&img->tables [MONO_TABLE_METHOD], idx - 1, MONO_METHOD_RVA); + loc = mono_image_rva_map (img, rva); + } + + return loc != NULL; +} + MonoMethodHeader* mono_method_get_header_checked (MonoMethod *method, MonoError *error) // Public function that must initialize MonoError for compatibility. diff --git a/src/mono/mono/metadata/marshal.h b/src/mono/mono/metadata/marshal.h index 9f261cf01a7fc..f78962313783c 100644 --- a/src/mono/mono/metadata/marshal.h +++ b/src/mono/mono/metadata/marshal.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -135,7 +136,8 @@ typedef enum { WRAPPER_SUBTYPE_INTERP_IN, WRAPPER_SUBTYPE_INTERP_LMF, WRAPPER_SUBTYPE_AOT_INIT, - WRAPPER_SUBTYPE_LLVM_FUNC + WRAPPER_SUBTYPE_LLVM_FUNC, + WRAPPER_SUBTYPE_UNSAFE_ACCESSOR, } WrapperSubtype; typedef struct { @@ -239,6 +241,12 @@ typedef struct { MonoMethodSignature *sig; } NativeFuncWrapperInfo; +typedef struct { + MonoMethod *method; + MonoUnsafeAccessorKind kind; + const char *member_name; /* the member we're accessing */ +} UnsafeAccessorWrapperInfo; + /* * This structure contains additional information to uniquely identify a given wrapper * method. It can be retrieved by mono_marshal_get_wrapper_info () for certain types @@ -285,6 +293,8 @@ typedef struct { LLVMFuncWrapperInfo llvm_func; /* NATIVE_FUNC_INDIRECT */ NativeFuncWrapperInfo native_func; + /* UNSAFE_ACCESSOR */ + UnsafeAccessorWrapperInfo unsafe_accessor; } d; } WrapperInfo; @@ -332,6 +342,7 @@ typedef struct { void (*emit_synchronized_wrapper) (MonoMethodBuilder *mb, MonoMethod *method, MonoGenericContext *ctx, MonoGenericContainer *container, MonoMethod *enter_method, MonoMethod *exit_method, MonoMethod *gettypefromhandle_method); void (*emit_unbox_wrapper) (MonoMethodBuilder *mb, MonoMethod *method); void (*emit_array_accessor_wrapper) (MonoMethodBuilder *mb, MonoMethod *method, MonoMethodSignature *sig, MonoGenericContext *ctx); + void (*emit_unsafe_accessor_wrapper) (MonoMethodBuilder *mb, MonoMethod *accessor_method, MonoMethodSignature *sig, MonoGenericContext *ctx, MonoUnsafeAccessorKind kind, const char *member_name); void (*emit_generic_array_helper) (MonoMethodBuilder *mb, MonoMethod *method, MonoMethodSignature *csig); void (*emit_thunk_invoke_wrapper) (MonoMethodBuilder *mb, MonoMethod *method, MonoMethodSignature *csig); void (*emit_create_string_hack) (MonoMethodBuilder *mb, MonoMethodSignature *csig, MonoMethod *res); @@ -588,6 +599,9 @@ mono_marshal_get_gsharedvt_in_wrapper (void); MonoMethod* mono_marshal_get_gsharedvt_out_wrapper (void); +MonoMethod* +mono_marshal_get_unsafe_accessor_wrapper (MonoMethod *accessor_method, MonoUnsafeAccessorKind kind, const char *member_name); + void mono_marshal_free_dynamic_wrappers (MonoMethod *method); diff --git a/src/mono/mono/metadata/reflection-internals.h b/src/mono/mono/metadata/reflection-internals.h index cb8d87a85038c..01e3d136e0aab 100644 --- a/src/mono/mono/metadata/reflection-internals.h +++ b/src/mono/mono/metadata/reflection-internals.h @@ -65,6 +65,8 @@ MonoCustomAttrInfo* mono_custom_attrs_from_index_checked (MonoImage *image, uint32_t idx, gboolean ignore_missing, MonoError *error); MONO_COMPONENT_API MonoCustomAttrInfo* mono_custom_attrs_from_method_checked (MonoMethod *method, MonoError *error); +gboolean +mono_method_get_unsafe_accessor_attr_data (MonoMethod *method, int *accessor_kind, char **member_name, MonoError *error); MONO_COMPONENT_API MonoCustomAttrInfo* mono_custom_attrs_from_class_checked (MonoClass *klass, MonoError *error); MONO_COMPONENT_API MonoCustomAttrInfo* diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index 2579d66e7cd3c..c2b816c60b383 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -3841,6 +3841,14 @@ encode_method_ref (MonoAotCompile *acfg, MonoMethod *method, guint8 *buf, guint8 encode_method_ref (acfg, info->d.synchronized_inner.method, p, &p); else if (info->subtype == WRAPPER_SUBTYPE_ARRAY_ACCESSOR) encode_method_ref (acfg, info->d.array_accessor.method, p, &p); + else if (info->subtype == WRAPPER_SUBTYPE_UNSAFE_ACCESSOR) { + encode_method_ref (acfg, info->d.unsafe_accessor.method, p, &p); + encode_value (info->d.unsafe_accessor.kind, p, &p); + /* WISH: is there some kind of string heap token we could use here? */ + uint32_t len = (uint32_t) strlen (info->d.unsafe_accessor.member_name); + encode_value (len, p, &p); + encode_string (info->d.unsafe_accessor.member_name, p, &p); + } else if (info->subtype == WRAPPER_SUBTYPE_INTERP_IN) encode_signature (acfg, info->d.interp_in.sig, p, &p); else if (info->subtype == WRAPPER_SUBTYPE_GSHAREDVT_IN_SIG) @@ -5236,6 +5244,25 @@ add_full_aot_wrappers (MonoAotCompile *acfg) add_method (acfg, mono_marshal_get_ptr_to_struct (klass)); } } + + /* unsafe accessor wrappers */ + rows = table_info_get_rows (&acfg->image->tables [MONO_TABLE_METHOD]); + for (int i = 0; i < rows; ++i) { + ERROR_DECL (error); + token = MONO_TOKEN_METHOD_DEF | (i + 1); + method = mono_get_method_checked (acfg->image, token, NULL, NULL, error); + report_loader_error (acfg, error, TRUE, "Failed to load method token 0x%x due to %s\n", i, mono_error_get_message (error)); + + if (G_LIKELY (mono_method_metadata_has_header (method))) + continue; + + char *member_name = NULL; + int accessor_kind = -1; + if (mono_method_get_unsafe_accessor_attr_data (method, &accessor_kind, &member_name, error)) { + add_extra_method (acfg, mono_marshal_get_unsafe_accessor_wrapper (method, (MonoUnsafeAccessorKind)accessor_kind, member_name)); + } + } + } static void @@ -10154,6 +10181,9 @@ append_mangled_wrapper_subtype (GString *s, WrapperSubtype subtype) case WRAPPER_SUBTYPE_ARRAY_ACCESSOR: label = "array_acc"; break; + case WRAPPER_SUBTYPE_UNSAFE_ACCESSOR: + label = "unsafe_acc"; + break; case WRAPPER_SUBTYPE_GENERIC_ARRAY_HELPER: label = "generic_arry_help"; break; @@ -10320,6 +10350,8 @@ append_mangled_wrapper (GString *s, MonoMethod *method) success = success && append_mangled_method (s, info->d.synchronized_inner.method); else if (info->subtype == WRAPPER_SUBTYPE_ARRAY_ACCESSOR) success = success && append_mangled_method (s, info->d.array_accessor.method); + else if (info->subtype == WRAPPER_SUBTYPE_UNSAFE_ACCESSOR) + success = success && append_mangled_method (s, info->d.unsafe_accessor.method); else if (info->subtype == WRAPPER_SUBTYPE_INTERP_IN) append_mangled_signature (s, info->d.interp_in.sig); else if (info->subtype == WRAPPER_SUBTYPE_GSHAREDVT_IN_SIG) { diff --git a/src/mono/mono/mini/aot-runtime.c b/src/mono/mono/mini/aot-runtime.c index e6c0904e65b79..86c70dba38862 100644 --- a/src/mono/mono/mini/aot-runtime.c +++ b/src/mono/mono/mini/aot-runtime.c @@ -1066,6 +1066,15 @@ decode_method_ref_with_target (MonoAotModule *module, MethodRef *ref, MonoMethod if (!m) return FALSE; ref->method = mono_marshal_get_array_accessor_wrapper (m); + } else if (subtype == WRAPPER_SUBTYPE_UNSAFE_ACCESSOR) { + MonoMethod *m = decode_resolve_method_ref (module, p, &p, error); + if (!m) + return FALSE; + MonoUnsafeAccessorKind kind = (MonoUnsafeAccessorKind) decode_value (p, &p); + uint32_t name_len = decode_value (p, &p); + const char *member_name = (const char*)p; + p += name_len + 1; + ref->method = mono_marshal_get_unsafe_accessor_wrapper (m, kind, member_name); } else if (subtype == WRAPPER_SUBTYPE_GSHAREDVT_IN) { ref->method = mono_marshal_get_gsharedvt_in_wrapper (); } else if (subtype == WRAPPER_SUBTYPE_GSHAREDVT_OUT) { diff --git a/src/mono/mono/mini/interp/transform.c b/src/mono/mono/mini/interp/transform.c index 32c9b2e3468a8..bc52e37f2dd21 100644 --- a/src/mono/mono/mini/interp/transform.c +++ b/src/mono/mono/mini/interp/transform.c @@ -11419,6 +11419,13 @@ mono_interp_transform_method (InterpMethod *imethod, ThreadContext *context, Mon return_if_nok (error); } + int accessor_kind = -1; + char *member_name = NULL; + if (!header && mono_method_get_unsafe_accessor_attr_data (method, &accessor_kind, &member_name, error)) { + method = mono_marshal_get_unsafe_accessor_wrapper (method, (MonoUnsafeAccessorKind)accessor_kind, member_name); + g_assert (method); + } + if (!header) { header = mono_method_get_header_checked (method, error); return_if_nok (error); diff --git a/src/mono/mono/mini/mini-runtime.c b/src/mono/mono/mini/mini-runtime.c index 933b6f8b48db6..1d01a77fb3c14 100644 --- a/src/mono/mono/mini/mini-runtime.c +++ b/src/mono/mono/mini/mini-runtime.c @@ -2649,6 +2649,22 @@ compile_special (MonoMethod *method, MonoError *error) } } + gboolean has_header = mono_method_metadata_has_header (method); + if (G_UNLIKELY (!has_header)) { + char *member_name = NULL; + int accessor_kind = -1; + if (mono_method_get_unsafe_accessor_attr_data (method, &accessor_kind, &member_name, error)) { + MonoMethod *wrapper = mono_marshal_get_unsafe_accessor_wrapper (method, (MonoUnsafeAccessorKind)accessor_kind, member_name); + gpointer compiled_wrapper = mono_jit_compile_method_jit_only (wrapper, error); + return_val_if_nok (error, NULL); + code = mono_get_addr_from_ftnptr (compiled_wrapper); + jinfo = mini_jit_info_table_find (code); + if (jinfo) + MONO_PROFILER_RAISE (jit_done, (method, jinfo)); + return code; + } + } + return NULL; } diff --git a/src/mono/msbuild/apple/build/AppleBuild.targets b/src/mono/msbuild/apple/build/AppleBuild.targets index f54f37b7e0778..44b2f3bdf7895 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.targets @@ -239,6 +239,8 @@ false + ./ @@ -9,18 +10,18 @@ - - - - - + + + + diff --git a/src/mono/sample/wasm/browser-webpack/package-lock.json b/src/mono/sample/wasm/browser-webpack/package-lock.json index 30385f0b26c8b..462faf67c8fac 100644 --- a/src/mono/sample/wasm/browser-webpack/package-lock.json +++ b/src/mono/sample/wasm/browser-webpack/package-lock.json @@ -11,547 +11,175 @@ "underscore": "1.13.2" }, "devDependencies": { - "webpack": "5.76.0", - "webpack-cli": "4.9.1" - } - }, - "../../../../../artifacts/bin/microsoft.netcore.app.runtime.browser-wasm/Debug/runtimes/browser-wasm/native": { - "name": "@microsoft/dotnet-runtime", - "version": "7.0.0-dev", - "extraneous": true, - "license": "MIT", - "devDependencies": { - "@rollup/plugin-typescript": "8.2.5", - "@typescript-eslint/eslint-plugin": "4.31.2", - "@typescript-eslint/parser": "4.31.2", - "eslint": "7.32.0", - "rollup": "2.56.3", - "rollup-plugin-consts": "1.0.2", - "rollup-plugin-dts": "4.0.0", - "rollup-plugin-terser": "7.0.2", - "tslib": "2.3.1", - "typescript": "4.4.3" + "webpack": "5.88.1", + "webpack-cli": "5.1.4" } }, "bin/dotnet-runtime": { "name": "@microsoft/dotnet-runtime", - "version": "0.0.1", - "dependencies": { - "@rollup/plugin-typescript": "8.3.3", - "@typescript-eslint/eslint-plugin": "5.30.7", - "@typescript-eslint/parser": "5.30.7", - "eslint": "8.20.0", - "fast-glob": "3.2.11", - "rollup": "2.77.0", - "rollup-plugin-consts": "1.1.0", - "rollup-plugin-dts": "4.2.2", - "rollup-plugin-terser": "7.0.2", - "terser": "5.14.2", - "tslib": "2.4.0", - "typescript": "4.7.4" - } - }, - "bin/dotnet-runtime/node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha1-KfksMLs+dx5KIEjJX6aFU5LfrE8=", + "version": "8.0.0-dev", "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "bin/dotnet-runtime/node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha1-LLr5qJRg2iS1ymUxuLv8I+HfUMc=", - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "bin/dotnet-runtime/node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.7.tgz", - "integrity": "sha1-FiHavBrkCEMQ4Z6e/IDf27l+dJM=", - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/type-utils": "5.30.7", - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "bin/dotnet-runtime/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.30.7.tgz", - "integrity": "sha1-VpPcPbbzE/MCdkKC1hTP28ip/P0=", - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "bin/dotnet-runtime/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.30.7.tgz", - "integrity": "sha1-cTW+BwNJ6ffKomKwylnclhIzUbs=", - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "bin/dotnet-runtime/node_modules/@typescript-eslint/parser": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.30.7.tgz", - "integrity": "sha1-mdCXKTkq7J5ksd5FzWPLgaTd2YA=", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "bin/dotnet-runtime/node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.30.7.tgz", - "integrity": "sha1-gmmpMe8eWuaLXrgHQ8xRXE/+Pdc=", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "bin/dotnet-runtime/node_modules/@typescript-eslint/types": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.30.7.tgz", - "integrity": "sha1-GDMUh8yS0PH7Gm9YDI7IMlKAedA=", - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "bin/dotnet-runtime/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.7.tgz", - "integrity": "sha1-BdqfGygZhb/tz2I0mEf40WjuzAc=", - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "bin/dotnet-runtime/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.7.tgz", - "integrity": "sha1-wJOrrnW0/YIr+62fwzfzinoUkJo=", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "bin/dotnet-runtime/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", - "license": "Python-2.0" - }, - "bin/dotnet-runtime/node_modules/eslint": { - "version": "8.20.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.20.0.tgz", - "integrity": "sha1-BIrFaqGFKZZ9qDVKR4vk7AoryBs=", - "license": "MIT", - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "bin/dotnet-runtime/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha1-9kgPprHzDv4tGWiqisdFuGJGmCY=", - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "bin/dotnet-runtime/node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha1-//NIlML2XlIm0wQaxIC0UToWNkI=", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "bin/dotnet-runtime/node_modules/espree": { - "version": "9.3.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.3.3.tgz", - "integrity": "sha1-LdN8QWK7BfQzrTwaUt34pJ3Ajp0=", - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "bin/dotnet-runtime/node_modules/estraverse": { + "devDependencies": { + "@rollup/plugin-terser": "0.4.3", + "@rollup/plugin-typescript": "11.1.2", + "@rollup/plugin-virtual": "3.0.1", + "@typescript-eslint/eslint-plugin": "5.59.1", + "@typescript-eslint/parser": "5.59.1", + "eslint": "8.44.0", + "fast-glob": "3.3.0", + "git-commit-info": "2.0.2", + "magic-string": "0.30.1", + "rollup": "3.26.2", + "rollup-plugin-dts": "5.3.0", + "terser": "5.19.0", + "tslib": "2.6.0", + "typescript": "5.1.6" + } + }, + "bin/dotnet-runtime/node_modules/rollup-plugin-dts": { "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "bin/dotnet-runtime/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "bin/dotnet-runtime/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha1-bTusj6f+DUXZ+b57rC/CeVd+NFo=", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "bin/dotnet-runtime/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", - "license": "MIT", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-dts/-/rollup-plugin-dts-5.3.0.tgz", + "integrity": "sha1-gKlZiAAvGI43b22zt+L1NnkWiVc=", + "dev": true, + "license": "LGPL-3.0", "dependencies": { - "argparse": "^2.0.1" + "magic-string": "^0.30.0" }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "node": ">=v14" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" + "funding": { + "url": "https://github.com/sponsors/Swatinem" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "optionalDependencies": { + "@babel/code-frame": "^7.18.6" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" + "peerDependencies": { + "rollup": "^3.0.0", + "typescript": "^4.1 || ^5.0" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha1-vZFUrsmYP3ezoDTsqgFcLkIB9s8=", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.8.0" + "node": ">=0.10.0" } }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha1-HVcr+74Ut3BOC6Dzm3SBW4SHDXA=", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=10.0.0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha1-ojUU6Pua8SadX3eIqlVnmNYca1k=", + "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.6", + "node_modules/@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha1-zdNdzk+hqJpP1CsVmes1s69AiIQ=", "dev": true, "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "peer": true, + "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha1-giVvFkzJ4LWWae/BnVf4CScGhB0=", + "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.44.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha1-lhpZA8dBOTkEeL3ICLzeP8Rat68=", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "peer": true, + "version": "0.11.10", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha1-Wj/+MsyTBjZfs/1XJZbNYC1eEtI=", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha1-wa7cYehT8rufXf5tRELTtWWyU7k=", + "version": "0.3.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha1-fgLm6135AartsIUUIDsJZhQCQJg=", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.0.1", @@ -566,6 +194,7 @@ "version": "3.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha1-IgOxGMFXchrd/mnUe3BGVGMGbXg=", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -575,15 +204,17 @@ "version": "1.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha1-fGz5mNbSC5FMClWpGuko/yWWXnI=", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha1-9FNRqu1FJ6KYUS7HL4EEDJmFgPs=", + "version": "0.3.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha1-o7tNXGglqrDSgSaPR/atWFNDHpE=", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -594,16 +225,18 @@ "version": "1.4.14", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", "integrity": "sha1-rdTJjTQUcqKJGQtCTvvbCWmRuyQ=", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha1-sjGggdj2Z5bkda1Yih70cxEnAe0=", + "version": "0.3.18", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha1-JXg7IIba9v8dy1PJJJrkgOTdTNY=", + "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@microsoft/dotnet-runtime": { @@ -612,8 +245,10 @@ }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", + "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -624,16 +259,20 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", + "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", + "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -642,54 +281,101 @@ "node": ">= 8" } }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-terser/-/plugin-terser-0.4.3.tgz", + "integrity": "sha1-wr3i/jqF5F+mikVNSPTnPlf5izA=", + "dev": true, + "license": "MIT", + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.x || ^3.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-typescript": { - "version": "8.3.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", - "integrity": "sha1-7uftq5z8Bk8c/RZXBJJpPPFDIhU=", + "version": "11.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-typescript/-/plugin-typescript-11.1.2.tgz", + "integrity": "sha1-CetWkKZQuwM0v4QSW86avSlkQuQ=", + "dev": true, "license": "MIT", "dependencies": { - "@rollup/pluginutils": "^3.1.0", - "resolve": "^1.17.0" + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" }, "engines": { - "node": ">=8.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^2.14.0", + "rollup": "^2.14.0||^3.0.0", "tslib": "*", "typescript": ">=3.7.0" }, "peerDependenciesMeta": { + "rollup": { + "optional": true + }, "tslib": { "optional": true } } }, + "node_modules/@rollup/plugin-virtual": { + "version": "3.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz", + "integrity": "sha1-zqfkiUgcwMqRUWwEf4xTwc+xrfY=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "version": "5.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha1-ASuPU8ceT2+csxfjEd8UBPVuejM=", + "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" }, "engines": { - "node": ">= 8.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } } }, - "node_modules/@rollup/pluginutils/node_modules/@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - }, "node_modules/@types/eslint": { - "version": "8.21.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/eslint/-/eslint-8.21.2.tgz", - "integrity": "sha1-K2G0OosOZgBoVqKkyOUfb3c+rSc=", + "version": "8.44.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha1-VYGOq7N24icvd/v1yWxDE3w8HlM=", "dev": true, "license": "MIT", "dependencies": { @@ -704,77 +390,302 @@ "dev": true, "license": "MIT", "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha1-qiJ1CWLzvw5511PTzAZ/AQyV8ZQ=", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.12", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha1-1w+rpwOdX8pUyDx9urQQUdK29ss=", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.4.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/node/-/node-20.4.2.tgz", + "integrity": "sha1-EpzJrmn5OCT5L6xlPuv7SBKrSvk=", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.5.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha1-WRwc46cCxF7hX0ekKt5ywv14l4o=", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", + "integrity": "sha1-mwnuFUG/8dLOvcuH585KQAOs3gg=", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/type-utils": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.59.1.tgz", + "integrity": "sha1-c8LBISfFwRgtLltxqPoqhdIVy7Q=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", + "integrity": "sha1-iiAiJxnOvFGYYYpdRBE3BbUf1/4=", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", + "integrity": "sha1-Y5gdYWhP0k7aL58IwKR+ywAKIRE=", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.59.1.tgz", + "integrity": "sha1-A/P+3RwETLM268NMx4VfEhmR9B0=", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", + "integrity": "sha1-SqVG0n/Q1HfGGPDKALSD8OyExDw=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.59.1.tgz", + "integrity": "sha1-2J/HWK0j0hV8+uU/C0Kb3xXblHM=", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", + "integrity": "sha1-DZbDbvtlYNf7jrhd4QRCwQ2PYFg=", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha1-z9cJJKJaP9MrIY5eQg5ol+GsT0A=", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "17.0.5", - "license": "MIT" - }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha1-2wRlVdPEE/iWbKUKlRdqDixkLiQ=", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha1-2svLla/xNcgmD3f6O0xf6mAKZDE=", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha1-YTL2jErNWdzRQcRLGMvrvZ8vp2g=", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha1-tm1zxD4pb9XogAbxhST+sPLHwJM=", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha1-y85efgwb0yz0kFrkRO9kzqkZ8bU=", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha1-uy69s7g6om2bqtTEbUMVKDrNUek=", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha1-/5fzhjxV7n9YD9XEGjgene9KpXc=", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha1-u2ZckdCxT//OsOOCmMMprwQ8bjo=", "dev": true, "license": "MIT", "dependencies": { @@ -782,7 +693,9 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha1-cOYOXoL5rIERi8JTgaCyg4kyQNc=", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -790,96 +703,122 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha1-kPi8NMVhWV/hVmA75yU8280Pq1o=", "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha1-xy+oIgUkybQWJJ89lMKVjf5wzqs=", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha1-+1KD4Oi0VRzE6cPA1xhKZfr3wmg=", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha1-2aItZRJIQiykmLCaoyMqgQQUh8I=", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha1-u4U3jFJ9+CQASBK723hO6lORdKE=", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha1-p7+N1+NirrFmj/Q/NcuEnxiO/yA=", "dev": true, "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webpack-cli/configtest": { - "version": "1.1.0", + "version": "2.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha1-Oy+FLpHaxuO4X7KjFPuL70bZRkY=", "dev": true, "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "1.4.0", + "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha1-zD+/Iu/riP9iMQz4hcWwn0SuD90=", "dev": true, "license": "MIT", - "dependencies": { - "envinfo": "^7.7.3" + "engines": { + "node": ">=14.15.0" }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "1.6.0", + "version": "2.0.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha1-Ml20I5XNSf5sFAV/mpAOQn34gQ4=", "dev": true, "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -889,18 +828,23 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", "dev": true, "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", "dev": true, "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha1-iMAYdiBDXH9gFYA/VTna4Fqdvqg=", + "version": "8.10.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha1-i+WzkHpnIhqBqyPHiJxMVSa2LsU=", + "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -910,7 +854,9 @@ } }, "node_modules/acorn-import-assertions": { - "version": "1.8.0", + "version": "1.9.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha1-UHJ2JJ1oR5fITgc074SGAzTPsaw=", "dev": true, "license": "MIT", "peerDependencies": { @@ -919,14 +865,19 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", + "dev": true, + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/ajv": { "version": "6.12.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -941,33 +892,30 @@ }, "node_modules/ajv-keywords": { "version": "3.5.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", "dev": true, "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -979,40 +927,35 @@ } }, "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "peer": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", + "dev": true, + "license": "Python-2.0" }, "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "peer": true, + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true, + "license": "MIT" }, "node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1020,8 +963,10 @@ }, "node_modules/braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/braces/-/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.0.1" }, @@ -1030,52 +975,82 @@ } }, "node_modules/browserslist": { - "version": "4.19.1", + "version": "4.21.9", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha1-4RvdPDE9fiqeh+i0sMeHKxOJdjU=", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" } }, "node_modules/buffer-from": { "version": "1.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=", + "dev": true, "license": "MIT" }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001292", + "version": "1.0.30001515", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha1-QYrv7tnQJM0xKb+uDMx4LUy48Ss=", "dev": true, - "license": "CC-BY-4.0", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", + "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -1089,8 +1064,10 @@ }, "node_modules/chalk/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -1100,6 +1077,8 @@ }, "node_modules/chrome-trace-event": { "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", "dev": true, "license": "MIT", "engines": { @@ -1108,6 +1087,8 @@ }, "node_modules/clone-deep": { "version": "4.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", "dev": true, "license": "MIT", "dependencies": { @@ -1121,8 +1102,10 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -1132,25 +1115,37 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true, + "license": "MIT" }, "node_modules/colorette": { - "version": "2.0.16", + "version": "2.0.20", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha1-nreT5oMwZ/cjWQL807CZF6AAqVo=", "dev": true, "license": "MIT" }, "node_modules/commander": { "version": "2.20.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/commander/-/commander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "dev": true, "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, "license": "MIT", "dependencies": { "path-key": "^3.1.0", @@ -1165,6 +1160,7 @@ "version": "4.3.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz", "integrity": "sha1-Exn2V5NX8jONMzfSzdSRS7XcyGU=", + "dev": true, "license": "MIT", "dependencies": { "ms": "2.1.2" @@ -1180,13 +1176,17 @@ }, "node_modules/deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", + "dev": true, + "license": "MIT" }, "node_modules/dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", + "dev": true, + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -1196,8 +1196,10 @@ }, "node_modules/doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", + "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -1206,20 +1208,26 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.28", + "version": "1.4.460", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/electron-to-chromium/-/electron-to-chromium-1.4.460.tgz", + "integrity": "sha1-82ClBZwDnEpftN+ploCtgSndn4Q=", "dev": true, "license": "ISC" }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "peer": true + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } }, "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha1-MA4ckCKPW1cMTTW6vyY/bacVVjQ=", + "version": "5.15.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha1-GvlGx9k2A+uI6Yls7kkE3AEunDU=", "dev": true, "license": "MIT", "dependencies": { @@ -1230,20 +1238,10 @@ "node": ">=10.13.0" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "peer": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/envinfo": { - "version": "7.8.1", + "version": "7.10.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/envinfo/-/envinfo-7.10.0.tgz", + "integrity": "sha1-VRRuOQnMX+Y8Itpj+xWwWurDWxM=", "dev": true, "license": "MIT", "bin": { @@ -1254,12 +1252,16 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", + "version": "1.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha1-a+nJ4LRUOmDNFm/2+LTp2uCwwW8=", "dev": true, "license": "MIT" }, "node_modules/escalade": { "version": "3.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", "dev": true, "license": "MIT", "engines": { @@ -1268,8 +1270,10 @@ }, "node_modules/escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -1278,57 +1282,57 @@ } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "peer": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "version": "8.44.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha1-USRuOImyWbvNHX1zagwQrdTw5QA=", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -1336,6 +1340,9 @@ }, "node_modules/eslint-scope": { "version": "5.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -1345,107 +1352,135 @@ "node": ">=8.0.0" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha1-wixI9IlC0IyoJMxSYhGuQAR4qZQ=", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha1-8h69r9oCNS8QNjS5bdR9n4HKEXs=", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "eslint-visitor-keys": "^2.0.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=10" + "node": ">=4.0" } }, - "node_modules/eslint/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "peer": true, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", + "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "peer": true, - "engines": { - "node": ">=4" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "peer": true, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", + "dev": true, + "license": "MIT", "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "p-locate": "^5.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "peer": true, - "bin": { - "acorn": "bin/acorn" + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "peer": true, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "peer": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "node_modules/espree": { + "version": "9.6.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.0.tgz", + "integrity": "sha1-gIaXVLHGVg8y47aSkZSj/gfFuC8=", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha1-bOF3ON6Fd2lO3XNhxXGCrIyw2ws=", + "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -1455,14 +1490,19 @@ }, "node_modules/esquery/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -1473,6 +1513,9 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -1480,26 +1523,35 @@ }, "node_modules/estraverse": { "version": "4.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=", + "dev": true, + "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/events": { "version": "3.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/events/-/events-3.3.0.tgz", + "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", "dev": true, "license": "MIT", "engines": { @@ -1507,18 +1559,20 @@ } }, "node_modules/execa": { - "version": "5.1.1", + "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/execa/-/execa-4.1.0.tgz", + "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" }, "engines": { @@ -1530,12 +1584,16 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true, "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha1-oRcq2VzrihbiDKpcXlZIDlEpwdk=", + "version": "3.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha1-fEDLSR4eLtVmR0noe/tRbb6HJ8A=", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1548,32 +1606,59 @@ "node": ">=8.6.0" } }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true, "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true, + "license": "MIT" }, "node_modules/fastest-levenshtein": { - "version": "1.0.12", + "version": "1.0.16", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha1-IQ5htv8YHekeqbPRuE/e3UfgNOU=", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha1-0E0HxqKmj+RZn+qNLhA6k3+uazo=", + "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", + "dev": true, + "license": "MIT", "dependencies": { "flat-cache": "^3.0.4" }, @@ -1583,8 +1668,10 @@ }, "node_modules/fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1594,6 +1681,8 @@ }, "node_modules/find-up": { "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "dev": true, "license": "MIT", "dependencies": { @@ -1606,8 +1695,10 @@ }, "node_modules/flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", + "dev": true, + "license": "MIT", "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" @@ -1617,20 +1708,25 @@ } }, "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==" + "version": "3.2.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha1-YJ85IHy2FLidB2W0d8stQ3+/l4c=", + "dev": true, + "license": "ISC" }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", + "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -1641,33 +1737,50 @@ }, "node_modules/function-bind": { "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true, "license": "MIT" }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, "node_modules/get-stream": { - "version": "6.0.1", + "version": "5.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", "dev": true, "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/git-commit-info": { + "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/git-commit-info/-/git-commit-info-2.0.2.tgz", + "integrity": "sha1-XrAre34zk+zq+6KsIH3l2ceMzxs=", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^4.0.3", + "is-git-repository": "^1.1.1", + "path-is-absolute": "^1.0.1" + } + }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob/-/glob-7.2.3.tgz", + "integrity": "sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=", + "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -1679,14 +1792,16 @@ } }, "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", + "dev": true, + "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" } }, "node_modules/glob-to-regexp": { @@ -1697,9 +1812,10 @@ "license": "BSD-2-Clause" }, "node_modules/globals": { - "version": "13.17.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.17.0.tgz", - "integrity": "sha1-kC6x5oCkHak5Ra29y1qfNhumm9Q=", + "version": "13.20.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.20.0.tgz", + "integrity": "sha1-6idqHlCP/U8WEoiPnRutHicXv4I=", + "dev": true, "license": "MIT", "dependencies": { "type-fest": "^0.20.2" @@ -1715,6 +1831,7 @@ "version": "11.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globby/-/globby-11.1.0.tgz", "integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=", + "dev": true, "license": "MIT", "dependencies": { "array-union": "^2.1.0", @@ -1731,23 +1848,32 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "engines": { - "node": ">= 4" - } - }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha1-FH06AG2kyjzhRyjHrvwofDZ9emw=", + "version": "4.2.11", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=", "dev": true, "license": "ISC" }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha1-nPOmZcYkdHmJaDSvNc8du0QAdn4=", + "dev": true, + "license": "MIT" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha1-+y8dVeDjoYSa7/yQxPoN1ToOZsY=", + "dev": true, + "license": "MIT" + }, "node_modules/has": { "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has/-/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, "license": "MIT", "dependencies": { "function-bind": "^1.1.1" @@ -1758,32 +1884,40 @@ }, "node_modules/has-flag": { "version": "4.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/human-signals": { - "version": "2.1.0", + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", "dev": true, "license": "Apache-2.0", "engines": { - "node": ">=10.17.0" + "node": ">=8.12.0" } }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "peer": true, + "version": "5.2.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha1-opHAxheP8blgvv5H/N7DAWdKYyQ=", + "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", + "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -1797,14 +1931,18 @@ }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/import-local": { - "version": "3.0.3", + "version": "3.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha1-tEed+KX9RPbNziQHBnVnYGPJXLQ=", "dev": true, "license": "MIT", "dependencies": { @@ -1816,20 +1954,27 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -1837,19 +1982,26 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "dev": true, + "license": "ISC" }, "node_modules/interpret": { - "version": "2.2.0", + "version": "3.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha1-W+DO7WfKecbEvFzw1+6EPc6hEMQ=", "dev": true, "license": "MIT", "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/is-core-module": { - "version": "2.8.0", + "version": "2.12.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha1-DAtohbb4ABHHFUHOFcjWbPWk+f0=", + "dev": true, "license": "MIT", "dependencies": { "has": "^1.0.3" @@ -1860,25 +2012,159 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { + "node_modules/is-git-repository": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-git-repository/-/is-git-repository-1.1.1.tgz", + "integrity": "sha1-xo5LeoBkIjSarsSIlzqQVY1+m+A=", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^0.6.1", + "path-is-absolute": "^1.0.1" + } + }, + "node_modules/is-git-repository/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/is-git-repository/node_modules/execa": { + "version": "0.6.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/execa/-/execa-0.6.3.tgz", + "integrity": "sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4=", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-git-repository/node_modules/get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "peer": true, + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" + } + }, + "node_modules/is-git-repository/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-git-repository/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "license": "ISC", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/is-git-repository/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-git-repository/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-git-repository/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-git-repository/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-git-repository/node_modules/which": { + "version": "1.3.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, + "node_modules/is-git-repository/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true, + "license": "ISC" + }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", + "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1888,14 +2174,28 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-object": { "version": "2.0.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "license": "MIT", "dependencies": { @@ -1907,6 +2207,8 @@ }, "node_modules/is-stream": { "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", "dev": true, "license": "MIT", "engines": { @@ -1918,10 +2220,15 @@ }, "node_modules/isexe": { "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true, "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "license": "MIT", "engines": { @@ -1929,7 +2236,9 @@ } }, "node_modules/jest-worker": { - "version": "27.4.5", + "version": "27.5.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha1-jRRvCQDolzsQa29zzB6ajLhvjbA=", "dev": true, "license": "MIT", "dependencies": { @@ -1941,19 +2250,14 @@ "node": ">= 10.13.0" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "peer": true, + "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", + "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -1968,15 +2272,22 @@ }, "node_modules/json-schema-traverse": { "version": "0.4.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true, + "license": "MIT" }, "node_modules/kind-of": { "version": "6.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", "dev": true, "license": "MIT", "engines": { @@ -1985,8 +2296,10 @@ }, "node_modules/levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/levn/-/levn-0.4.1.tgz", + "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", + "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -1996,7 +2309,9 @@ } }, "node_modules/loader-runner": { - "version": "4.2.0", + "version": "4.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha1-wbShY7mfYUgwNTsWdV5xSawjFOE=", "dev": true, "license": "MIT", "engines": { @@ -2005,6 +2320,8 @@ }, "node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", "dev": true, "license": "MIT", "dependencies": { @@ -2016,19 +2333,17 @@ }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "peer": true + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", + "dev": true, + "license": "MIT" }, "node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -2037,43 +2352,60 @@ } }, "node_modules/magic-string": { - "version": "0.26.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/magic-string/-/magic-string-0.26.2.tgz", - "integrity": "sha1-UzFwDkFYzWvv2nOLtrDHuTwNRDI=", + "version": "0.30.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha1-zlzUsKgaXQMr1pqrRSIpmyFmKE0=", + "dev": true, "license": "MIT", "dependencies": { - "sourcemap-codec": "^1.4.8" + "@jridgewell/sourcemap-codec": "^1.4.15" }, "engines": { "node": ">=12" } }, + "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha1-18bmdVx4VnqVHgSrUu8P0m3lnzI=", + "dev": true, + "license": "MIT" + }, "node_modules/merge-stream": { "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true, "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", + "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha1-vImZp8u/d83InxMvbkZwUbSQkMY=", + "dev": true, + "license": "MIT", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" } }, "node_modules/mime-db": { - "version": "1.51.0", + "version": "1.52.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha1-u6vNwChZ9JhzAchW4zh85exDv3A=", "dev": true, "license": "MIT", "engines": { @@ -2081,11 +2413,13 @@ } }, "node_modules/mime-types": { - "version": "2.1.34", + "version": "2.1.35", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha1-OBqHG2KnNEUGYK497uRIE/cNlZo=", "dev": true, "license": "MIT", "dependencies": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -2093,6 +2427,8 @@ }, "node_modules/mimic-fn": { "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", "dev": true, "license": "MIT", "engines": { @@ -2103,6 +2439,7 @@ "version": "3.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", + "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -2113,26 +2450,43 @@ }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true, + "license": "MIT" }, "node_modules/natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha1-F7CVgZiJef3a/gIB6TG6kzyWy7Q=", + "dev": true, + "license": "MIT" }, "node_modules/neo-async": { "version": "2.6.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", "dev": true, "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.1", + "version": "2.0.13", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha1-1e0WJ8I+NGHoGbAuV7deSJmxyB0=", "dev": true, "license": "MIT" }, "node_modules/npm-run-path": { "version": "4.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", "dev": true, "license": "MIT", "dependencies": { @@ -2144,14 +2498,18 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", "dev": true, "license": "MIT", "dependencies": { @@ -2165,23 +2523,37 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha1-AHOX1E7Rhy/cbtMTYBkPgYFOLGQ=", + "dev": true, + "license": "MIT", "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", "dev": true, "license": "MIT", "dependencies": { @@ -2196,6 +2568,8 @@ }, "node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", "dev": true, "license": "MIT", "dependencies": { @@ -2207,6 +2581,8 @@ }, "node_modules/p-try": { "version": "2.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", "dev": true, "license": "MIT", "engines": { @@ -2215,8 +2591,10 @@ }, "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -2226,6 +2604,8 @@ }, "node_modules/path-exists": { "version": "4.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", "dev": true, "license": "MIT", "engines": { @@ -2234,14 +2614,19 @@ }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2249,25 +2634,34 @@ }, "node_modules/path-parse": { "version": "1.0.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", + "dev": true, "license": "MIT" }, "node_modules/path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/picocolors": { "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=", "dev": true, "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha1-O6ODNzNkbZ0+SZWUbBNlpn+wekI=", + "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -2277,6 +2671,8 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", "dev": true, "license": "MIT", "dependencies": { @@ -2288,23 +2684,37 @@ }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "peer": true, - "engines": { - "node": ">=0.4.0" + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true, + "license": "ISC" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "node_modules/punycode": { - "version": "2.1.1", + "version": "2.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha1-9n+mfJTaj00M//mBruQRgGQZm48=", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -2312,8 +2722,9 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", + "dev": true, "funding": [ { "type": "github", @@ -2327,52 +2738,45 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/randombytes": { "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/rechoir": { - "version": "0.7.1", + "version": "0.8.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha1-Sfhm4NMhRhQto62PDv81KzIV/yI=", "dev": true, "license": "MIT", "dependencies": { - "resolve": "^1.9.0" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "peer": true, - "engines": { - "node": ">=0.10.0" + "node": ">= 10.13.0" } }, "node_modules/resolve": { - "version": "1.20.0", + "version": "1.22.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha1-DtCUPU4wGGeVV2bJ8+GubQHGhF8=", + "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2380,6 +2784,8 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha1-DwB18bslRHZs9zumpuKt/ryxPy0=", "dev": true, "license": "MIT", "dependencies": { @@ -2391,6 +2797,8 @@ }, "node_modules/resolve-from": { "version": "5.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", "dev": true, "license": "MIT", "engines": { @@ -2399,8 +2807,10 @@ }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", + "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -2408,8 +2818,10 @@ }, "node_modules/rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -2421,113 +2833,27 @@ } }, "node_modules/rollup": { - "version": "2.77.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup/-/rollup-2.77.0.tgz", - "integrity": "sha1-dJ6qWsCba6pSrMB2vEZhPt39U/Q=", + "version": "3.26.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup/-/rollup-3.26.2.tgz", + "integrity": "sha1-LnajdgbLUj/J/vQ+b1nJP4bZXnw=", + "dev": true, "license": "MIT", "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.18.0", + "npm": ">=8.0.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-consts": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-consts/-/rollup-plugin-consts-1.1.0.tgz", - "integrity": "sha1-EL2UBh1+LW4G0BWAaIYLo8E3W7w=", - "license": "Apache-2.0", - "peerDependencies": { - "rollup": ">=1.15.0 <3" - } - }, - "node_modules/rollup-plugin-dts": { - "version": "4.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", - "integrity": "sha1-godrh4QhOvKbAs8mC0XkBP+DXOE=", - "license": "LGPL-3.0", - "dependencies": { - "magic-string": "^0.26.1" - }, - "engines": { - "node": ">=v12.22.11" - }, - "funding": { - "url": "https://github.com/sponsors/Swatinem" - }, - "optionalDependencies": { - "@babel/code-frame": "^7.16.7" - }, - "peerDependencies": { - "rollup": "^2.55", - "typescript": "^4.1" - } - }, - "node_modules/rollup-plugin-dts/node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "optional": true, - "dependencies": { - "@babel/highlight": "^7.16.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "dependencies": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "peerDependencies": { - "rollup": "^2.0.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/rollup-plugin-terser/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", + "dev": true, "funding": [ { "type": "github", @@ -2542,12 +2868,16 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-buffer": { "version": "5.2.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true, "funding": [ { "type": "github", @@ -2565,7 +2895,9 @@ "license": "MIT" }, "node_modules/schema-utils": { - "version": "3.1.1", + "version": "3.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha1-9QqIh3w8AWUqFbYirp6Xld96YP4=", "dev": true, "license": "MIT", "dependencies": { @@ -2582,9 +2914,10 @@ } }, "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.3.7.tgz", - "integrity": "sha1-EsW2Sa/b+QSXB3luIqQCiBTOUj8=", + "version": "7.5.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.5.4.tgz", + "integrity": "sha1-SDmG7E7TjhxsSMNIlKkYLb/2im4=", + "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" @@ -2597,7 +2930,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", + "version": "6.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha1-sgbvsnw9oLCra1L0jRcLeZZFjlw=", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -2606,6 +2941,8 @@ }, "node_modules/shallow-clone": { "version": "3.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", "dev": true, "license": "MIT", "dependencies": { @@ -2617,6 +2954,9 @@ }, "node_modules/shebang-command": { "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" @@ -2627,43 +2967,43 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/signal-exit": { - "version": "3.0.6", + "version": "3.0.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha1-qaF2f4r4QVURTqq9c/mSc8j1mtk=", "dev": true, "license": "ISC" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/slash/-/slash-3.0.0.tgz", + "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } + "node_modules/smob": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/smob/-/smob-1.4.0.tgz", + "integrity": "sha1-rJdR/lSx/B/IKGpijU5/gkJzuVo=", + "dev": true, + "license": "MIT" }, "node_modules/source-map": { "version": "0.6.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -2671,42 +3011,21 @@ }, "node_modules/source-map-support": { "version": "0.5.21", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha1-BP58f54e0tZiIzwoyys1ufY/bk8=", + "dev": true, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=", - "license": "MIT" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "peer": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", + "dev": true, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -2714,8 +3033,20 @@ "node": ">=8" } }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/strip-final-newline": { "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", "dev": true, "license": "MIT", "engines": { @@ -2724,8 +3055,10 @@ }, "node_modules/strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", + "dev": true, + "license": "MIT", "engines": { "node": ">=8" }, @@ -2735,6 +3068,8 @@ }, "node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", "dev": true, "license": "MIT", "dependencies": { @@ -2747,44 +3082,19 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "peer": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha1-btpL00SjyUrqN21MwxvHcxEDngk=", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "node": ">= 0.4" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "peer": true - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tapable/-/tapable-2.2.1.tgz", @@ -2796,13 +3106,14 @@ } }, "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser/-/terser-5.14.2.tgz", - "integrity": "sha1-msnyKwaZTXNhdPQJGqNo24lvHBA=", + "version": "5.19.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser/-/terser-5.19.0.tgz", + "integrity": "sha1-ezE3sBImvdF5l4IHucgUh1Sm2pw=", + "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -2814,15 +3125,17 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.0", + "version": "5.3.9", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha1-gyU2mZxRtG1GgGf543Zio7lq3+E=", "dev": true, "license": "MIT", "dependencies": { - "jest-worker": "^27.4.1", + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" }, "engines": { "node": ">= 10.13.0" @@ -2848,13 +3161,17 @@ }, "node_modules/text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true, + "license": "MIT" }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -2863,15 +3180,18 @@ } }, "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha1-fOyqfwc85oCgWEeqd76UEJjzbcM=", + "version": "2.6.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha1-spWFRoTb2hZOGB0lmiLNd53Ne8M=", + "dev": true, "license": "0BSD" }, "node_modules/tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=", + "dev": true, + "license": "MIT", "dependencies": { "tslib": "^1.8.1" }, @@ -2884,13 +3204,17 @@ }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", + "dev": true, + "license": "0BSD" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", + "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -2900,8 +3224,10 @@ }, "node_modules/type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", + "dev": true, + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -2910,35 +3236,66 @@ } }, "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha1-GohZbRz0fVlQehvN+1ud/k1IgjU=", + "version": "5.1.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha1-AvisICttrSwN1eCRN0W0ejeZgnQ=", + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/underscore": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", - "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" + "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==", + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha1-mipkGtKQeuezYWUG9Ll3hR21uUA=", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } }, "node_modules/uri-js": { "version": "4.4.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, "node_modules/watchpack": { "version": "2.4.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/watchpack/-/watchpack-2.4.0.tgz", @@ -2954,23 +3311,23 @@ } }, "node_modules/webpack": { - "version": "5.76.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack/-/webpack-5.76.0.tgz", - "integrity": "sha1-+fufuMSn29zQ1WqY5WuKlC7iaSw=", + "version": "5.88.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack/-/webpack-5.88.1.tgz", + "integrity": "sha1-IeugHoG9Xt/xlorqcm4vv9VX0/g=", "dev": true, "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -2979,9 +3336,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -3002,39 +3359,43 @@ } }, "node_modules/webpack-cli": { - "version": "4.9.1", + "version": "5.1.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha1-yOBGun6q5JEdfnHislt3b8w1dZs=", "dev": true, "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.0", - "@webpack-cli/info": "^1.4.0", - "@webpack-cli/serve": "^1.6.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", "colorette": "^2.0.14", - "commander": "^7.0.0", - "execa": "^5.0.0", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x" + "webpack": "5.x.x" }, "peerDependenciesMeta": { "@webpack-cli/generators": { "optional": true }, - "@webpack-cli/migrate": { - "optional": true - }, "webpack-bundle-analyzer": { "optional": true }, @@ -3044,15 +3405,19 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", + "version": "10.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/commander/-/commander-10.0.1.tgz", + "integrity": "sha1-iB7ka0930cHczFgjQzqjmwIsvgY=", "dev": true, "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=14" } }, "node_modules/webpack-merge": { - "version": "5.8.0", + "version": "5.9.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha1-3BYKHEz1Es7KUVzCMWaendsTOCY=", "dev": true, "license": "MIT", "dependencies": { @@ -3065,15 +3430,19 @@ }, "node_modules/webpack-sources": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha1-LU2quEUf1LJAzCcFX/agwszqDN4=", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/which": { "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, "license": "ISC", "dependencies": { "isexe": "^2.0.0" @@ -3086,145 +3455,119 @@ } }, "node_modules/wildcard": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha1-WrENAkhxmJVINrY0n3T/+WHhD2c=", "dev": true, "license": "MIT" }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true, + "license": "ISC" }, "node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } }, "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "requires": { - "@babel/highlight": "^7.10.4" - } + "@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha1-vZFUrsmYP3ezoDTsqgFcLkIB9s8=", + "dev": true }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha1-HVcr+74Ut3BOC6Dzm3SBW4SHDXA=", + "dev": true }, - "@babel/highlight": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", - "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha1-ojUU6Pua8SadX3eIqlVnmNYca1k=", + "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } + "eslint-visitor-keys": "^3.3.0" } }, - "@discoveryjs/json-ext": { - "version": "0.5.6", + "@eslint-community/regexpp": { + "version": "4.5.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint-community/regexpp/-/regexpp-4.5.1.tgz", + "integrity": "sha1-zdNdzk+hqJpP1CsVmes1s69AiIQ=", "dev": true }, "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "peer": true, + "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-2.1.0.tgz", + "integrity": "sha1-giVvFkzJ4LWWae/BnVf4CScGhB0=", + "dev": true, "requires": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, + "@eslint/js": { + "version": "8.44.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/js/-/js-8.44.0.tgz", + "integrity": "sha1-lhpZA8dBOTkEeL3ICLzeP8Rat68=", + "dev": true + }, "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "peer": true, + "version": "0.11.10", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.11.10.tgz", + "integrity": "sha1-Wj/+MsyTBjZfs/1XJZbNYC1eEtI=", + "dev": true, "requires": { - "@humanwhocodes/object-schema": "^1.2.0", + "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" } }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha1-r1smkaIrRL6EewyoFkHF+2rQFyw=", + "dev": true + }, "@humanwhocodes/object-schema": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=", + "dev": true }, "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha1-wa7cYehT8rufXf5tRELTtWWyU7k=", + "version": "0.3.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha1-fgLm6135AartsIUUIDsJZhQCQJg=", + "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -3234,17 +3577,20 @@ "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha1-IgOxGMFXchrd/mnUe3BGVGMGbXg=" + "integrity": "sha1-IgOxGMFXchrd/mnUe3BGVGMGbXg=", + "dev": true }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha1-fGz5mNbSC5FMClWpGuko/yWWXnI=" + "integrity": "sha1-fGz5mNbSC5FMClWpGuko/yWWXnI=", + "dev": true }, "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha1-9FNRqu1FJ6KYUS7HL4EEDJmFgPs=", + "version": "0.3.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha1-o7tNXGglqrDSgSaPR/atWFNDHpE=", + "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -3253,254 +3599,55 @@ "@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha1-rdTJjTQUcqKJGQtCTvvbCWmRuyQ=" + "integrity": "sha1-rdTJjTQUcqKJGQtCTvvbCWmRuyQ=", + "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha1-sjGggdj2Z5bkda1Yih70cxEnAe0=", + "version": "0.3.18", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz", + "integrity": "sha1-JXg7IIba9v8dy1PJJJrkgOTdTNY=", + "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@microsoft/dotnet-runtime": { "version": "file:bin/dotnet-runtime", "requires": { - "@rollup/plugin-typescript": "8.3.3", - "@typescript-eslint/eslint-plugin": "5.30.7", - "@typescript-eslint/parser": "5.30.7", - "eslint": "8.20.0", - "fast-glob": "3.2.11", - "rollup": "2.77.0", - "rollup-plugin-consts": "1.1.0", - "rollup-plugin-dts": "4.2.2", - "rollup-plugin-terser": "7.0.2", - "terser": "5.14.2", - "tslib": "2.4.0", - "typescript": "4.7.4" - }, - "dependencies": { - "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha1-KfksMLs+dx5KIEjJX6aFU5LfrE8=", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha1-LLr5qJRg2iS1ymUxuLv8I+HfUMc=", - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.7.tgz", - "integrity": "sha1-FiHavBrkCEMQ4Z6e/IDf27l+dJM=", - "requires": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/type-utils": "5.30.7", - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "@typescript-eslint/type-utils": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.30.7.tgz", - "integrity": "sha1-VpPcPbbzE/MCdkKC1hTP28ip/P0=", - "requires": { - "@typescript-eslint/utils": "5.30.7", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.30.7.tgz", - "integrity": "sha1-cTW+BwNJ6ffKomKwylnclhIzUbs=", - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - } - } - } - }, - "@typescript-eslint/parser": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.30.7.tgz", - "integrity": "sha1-mdCXKTkq7J5ksd5FzWPLgaTd2YA=", - "requires": { - "@typescript-eslint/scope-manager": "5.30.7", - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/typescript-estree": "5.30.7", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.30.7.tgz", - "integrity": "sha1-gmmpMe8eWuaLXrgHQ8xRXE/+Pdc=", - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7" - } - }, - "@typescript-eslint/types": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.30.7.tgz", - "integrity": "sha1-GDMUh8yS0PH7Gm9YDI7IMlKAedA=" - }, - "@typescript-eslint/typescript-estree": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.7.tgz", - "integrity": "sha1-BdqfGygZhb/tz2I0mEf40WjuzAc=", - "requires": { - "@typescript-eslint/types": "5.30.7", - "@typescript-eslint/visitor-keys": "5.30.7", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.30.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.7.tgz", - "integrity": "sha1-wJOrrnW0/YIr+62fwzfzinoUkJo=", - "requires": { - "@typescript-eslint/types": "5.30.7", - "eslint-visitor-keys": "^3.3.0" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=" - }, - "eslint": { - "version": "8.20.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.20.0.tgz", - "integrity": "sha1-BIrFaqGFKZZ9qDVKR4vk7AoryBs=", - "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha1-//NIlML2XlIm0wQaxIC0UToWNkI=", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha1-9kgPprHzDv4tGWiqisdFuGJGmCY=" - }, - "espree": { - "version": "9.3.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.3.3.tgz", - "integrity": "sha1-LdN8QWK7BfQzrTwaUt34pJ3Ajp0=", - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "estraverse": { + "@rollup/plugin-terser": "0.4.3", + "@rollup/plugin-typescript": "11.1.2", + "@rollup/plugin-virtual": "3.0.1", + "@typescript-eslint/eslint-plugin": "5.59.1", + "@typescript-eslint/parser": "5.59.1", + "eslint": "8.44.0", + "fast-glob": "3.3.0", + "git-commit-info": "2.0.2", + "magic-string": "0.30.1", + "rollup": "3.26.2", + "rollup-plugin-dts": "5.3.0", + "terser": "5.19.0", + "tslib": "2.6.0", + "typescript": "5.1.6" + }, + "dependencies": { + "rollup-plugin-dts": { "version": "5.3.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=" - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", - "requires": { - "is-glob": "^4.0.3" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha1-bTusj6f+DUXZ+b57rC/CeVd+NFo=" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-dts/-/rollup-plugin-dts-5.3.0.tgz", + "integrity": "sha1-gKlZiAAvGI43b22zt+L1NnkWiVc=", + "dev": true, "requires": { - "argparse": "^2.0.1" + "@babel/code-frame": "^7.18.6", + "magic-string": "^0.30.0" } } } }, "@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=", + "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3508,48 +3655,63 @@ }, "@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=", + "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=", + "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, + "@rollup/plugin-terser": { + "version": "0.4.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-terser/-/plugin-terser-0.4.3.tgz", + "integrity": "sha1-wr3i/jqF5F+mikVNSPTnPlf5izA=", + "dev": true, + "requires": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + } + }, "@rollup/plugin-typescript": { - "version": "8.3.3", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", - "integrity": "sha1-7uftq5z8Bk8c/RZXBJJpPPFDIhU=", + "version": "11.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-typescript/-/plugin-typescript-11.1.2.tgz", + "integrity": "sha1-CetWkKZQuwM0v4QSW86avSlkQuQ=", + "dev": true, "requires": { - "@rollup/pluginutils": "^3.1.0", - "resolve": "^1.17.0" + "@rollup/pluginutils": "^5.0.1", + "resolve": "^1.22.1" } }, + "@rollup/plugin-virtual": { + "version": "3.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/plugin-virtual/-/plugin-virtual-3.0.1.tgz", + "integrity": "sha1-zqfkiUgcwMqRUWwEf4xTwc+xrfY=", + "dev": true, + "requires": {} + }, "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "version": "5.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha1-ASuPU8ceT2+csxfjEd8UBPVuejM=", + "dev": true, "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - } + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" } }, "@types/eslint": { - "version": "8.21.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/eslint/-/eslint-8.21.2.tgz", - "integrity": "sha1-K2G0OosOZgBoVqKkyOUfb3c+rSc=", + "version": "8.44.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha1-VYGOq7N24icvd/v1yWxDE3w8HlM=", "dev": true, "requires": { "@types/estree": "*", @@ -3567,176 +3729,332 @@ } }, "@types/estree": { - "version": "0.0.51", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha1-z9cJJKJaP9MrIY5eQg5ol+GsT0A=", + "version": "1.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha1-qiJ1CWLzvw5511PTzAZ/AQyV8ZQ=", "dev": true }, "@types/json-schema": { - "version": "7.0.9" + "version": "7.0.12", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/json-schema/-/json-schema-7.0.12.tgz", + "integrity": "sha1-1w+rpwOdX8pUyDx9urQQUdK29ss=", + "dev": true }, "@types/node": { - "version": "17.0.5" + "version": "20.4.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/node/-/node-20.4.2.tgz", + "integrity": "sha1-EpzJrmn5OCT5L6xlPuv7SBKrSvk=", + "dev": true + }, + "@types/semver": { + "version": "7.5.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@types/semver/-/semver-7.5.0.tgz", + "integrity": "sha1-WRwc46cCxF7hX0ekKt5ywv14l4o=", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", + "integrity": "sha1-mwnuFUG/8dLOvcuH585KQAOs3gg=", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/type-utils": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/parser/-/parser-5.59.1.tgz", + "integrity": "sha1-c8LBISfFwRgtLltxqPoqhdIVy7Q=", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", + "integrity": "sha1-iiAiJxnOvFGYYYpdRBE3BbUf1/4=", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", + "integrity": "sha1-Y5gdYWhP0k7aL58IwKR+ywAKIRE=", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/types/-/types-5.59.1.tgz", + "integrity": "sha1-A/P+3RwETLM268NMx4VfEhmR9B0=", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", + "integrity": "sha1-SqVG0n/Q1HfGGPDKALSD8OyExDw=", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/utils/-/utils-5.59.1.tgz", + "integrity": "sha1-2J/HWK0j0hV8+uU/C0Kb3xXblHM=", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", + "integrity": "sha1-DZbDbvtlYNf7jrhd4QRCwQ2PYFg=", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.1", + "eslint-visitor-keys": "^3.3.0" + } }, "@webassemblyjs/ast": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha1-2wRlVdPEE/iWbKUKlRdqDixkLiQ=", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha1-2svLla/xNcgmD3f6O0xf6mAKZDE=", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha1-YTL2jErNWdzRQcRLGMvrvZ8vp2g=", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha1-tm1zxD4pb9XogAbxhST+sPLHwJM=", "dev": true }, "@webassemblyjs/helper-numbers": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha1-y85efgwb0yz0kFrkRO9kzqkZ8bU=", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha1-uy69s7g6om2bqtTEbUMVKDrNUek=", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha1-/5fzhjxV7n9YD9XEGjgene9KpXc=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "@webassemblyjs/ieee754": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha1-u2ZckdCxT//OsOOCmMMprwQ8bjo=", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha1-cOYOXoL5rIERi8JTgaCyg4kyQNc=", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha1-kPi8NMVhWV/hVmA75yU8280Pq1o=", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha1-xy+oIgUkybQWJJ89lMKVjf5wzqs=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha1-+1KD4Oi0VRzE6cPA1xhKZfr3wmg=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha1-2aItZRJIQiykmLCaoyMqgQQUh8I=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha1-u4U3jFJ9+CQASBK723hO6lORdKE=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "@webassemblyjs/wast-printer": { - "version": "1.11.1", + "version": "1.11.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha1-p7+N1+NirrFmj/Q/NcuEnxiO/yA=", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, "@webpack-cli/configtest": { - "version": "1.1.0", + "version": "2.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha1-Oy+FLpHaxuO4X7KjFPuL70bZRkY=", "dev": true, "requires": {} }, "@webpack-cli/info": { - "version": "1.4.0", + "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha1-zD+/Iu/riP9iMQz4hcWwn0SuD90=", "dev": true, - "requires": { - "envinfo": "^7.7.3" - } + "requires": {} }, "@webpack-cli/serve": { - "version": "1.6.0", + "version": "2.0.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha1-Ml20I5XNSf5sFAV/mpAOQn34gQ4=", "dev": true, "requires": {} }, "@xtuc/ieee754": { "version": "1.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", "dev": true }, "@xtuc/long": { "version": "4.2.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", "dev": true }, "acorn": { - "version": "8.8.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha1-iMAYdiBDXH9gFYA/VTna4Fqdvqg=" + "version": "8.10.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha1-i+WzkHpnIhqBqyPHiJxMVSa2LsU=", + "dev": true }, "acorn-import-assertions": { - "version": "1.8.0", + "version": "1.9.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha1-UHJ2JJ1oR5fITgc074SGAzTPsaw=", "dev": true, "requires": {} }, "acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=", + "dev": true, "requires": {} }, "ajv": { "version": "6.12.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -3746,57 +4064,49 @@ }, "ajv-keywords": { "version": "3.5.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha1-MfKdpatuANHC0yms97WSlhTVAU0=", "dev": true, "requires": {} }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "peer": true - }, "ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=", + "dev": true }, "ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "dev": true, "requires": { "color-convert": "^2.0.1" } }, "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "peer": true, - "requires": { - "sprintf-js": "~1.0.2" - } + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=", + "dev": true }, "array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "peer": true + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha1-t5hCCtvrHego2ErNii4j0+/oXo0=", + "dev": true }, "balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=", + "dev": true }, "brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3804,39 +4114,48 @@ }, "braces": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/braces/-/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, "requires": { "fill-range": "^7.0.1" } }, "browserslist": { - "version": "4.19.1", + "version": "4.21.9", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/browserslist/-/browserslist-4.21.9.tgz", + "integrity": "sha1-4RvdPDE9fiqeh+i0sMeHKxOJdjU=", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001503", + "electron-to-chromium": "^1.4.431", + "node-releases": "^2.0.12", + "update-browserslist-db": "^1.0.11" } }, "buffer-from": { - "version": "1.1.2" + "version": "1.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha1-KxRqb9cugLT1XSVfNe1Zo6mkG9U=", + "dev": true }, "callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=", + "dev": true }, "caniuse-lite": { - "version": "1.0.30001292", + "version": "1.0.30001515", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", + "integrity": "sha1-QYrv7tnQJM0xKb+uDMx4LUy48Ss=", "dev": true }, "chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3844,8 +4163,9 @@ "dependencies": { "supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -3854,10 +4174,14 @@ }, "chrome-trace-event": { "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha1-EBXs7UdB4V0GZkqVfbv1DQQeJqw=", "dev": true }, "clone-deep": { "version": "4.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c=", "dev": true, "requires": { "is-plain-object": "^2.0.4", @@ -3867,31 +4191,42 @@ }, "color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true }, "colorette": { - "version": "2.0.16", + "version": "2.0.20", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha1-nreT5oMwZ/cjWQL807CZF6AAqVo=", "dev": true }, "commander": { - "version": "2.20.3" + "version": "2.20.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/commander/-/commander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=", + "dev": true }, "concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "cross-spawn": { "version": "7.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -3902,306 +4237,367 @@ "version": "4.3.4", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/debug/-/debug-4.3.4.tgz", "integrity": "sha1-Exn2V5NX8jONMzfSzdSRS7XcyGU=", + "dev": true, "requires": { "ms": "2.1.2" } }, "deep-is": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=", + "dev": true }, "dir-glob": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha1-Vtv3PZkqSpO6FYT0U0Bj/S5BcX8=", + "dev": true, "requires": { "path-type": "^4.0.0" } }, "doctrine": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=", + "dev": true, "requires": { "esutils": "^2.0.2" } }, "electron-to-chromium": { - "version": "1.4.28", + "version": "1.4.460", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/electron-to-chromium/-/electron-to-chromium-1.4.460.tgz", + "integrity": "sha1-82ClBZwDnEpftN+ploCtgSndn4Q=", "dev": true }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "peer": true + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "dev": true, + "requires": { + "once": "^1.4.0" + } }, "enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha1-MA4ckCKPW1cMTTW6vyY/bacVVjQ=", + "version": "5.15.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha1-GvlGx9k2A+uI6Yls7kkE3AEunDU=", "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "peer": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, "envinfo": { - "version": "7.8.1", + "version": "7.10.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/envinfo/-/envinfo-7.10.0.tgz", + "integrity": "sha1-VRRuOQnMX+Y8Itpj+xWwWurDWxM=", "dev": true }, "es-module-lexer": { - "version": "0.9.3", + "version": "1.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha1-a+nJ4LRUOmDNFm/2+LTp2uCwwW8=", "dev": true }, "escalade": { "version": "3.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=", "dev": true }, "escape-string-regexp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=", + "dev": true }, "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "peer": true, + "version": "8.44.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint/-/eslint-8.44.0.tgz", + "integrity": "sha1-USRuOImyWbvNHX1zagwQrdTw5QA=", + "dev": true, "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.1.0", + "@eslint/js": "8.44.0", + "@humanwhocodes/config-array": "^0.11.10", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.1", + "espree": "^9.6.0", + "esquery": "^1.4.2", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "peer": true, + "eslint-scope": { + "version": "7.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha1-8h69r9oCNS8QNjS5bdR9n4HKEXs=", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", + "dev": true + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha1-TJKBnstwg1YeT0okCoa+UZj1Nvw=", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha1-VTIeswn+u8WcSAHZMackUqaB0oY=", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha1-4drMvnjQ0TiMoYxk/qOOPlfjcGs=", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha1-g8gxXGeFAF470CGDlBHJ4RDm2DQ=", + "dev": true, "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "peer": true - } + "p-limit": "^3.0.2" } } } }, "eslint-scope": { "version": "5.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha1-54blmmbLkrP2wfsNUIqrF0hI9Iw=", + "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" + "version": "3.4.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz", + "integrity": "sha1-wixI9IlC0IyoJMxSYhGuQAR4qZQ=", + "dev": true }, "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "peer": true, + "version": "9.6.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/espree/-/espree-9.6.0.tgz", + "integrity": "sha1-gIaXVLHGVg8y47aSkZSj/gfFuC8=", + "dev": true, "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "peer": true - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "peer": true - } + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "peer": true - }, "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "version": "1.5.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha1-bOF3ON6Fd2lO3XNhxXGCrIyw2ws=", + "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", + "dev": true } } }, "esrecurse": { "version": "4.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=", + "dev": true, "requires": { "estraverse": "^5.2.0" }, "dependencies": { "estraverse": { - "version": "5.3.0" + "version": "5.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=", + "dev": true } } }, "estraverse": { - "version": "4.3.0" + "version": "4.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true }, "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw=", + "dev": true }, "esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "dev": true }, "events": { "version": "3.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/events/-/events-3.3.0.tgz", + "integrity": "sha1-Mala0Kkk4tLEGagTrrLE6HjqdAA=", "dev": true }, "execa": { - "version": "5.1.1", + "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/execa/-/execa-4.1.0.tgz", + "integrity": "sha1-TlSRrRVy8vF6d9OIxshXE1sihHo=", "dev": true, "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } }, "fast-deep-equal": { - "version": "3.1.3" + "version": "3.1.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha1-oRcq2VzrihbiDKpcXlZIDlEpwdk=", + "version": "3.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-glob/-/fast-glob-3.3.0.tgz", + "integrity": "sha1-fEDLSR4eLtVmR0noe/tRbb6HJ8A=", + "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } } }, "fast-json-stable-stringify": { - "version": "2.1.0" + "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true }, "fastest-levenshtein": { - "version": "1.0.12", + "version": "1.0.16", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha1-IQ5htv8YHekeqbPRuE/e3UfgNOU=", "dev": true }, "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.15.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha1-0E0HxqKmj+RZn+qNLhA6k3+uazo=", + "dev": true, "requires": { "reusify": "^1.0.4" } }, "file-entry-cache": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=", + "dev": true, "requires": { "flat-cache": "^3.0.4" } }, "fill-range": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "find-up": { "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", "dev": true, "requires": { "locate-path": "^5.0.0", @@ -4210,60 +4606,80 @@ }, "flat-cache": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=", + "dev": true, "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" } }, "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==" + "version": "3.2.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha1-YJ85IHy2FLidB2W0d8stQ3+/l4c=", + "dev": true }, "fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=", + "dev": true, "optional": true }, "function-bind": { - "version": "1.1.1" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=", + "dev": true }, "get-stream": { - "version": "6.0.1", - "dev": true + "version": "5.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha1-SWaheV7lrOZecGxLe+txJX1uItM=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "git-commit-info": { + "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/git-commit-info/-/git-commit-info-2.0.2.tgz", + "integrity": "sha1-XrAre34zk+zq+6KsIH3l2ceMzxs=", + "dev": true, + "requires": { + "execa": "^4.0.3", + "is-git-repository": "^1.1.1", + "path-is-absolute": "^1.0.1" + } }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob/-/glob-7.2.3.tgz", + "integrity": "sha1-uN8PuAK7+o6JvR2Ti04WV47UTys=", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "version": "6.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=", + "dev": true, "requires": { - "is-glob": "^4.0.1" + "is-glob": "^4.0.3" } }, "glob-to-regexp": { @@ -4273,9 +4689,10 @@ "dev": true }, "globals": { - "version": "13.17.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.17.0.tgz", - "integrity": "sha1-kC6x5oCkHak5Ra29y1qfNhumm9Q=", + "version": "13.20.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globals/-/globals-13.20.0.tgz", + "integrity": "sha1-6idqHlCP/U8WEoiPnRutHicXv4I=", + "dev": true, "requires": { "type-fest": "^0.20.2" } @@ -4284,6 +4701,7 @@ "version": "11.1.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/globby/-/globby-11.1.0.tgz", "integrity": "sha1-vUvpi7BC+D15b344EZkfvoKg00s=", + "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -4291,44 +4709,58 @@ "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" - }, - "dependencies": { - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - } } }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha1-FH06AG2kyjzhRyjHrvwofDZ9emw=", + "version": "4.2.11", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha1-QYPk6L8Iu24Fu7L30uDI9xLKQOM=", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha1-nPOmZcYkdHmJaDSvNc8du0QAdn4=", + "dev": true + }, + "graphemer": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha1-+y8dVeDjoYSa7/yQxPoN1ToOZsY=", "dev": true }, "has": { "version": "1.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has/-/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-flag": { - "version": "4.0.0" + "version": "4.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true }, "human-signals": { - "version": "2.1.0", + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", "dev": true }, "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "peer": true + "version": "5.2.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha1-opHAxheP8blgvv5H/N7DAWdKYyQ=", + "dev": true }, "import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=", + "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -4336,13 +4768,16 @@ "dependencies": { "resolve-from": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=", + "dev": true } } }, "import-local": { - "version": "3.0.3", + "version": "3.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha1-tEed+KX9RPbNziQHBnVnYGPJXLQ=", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -4351,13 +4786,15 @@ }, "imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true }, "inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -4365,45 +4802,161 @@ }, "inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", + "dev": true }, "interpret": { - "version": "2.2.0", + "version": "3.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha1-W+DO7WfKecbEvFzw1+6EPc6hEMQ=", "dev": true }, "is-core-module": { - "version": "2.8.0", + "version": "2.12.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-core-module/-/is-core-module-2.12.1.tgz", + "integrity": "sha1-DAtohbb4ABHHFUHOFcjWbPWk+f0=", + "dev": true, "requires": { "has": "^1.0.3" } }, "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "peer": true + "is-git-repository": { + "version": "1.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-git-repository/-/is-git-repository-1.1.1.tgz", + "integrity": "sha1-xo5LeoBkIjSarsSIlzqQVY1+m+A=", + "dev": true, + "requires": { + "execa": "^0.6.1", + "path-is-absolute": "^1.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.6.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/execa/-/execa-0.6.3.tgz", + "integrity": "sha1-V7aaWU8IF1nGnlNw8NF7nLEWWP4=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } }, "is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=", + "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha1-0jE2LlOgf/Kw4Op/7QSRYf/RYoM=", + "dev": true }, "is-plain-object": { "version": "2.0.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", "dev": true, "requires": { "isobject": "^3.0.1" @@ -4411,17 +4964,26 @@ }, "is-stream": { "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha1-+sHj1TuXrVqdCunO8jifWBClwHc=", "dev": true }, "isexe": { - "version": "2.0.0" + "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true }, "isobject": { "version": "3.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "jest-worker": { - "version": "27.4.5", + "version": "27.5.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha1-jRRvCQDolzsQa29zzB6ajLhvjbA=", "dev": true, "requires": { "@types/node": "*", @@ -4429,19 +4991,13 @@ "supports-color": "^8.0.0" } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "peer": true, + "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=", + "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" } }, "json-parse-even-better-errors": { @@ -4451,32 +5007,43 @@ "dev": true }, "json-schema-traverse": { - "version": "0.4.1" + "version": "0.4.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true }, "kind-of": { "version": "6.0.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", "dev": true }, "levn": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/levn/-/levn-0.4.1.tgz", + "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=", + "dev": true, "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "loader-runner": { - "version": "4.2.0", + "version": "4.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha1-wbShY7mfYUgwNTsWdV5xSawjFOE=", "dev": true }, "locate-path": { "version": "5.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", "dev": true, "requires": { "p-locate": "^4.1.0" @@ -4484,91 +5051,122 @@ }, "lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", - "peer": true + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=", + "dev": true }, "lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=", + "dev": true, "requires": { "yallist": "^4.0.0" } }, "magic-string": { - "version": "0.26.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/magic-string/-/magic-string-0.26.2.tgz", - "integrity": "sha1-UzFwDkFYzWvv2nOLtrDHuTwNRDI=", + "version": "0.30.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/magic-string/-/magic-string-0.30.1.tgz", + "integrity": "sha1-zlzUsKgaXQMr1pqrRSIpmyFmKE0=", + "dev": true, "requires": { - "sourcemap-codec": "^1.4.8" + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "dependencies": { + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha1-18bmdVx4VnqVHgSrUu8P0m3lnzI=", + "dev": true + } } }, "merge-stream": { - "version": "2.0.0" + "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true }, "merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", + "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha1-vImZp8u/d83InxMvbkZwUbSQkMY=", + "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "mime-db": { - "version": "1.51.0", + "version": "1.52.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha1-u6vNwChZ9JhzAchW4zh85exDv3A=", "dev": true }, "mime-types": { - "version": "2.1.34", + "version": "2.1.35", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha1-OBqHG2KnNEUGYK497uRIE/cNlZo=", "dev": true, "requires": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" } }, "mimic-fn": { "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", "dev": true }, "minimatch": { "version": "3.1.2", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha1-Gc0ZS/0+Qo8EmnCBfAONiatL41s=", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/ms/-/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true }, "natural-compare": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha1-F7CVgZiJef3a/gIB6TG6kzyWy7Q=", + "dev": true }, "neo-async": { "version": "2.6.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", "dev": true }, "node-releases": { - "version": "2.0.1", + "version": "2.0.13", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha1-1e0WJ8I+NGHoGbAuV7deSJmxyB0=", "dev": true }, "npm-run-path": { "version": "4.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", "dev": true, "requires": { "path-key": "^3.0.0" @@ -4576,34 +5174,46 @@ }, "once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { "wrappy": "1" } }, "onetime": { "version": "5.1.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha1-0Oluu1awdHbfHdnEgG5SN5hcpF4=", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.3", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha1-AHOX1E7Rhy/cbtMTYBkPgYFOLGQ=", + "dev": true, "requires": { + "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "type-check": "^0.4.0" } }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, "p-limit": { "version": "2.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", "dev": true, "requires": { "p-try": "^2.0.0" @@ -4611,6 +5221,8 @@ }, "p-locate": { "version": "4.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", "dev": true, "requires": { "p-limit": "^2.2.0" @@ -4618,47 +5230,65 @@ }, "p-try": { "version": "2.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", "dev": true }, "parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=", + "dev": true, "requires": { "callsites": "^3.0.0" } }, "path-exists": { "version": "4.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-key": { - "version": "3.1.1" + "version": "3.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true }, "path-parse": { - "version": "1.0.7" + "version": "1.0.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=", + "dev": true }, "path-type": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=", + "dev": true }, "picocolors": { "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw=", "dev": true }, "picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha1-O6ODNzNkbZ0+SZWUbBNlpn+wekI=", + "dev": true }, "pkg-dir": { "version": "4.2.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", "dev": true, "requires": { "find-up": "^4.0.0" @@ -4666,56 +5296,71 @@ }, "prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=", + "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "peer": true + "pseudomap": { + "version": "1.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/pump/-/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } }, "punycode": { - "version": "2.1.1" + "version": "2.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha1-9n+mfJTaj00M//mBruQRgGQZm48=", + "dev": true }, "queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=", + "dev": true }, "randombytes": { "version": "2.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, "rechoir": { - "version": "0.7.1", + "version": "0.8.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha1-Sfhm4NMhRhQto62PDv81KzIV/yI=", "dev": true, "requires": { - "resolve": "^1.9.0" + "resolve": "^1.20.0" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "peer": true - }, "resolve": { - "version": "1.20.0", + "version": "1.22.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha1-DtCUPU4wGGeVV2bJ8+GubQHGhF8=", + "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { "version": "3.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha1-DwB18bslRHZs9zumpuKt/ryxPy0=", "dev": true, "requires": { "resolve-from": "^5.0.0" @@ -4723,107 +5368,53 @@ }, "resolve-from": { "version": "5.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha1-w1IlhD3493bfIcV1V7wIfp39/Gk=", "dev": true }, "reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=", + "dev": true }, "rimraf": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=", + "dev": true, "requires": { "glob": "^7.1.3" } }, "rollup": { - "version": "2.77.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup/-/rollup-2.77.0.tgz", - "integrity": "sha1-dJ6qWsCba6pSrMB2vEZhPt39U/Q=", + "version": "3.26.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup/-/rollup-3.26.2.tgz", + "integrity": "sha1-LnajdgbLUj/J/vQ+b1nJP4bZXnw=", + "dev": true, "requires": { "fsevents": "~2.3.2" } }, - "rollup-plugin-consts": { - "version": "1.1.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-consts/-/rollup-plugin-consts-1.1.0.tgz", - "integrity": "sha1-EL2UBh1+LW4G0BWAaIYLo8E3W7w=", - "requires": {} - }, - "rollup-plugin-dts": { - "version": "4.2.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/rollup-plugin-dts/-/rollup-plugin-dts-4.2.2.tgz", - "integrity": "sha1-godrh4QhOvKbAs8mC0XkBP+DXOE=", - "requires": { - "@babel/code-frame": "^7.16.7", - "magic-string": "^0.26.1" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "optional": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - } - } - }, - "rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.0.0" - }, - "dependencies": { - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=", + "dev": true, "requires": { "queue-microtask": "^1.2.2" } }, "safe-buffer": { - "version": "5.2.1" + "version": "5.2.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true }, "schema-utils": { - "version": "3.1.1", + "version": "3.3.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha1-9QqIh3w8AWUqFbYirp6Xld96YP4=", "dev": true, "requires": { "@types/json-schema": "^7.0.8", @@ -4832,15 +5423,18 @@ } }, "semver": { - "version": "7.3.7", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.3.7.tgz", - "integrity": "sha1-EsW2Sa/b+QSXB3luIqQCiBTOUj8=", + "version": "7.5.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/semver/-/semver-7.5.4.tgz", + "integrity": "sha1-SDmG7E7TjhxsSMNIlKkYLb/2im4=", + "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "serialize-javascript": { - "version": "6.0.0", + "version": "6.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha1-sgbvsnw9oLCra1L0jRcLeZZFjlw=", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -4848,6 +5442,8 @@ }, "shallow-clone": { "version": "3.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha1-jymBrZJTH1UDWwH7IwdppA4C76M=", "dev": true, "requires": { "kind-of": "^6.0.2" @@ -4855,121 +5451,94 @@ }, "shebang-command": { "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "3.0.0" + "version": "3.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true }, "signal-exit": { - "version": "3.0.6", + "version": "3.0.7", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha1-qaF2f4r4QVURTqq9c/mSc8j1mtk=", "dev": true }, "slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/slash/-/slash-3.0.0.tgz", + "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ=", + "dev": true }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "peer": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } + "smob": { + "version": "1.4.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/smob/-/smob-1.4.0.tgz", + "integrity": "sha1-rJdR/lSx/B/IKGpijU5/gkJzuVo=", + "dev": true }, "source-map": { - "version": "0.6.1" + "version": "0.6.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true }, "source-map-support": { "version": "0.5.21", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha1-BP58f54e0tZiIzwoyys1ufY/bk8=", + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ=" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "peer": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "peer": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=", + "dev": true, "requires": { "ansi-regex": "^5.0.1" } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, "strip-final-newline": { "version": "2.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", "dev": true }, "strip-json-comments": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=", + "dev": true }, "supports-color": { "version": "8.1.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=", "dev": true, "requires": { "has-flag": "^4.0.0" } }, - "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", - "peer": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", - "peer": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "peer": true - } - } + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha1-btpL00SjyUrqN21MwxvHcxEDngk=", + "dev": true }, "tapable": { "version": "2.2.1", @@ -4978,94 +5547,113 @@ "dev": true }, "terser": { - "version": "5.14.2", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser/-/terser-5.14.2.tgz", - "integrity": "sha1-msnyKwaZTXNhdPQJGqNo24lvHBA=", + "version": "5.19.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser/-/terser-5.19.0.tgz", + "integrity": "sha1-ezE3sBImvdF5l4IHucgUh1Sm2pw=", + "dev": true, "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" } }, "terser-webpack-plugin": { - "version": "5.3.0", + "version": "5.3.9", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha1-gyU2mZxRtG1GgGf543Zio7lq3+E=", "dev": true, "requires": { - "jest-worker": "^27.4.1", + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" } }, "text-table": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true }, "to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, "requires": { "is-number": "^7.0.0" } }, "tslib": { - "version": "2.4.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha1-fOyqfwc85oCgWEeqd76UEJjzbcM=" + "version": "2.6.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-2.6.0.tgz", + "integrity": "sha1-spWFRoTb2hZOGB0lmiLNd53Ne8M=", + "dev": true }, "tsutils": { "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha1-tIcX05TOpsHglpg+7Vjp1hcVtiM=", + "dev": true, "requires": { "tslib": "^1.8.1" }, "dependencies": { "tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", + "dev": true } } }, "type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=", + "dev": true, "requires": { "prelude-ls": "^1.2.1" } }, "type-fest": { "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=", + "dev": true }, "typescript": { - "version": "4.7.4", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha1-GohZbRz0fVlQehvN+1ud/k1IgjU=" + "version": "5.1.6", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha1-AvisICttrSwN1eCRN0W0ejeZgnQ=", + "dev": true }, "underscore": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz", "integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g==" }, + "update-browserslist-db": { + "version": "1.0.11", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha1-mipkGtKQeuezYWUG9Ll3hR21uUA=", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=", + "dev": true, "requires": { "punycode": "^2.1.0" } }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" - }, "watchpack": { "version": "2.4.0", "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/watchpack/-/watchpack-2.4.0.tgz", @@ -5077,22 +5665,22 @@ } }, "webpack": { - "version": "5.76.0", - "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack/-/webpack-5.76.0.tgz", - "integrity": "sha1-+fufuMSn29zQ1WqY5WuKlC7iaSw=", + "version": "5.88.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack/-/webpack-5.88.1.tgz", + "integrity": "sha1-IeugHoG9Xt/xlorqcm4vv9VX0/g=", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -5101,39 +5689,46 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" } }, "webpack-cli": { - "version": "4.9.1", + "version": "5.1.4", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha1-yOBGun6q5JEdfnHislt3b8w1dZs=", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.0", - "@webpack-cli/info": "^1.4.0", - "@webpack-cli/serve": "^1.6.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", "colorette": "^2.0.14", - "commander": "^7.0.0", - "execa": "^5.0.0", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "dependencies": { "commander": { - "version": "7.2.0", + "version": "10.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/commander/-/commander-10.0.1.tgz", + "integrity": "sha1-iB7ka0930cHczFgjQzqjmwIsvgY=", "dev": true } } }, "webpack-merge": { - "version": "5.8.0", + "version": "5.9.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-merge/-/webpack-merge-5.9.0.tgz", + "integrity": "sha1-3BYKHEz1Es7KUVzCMWaendsTOCY=", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -5142,34 +5737,42 @@ }, "webpack-sources": { "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha1-LU2quEUf1LJAzCcFX/agwszqDN4=", "dev": true }, "which": { "version": "2.0.2", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/which/-/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, "requires": { "isexe": "^2.0.0" } }, "wildcard": { - "version": "2.0.0", + "version": "2.0.1", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha1-WrENAkhxmJVINrY0n3T/+WHhD2c=", "dev": true }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, "wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public-npm/npm/registry/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha1-ApTrPe4FAo0x7hpfosVWpqrxChs=", + "dev": true } } } diff --git a/src/mono/sample/wasm/browser-webpack/package.json b/src/mono/sample/wasm/browser-webpack/package.json index 42391519b8c68..eb9f06edf05ef 100644 --- a/src/mono/sample/wasm/browser-webpack/package.json +++ b/src/mono/sample/wasm/browser-webpack/package.json @@ -8,8 +8,8 @@ "webpack": "webpack" }, "devDependencies": { - "webpack": "5.76.0", - "webpack-cli": "4.9.1" + "webpack": "5.88.1", + "webpack-cli": "5.1.4" }, "dependencies": { "@microsoft/dotnet-runtime": "file:bin/dotnet-runtime", diff --git a/src/mono/sample/wasm/console-node-ts/Wasm.Console.Node.TS.Sample.csproj b/src/mono/sample/wasm/console-node-ts/Wasm.Console.Node.TS.Sample.csproj index 4228528a9aa29..97375d88fd50f 100644 --- a/src/mono/sample/wasm/console-node-ts/Wasm.Console.Node.TS.Sample.csproj +++ b/src/mono/sample/wasm/console-node-ts/Wasm.Console.Node.TS.Sample.csproj @@ -1,6 +1,7 @@ false + ./ + + + $([System.IO.Path]::GetDirectoryName($([System.IO.Path]::GetDirectoryName($(_CMDDIR))))) + $([System.IO.Path]::GetFileName($(CategoryPath))) + $(CategoryName)/$([System.String]::Copy('$(_CMDDIR)').Replace("$(CategoryPath)/","")) + $([System.IO.Path]::GetFileName($(_CMDDIR))) + $([System.String]::Copy('$(TestRelativePath)').Replace('/','_')) + $(IntermediateOutputPath)\iOSApps\$(AppName) + $(XUnitTestBinBase)$(TestRelativePath)\$(AppName).app + + + + $(IntermediateOutputPath)\..\$(TestRelativePath)\$(TestName)\native\$(TestName).o + - + true + true + $(AppDir) + false + false + + + + <_LinkerFlagsToDrop Include="@(NativeFramework->'-framework %(Identity)')" /> + + + + + + + + + + + + + + + + + + + + + + + + @@ -475,10 +533,17 @@ + Condition="'@(TestDirectories)' != '' and '$(TestBuildMode)' != 'nativeaot'" + /> + + diff --git a/src/tests/issues.targets b/src/tests/issues.targets index f7ebb6d9767db..10155d494cbc3 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -1254,6 +1254,9 @@ + + https://github.com/dotnet/runtime/issues/88775 + https://github.com/dotnet/runtime/issues/88689 diff --git a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs index 2617cb57320db..9452d8700e714 100644 --- a/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs +++ b/src/tests/nativeaot/SmokeTests/UnitTests/Delegates.cs @@ -51,7 +51,12 @@ public static int Run() result = Fail; } - TestLinqExpressions.Run(); + // ActiveIssue https://github.com/dotnet/runtime/issues/87924 + if (!OperatingSystem.IsIOS() && !OperatingSystem.IsTvOS() && !OperatingSystem.IsMacCatalyst()) + { + TestLinqExpressions.Run(); + } + TestDefaultInterfaceMethods.Run(); return result; diff --git a/src/tests/tracing/eventpipe/diagnosticport/diagnosticport.cs b/src/tests/tracing/eventpipe/diagnosticport/diagnosticport.cs index a1c08d4f1b9f5..7e2edfc3896fe 100644 --- a/src/tests/tracing/eventpipe/diagnosticport/diagnosticport.cs +++ b/src/tests/tracing/eventpipe/diagnosticport/diagnosticport.cs @@ -403,10 +403,9 @@ public static async Task TEST_CanGetProcessInfo2WhileSuspended() } else if (TestLibrary.Utilities.IsNativeAot) { - // shipping criteria: no EVENTPIPE-NATIVEAOT-TODO left in the codebase - // https://github.com/dotnet/runtime/issues/83051 - // NativeAOT currently always returns empty string - Utils.Assert(processInfo2.ManagedEntrypointAssemblyName == string.Empty); + string expectedName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; + Utils.Assert(expectedName.Equals(processInfo2.ManagedEntrypointAssemblyName), + $"ManagedEntrypointAssemblyName must match. Expected: {expectedName}, Received: {processInfo2.ManagedEntrypointAssemblyName}"); } else { diff --git a/src/tests/tracing/eventpipe/processinfo/processinfo.cs b/src/tests/tracing/eventpipe/processinfo/processinfo.cs index 3d1ad39245db5..b7b2b48de2776 100644 --- a/src/tests/tracing/eventpipe/processinfo/processinfo.cs +++ b/src/tests/tracing/eventpipe/processinfo/processinfo.cs @@ -149,7 +149,9 @@ public static int Main() // /path/to/corerun /path/to/processinfo.dll // or // "C:\path\to\CoreRun.exe" C:\path\to\processinfo.dll - string currentProcessCommandLine = $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; + string currentProcessCommandLine = TestLibrary.Utilities.IsSingleFile + ? currentProcess.MainModule.FileName + : $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; string receivedCommandLine = NormalizeCommandLine(commandLine); Utils.Assert(currentProcessCommandLine.Equals(receivedCommandLine, StringComparison.OrdinalIgnoreCase), $"CommandLine must match current process. Expected: {currentProcessCommandLine}, Received: {receivedCommandLine} (original: {commandLine})"); } diff --git a/src/tests/tracing/eventpipe/processinfo/processinfo.csproj b/src/tests/tracing/eventpipe/processinfo/processinfo.csproj index d4947c794dceb..2c913f467d9e2 100644 --- a/src/tests/tracing/eventpipe/processinfo/processinfo.csproj +++ b/src/tests/tracing/eventpipe/processinfo/processinfo.csproj @@ -15,5 +15,6 @@ + diff --git a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs index 8b81cff7b4e0e..1564c142207e6 100644 --- a/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs +++ b/src/tests/tracing/eventpipe/processinfo2/processinfo2.cs @@ -150,7 +150,9 @@ public static int Main() // /path/to/corerun /path/to/processinfo.dll // or // "C:\path\to\CoreRun.exe" C:\path\to\processinfo.dll - string currentProcessCommandLine = $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; + string currentProcessCommandLine = TestLibrary.Utilities.IsSingleFile + ? currentProcess.MainModule.FileName + : $"{currentProcess.MainModule.FileName} {System.Reflection.Assembly.GetExecutingAssembly().Location}"; string receivedCommandLine = NormalizeCommandLine(commandLine); Utils.Assert(currentProcessCommandLine.Equals(receivedCommandLine, StringComparison.OrdinalIgnoreCase), $"CommandLine must match current process. Expected: {currentProcessCommandLine}, Received: {receivedCommandLine} (original: {commandLine})"); } diff --git a/src/tests/tracing/eventpipe/processinfo2/processinfo2.csproj b/src/tests/tracing/eventpipe/processinfo2/processinfo2.csproj index d4947c794dceb..2c913f467d9e2 100644 --- a/src/tests/tracing/eventpipe/processinfo2/processinfo2.csproj +++ b/src/tests/tracing/eventpipe/processinfo2/processinfo2.csproj @@ -15,5 +15,6 @@ + diff --git a/src/tools/illink/src/tlens/TLens.Analyzers/UnnecessaryFieldsAssignmentAnalyzer.cs b/src/tools/illink/src/tlens/TLens.Analyzers/UnnecessaryFieldsAssignmentAnalyzer.cs index bf88c682542e0..812a874bd9e36 100644 --- a/src/tools/illink/src/tlens/TLens.Analyzers/UnnecessaryFieldsAssignmentAnalyzer.cs +++ b/src/tools/illink/src/tlens/TLens.Analyzers/UnnecessaryFieldsAssignmentAnalyzer.cs @@ -72,9 +72,7 @@ protected override void ProcessMethod (MethodDefinition method) methods.Add (method); } - if (!fields.ContainsKey (field)) - fields.Add (field, access); - else + if (!fields.TryAdd (field, access)) fields[field] |= access; } } diff --git a/src/tools/illink/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs b/src/tools/illink/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs index 9f8fa1208060b..790db571d1370 100644 --- a/src/tools/illink/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs +++ b/src/tools/illink/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs @@ -1,6 +1,10 @@ using System.Diagnostics.CodeAnalysis; using Mono.Linker.Tests.Cases.Expectations.Assertions; +#if NATIVEAOT +using Mono.Linker.Tests.Cases.Expectations.Helpers; +#endif + namespace Mono.Linker.Tests.Cases.DynamicDependencies { class DynamicDependencyMethod From 8a8f573fbe3789b68b42c847d268aa930668d1c7 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Tue, 18 Jul 2023 12:30:32 -0700 Subject: [PATCH 09/20] fix changes within interop sln --- .../AssemblySaveWithVariousMembersTests.cs | 525 ------------------ .../AssemblyTools.cs | 212 ------- .../System/Text/Json/JsonCommentHandling.cs | 28 - .../Serialization/JsonSerializerDefaults.cs | 26 - .../Serialization/JsonUnknownTypeHandling.cs | 20 - 5 files changed, 811 deletions(-) delete mode 100644 src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveWithVariousMembersTests.cs delete mode 100644 src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblyTools.cs delete mode 100644 src/libraries/System.Text.Json/src/System/Text/Json/JsonCommentHandling.cs delete mode 100644 src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerDefaults.cs delete mode 100644 src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonUnknownTypeHandling.cs diff --git a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveWithVariousMembersTests.cs b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveWithVariousMembersTests.cs deleted file mode 100644 index ec9fa93dc1342..0000000000000 --- a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblySaveWithVariousMembersTests.cs +++ /dev/null @@ -1,525 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; -using System.IO; -using System.Linq; -using Xunit; - -namespace System.Reflection.Emit.Tests -{ - [ConditionalClass(typeof(PlatformDetection), nameof(PlatformDetection.IsNotBrowser))] - public class AssemblySaveWithVariousMembersTests - { - private static readonly AssemblyName s_assemblyName = new AssemblyName("MyDynamicAssembly") - { - Version = new Version("1.2.3.4"), - CultureInfo = Globalization.CultureInfo.CurrentCulture, - ContentType = AssemblyContentType.WindowsRuntime, - Flags = AssemblyNameFlags.EnableJITcompileTracking | AssemblyNameFlags.Retargetable, - }; - - [Fact] - public void EmptyAssemblyAndModuleTest() - { - using (TempFile file = TempFile.Create()) - { - Assembly assemblyFromDisk = WriteAndLoadAssembly(Type.EmptyTypes, file.Path); - - Assert.Empty(assemblyFromDisk.GetTypes()); - AssemblyTools.AssertAssemblyNameAndModule(s_assemblyName, assemblyFromDisk.GetName(), assemblyFromDisk.Modules.FirstOrDefault()); - } - } - - private static Assembly WriteAndLoadAssembly(Type[] types, string filePath) - { - AssemblyTools.WriteAssemblyToDisk(s_assemblyName, types, filePath); - - return AssemblyTools.LoadAssemblyFromPath(filePath); - } - - public static IEnumerable VariousInterfacesStructsTestData() - { - yield return new object[] { new Type[] { typeof(INoMethod) } }; - yield return new object[] { new Type[] { typeof(IMultipleMethod) } }; - yield return new object[] { new Type[] { typeof(INoMethod), typeof(IOneMethod) } }; - yield return new object[] { new Type[] { typeof(IMultipleMethod), typeof(EmptyTestClass) } }; - yield return new object[] { new Type[] { typeof(IMultipleMethod), typeof(EmptyTestClass), typeof(IAccess), typeof(IOneMethod), typeof(INoMethod) } }; - yield return new object[] { new Type[] { typeof(EmptyStruct) } }; - yield return new object[] { new Type[] { typeof(StructWithFields) } }; - yield return new object[] { new Type[] { typeof(StructWithFields), typeof(EmptyStruct) } }; - yield return new object[] { new Type[] { typeof(IMultipleMethod), typeof(StructWithFields), typeof(ClassWithFields), typeof(EmptyTestClass) } }; - } - - [Theory] - [MemberData(nameof(VariousInterfacesStructsTestData))] - public void WriteAssemblyWithVariousTypesToAFileAndReadBackTest(Type[] types) - { - using (TempFile file = TempFile.Create()) - { - Assembly assemblyFromDisk = WriteAndLoadAssembly(types, file.Path); - - AssertTypesAndTypeMembers(types, assemblyFromDisk.Modules.First().GetTypes()); - } - } - - private static void AssertTypesAndTypeMembers(Type[] types, Type[] typesFromDisk) - { - Assert.Equal(types.Length, typesFromDisk.Length); - - for (int i = 0; i < types.Length; i++) - { - Type sourceType = types[i]; - Type typeFromDisk = typesFromDisk[i]; - - AssemblyTools.AssertTypeProperties(sourceType, typeFromDisk); - AssemblyTools.AssertMethods(sourceType.GetMethods(), typeFromDisk.GetMethods()); - AssemblyTools.AssertFields(sourceType.GetFields(), typeFromDisk.GetFields()); - } - } - - [Theory] - [MemberData(nameof(VariousInterfacesStructsTestData))] - public void WriteAssemblyWithVariousTypesToStreamAndReadBackTest(Type[] types) - { - using (var stream = new MemoryStream()) - { - AssemblyTools.WriteAssemblyToStream(s_assemblyName, types, stream); - Assembly assemblyFromStream = AssemblyTools.LoadAssemblyFromStream(stream); - - AssertTypesAndTypeMembers(types, assemblyFromStream.Modules.First().GetTypes()); - } - } - - [Fact] - public void CreateMembersThatUsesTypeLoadedFromCoreAssemblyTest() - { - using (TempFile file = TempFile.Create()) - { - TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); - tb.DefineMethod("TestMethod", MethodAttributes.Public); - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); - Module moduleFromDisk = assemblyFromDisk.Modules.First(); - - Assert.Equal("MyModule", moduleFromDisk.ScopeName); - Assert.Equal(1, moduleFromDisk.GetTypes().Length); - - Type testType = moduleFromDisk.GetTypes()[0]; - Assert.Equal("TestInterface", testType.Name); - - MethodInfo method = testType.GetMethods()[0]; - Assert.Equal("TestMethod", method.Name); - Assert.Empty(method.GetParameters()); - Assert.Equal("System.Void", method.ReturnType.FullName); - } - } - - private static TypeBuilder CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod) - { - assemblyBuilder = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod(s_assemblyName, null, typeof(string), out saveMethod); - return assemblyBuilder.DefineDynamicModule("MyModule") - .DefineType("TestInterface", TypeAttributes.Interface | TypeAttributes.Abstract); - } - - [Fact] - public void AddInterfaceImplementationTest() - { - using (TempFile file = TempFile.Create()) - { - AssemblyBuilder assemblyBuilder = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod( - s_assemblyName, null, typeof(string), out MethodInfo saveMethod); - ModuleBuilder mb = assemblyBuilder.DefineDynamicModule("My Module"); - TypeBuilder tb = mb.DefineType("TestInterface", TypeAttributes.Interface | TypeAttributes.Abstract, null, new Type[] { typeof(IOneMethod)}); - tb.AddInterfaceImplementation(typeof(INoMethod)); - tb.DefineNestedType("NestedType", TypeAttributes.Interface | TypeAttributes.Abstract); - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Assembly assemblyFromDisk = AssemblyTools.LoadAssemblyFromPath(file.Path); - Type testType = assemblyFromDisk.Modules.First().GetTypes()[0]; - Type[] interfaces = testType.GetInterfaces(); - - Assert.Equal("TestInterface", testType.Name); - Assert.Equal(2, interfaces.Length); - - Type iOneMethod = testType.GetInterface("IOneMethod"); - Type iNoMethod = testType.GetInterface("INoMethod"); - Type[] nt = testType.GetNestedTypes(); - Assert.Equal(1, iOneMethod.GetMethods().Length); - Assert.Empty(iNoMethod.GetMethods()); - Assert.NotNull(testType.GetNestedType("NestedType", BindingFlags.NonPublic)); - } - } - - public static IEnumerable TypeParameters() - { - yield return new object[] { new string[] { "TFirst", "TSecond", "TThird" } }; - yield return new object[] { new string[] { "TFirst" } }; - } - - [Theory] - [MemberData(nameof(TypeParameters))] - public void SaveGenericTypeParametersForAType(string[] typeParamNames) - { - using (TempFile file = TempFile.Create()) - { - TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); - MethodBuilder method = tb.DefineMethod("TestMethod", MethodAttributes.Public); - GenericTypeParameterBuilder[] typeParams = tb.DefineGenericParameters(typeParamNames); - if (typeParams.Length > 2) - { - SetVariousGenericParameterValues(typeParams); - } - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; - MethodInfo testMethod = testType.GetMethod("TestMethod"); - Type[] genericTypeParams = testType.GetGenericArguments(); - - Assert.True(testType.IsGenericType); - Assert.True(testType.IsGenericTypeDefinition); - Assert.True(testType.ContainsGenericParameters); - Assert.False(testMethod.IsGenericMethod); - Assert.False(testMethod.IsGenericMethodDefinition); - Assert.True(testMethod.ContainsGenericParameters); - AssertGenericParameters(typeParams, genericTypeParams); - } - } - - private static void SetVariousGenericParameterValues(GenericTypeParameterBuilder[] typeParams) - { - typeParams[0].SetInterfaceConstraints(new Type[] { typeof(IAccess), typeof(INoMethod) }); - typeParams[1].SetCustomAttribute(new CustomAttributeBuilder(typeof(DynamicallyAccessedMembersAttribute).GetConstructor( - new Type[] { typeof(DynamicallyAccessedMemberTypes) }), new object[] { DynamicallyAccessedMemberTypes.PublicProperties })); - typeParams[2].SetBaseTypeConstraint(typeof(EmptyTestClass)); - typeParams[2].SetGenericParameterAttributes(GenericParameterAttributes.VarianceMask); - } - - private static void AssertGenericParameters(GenericTypeParameterBuilder[] typeParams, Type[] genericTypeParams) - { - Assert.Equal("TFirst", genericTypeParams[0].Name); - if (typeParams.Length > 2) - { - Assert.Equal("TSecond", genericTypeParams[1].Name); - Assert.Equal("TThird", genericTypeParams[2].Name); - Type[] constraints = genericTypeParams[0].GetTypeInfo().GetGenericParameterConstraints(); - Assert.Equal(2, constraints.Length); - Assert.Equal(typeof(IAccess).FullName, constraints[0].FullName); - Assert.Equal(typeof(INoMethod).FullName, constraints[1].FullName); - Assert.Empty(genericTypeParams[1].GetTypeInfo().GetGenericParameterConstraints()); - Type[] constraints2 = genericTypeParams[2].GetTypeInfo().GetGenericParameterConstraints(); - Assert.Equal(1, constraints2.Length); - Assert.Equal(typeof(EmptyTestClass).FullName, constraints2[0].FullName); - Assert.Equal(GenericParameterAttributes.None, genericTypeParams[0].GenericParameterAttributes); - Assert.Equal(GenericParameterAttributes.VarianceMask, genericTypeParams[2].GenericParameterAttributes); - IList attributes = genericTypeParams[1].GetCustomAttributesData(); - Assert.Equal(1, attributes.Count); - Assert.Equal("DynamicallyAccessedMembersAttribute", attributes[0].AttributeType.Name); - Assert.Equal(DynamicallyAccessedMemberTypes.PublicProperties, (DynamicallyAccessedMemberTypes)attributes[0].ConstructorArguments[0].Value); - Assert.Empty(genericTypeParams[0].GetCustomAttributesData()); - } - } - - [Theory] - [MemberData(nameof(TypeParameters))] - public void SaveGenericTypeParametersForAMethod(string[] typeParamNames) - { - using (TempFile file = TempFile.Create()) - { - TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); - MethodBuilder method = tb.DefineMethod("TestMethod", MethodAttributes.Public); - GenericTypeParameterBuilder[] typeParams = method.DefineGenericParameters(typeParamNames); - if (typeParams.Length > 2) - { - SetVariousGenericParameterValues(typeParams); - } - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; - MethodInfo testMethod = testType.GetMethod("TestMethod"); - Type[] genericTypeParams = testMethod.GetGenericArguments(); - - Assert.False(testType.IsGenericType); - Assert.False(testType.IsGenericTypeDefinition); - Assert.False(testType.ContainsGenericParameters); - Assert.True(testMethod.IsGenericMethod); - Assert.True(testMethod.IsGenericMethodDefinition); - Assert.True(testMethod.ContainsGenericParameters); - AssertGenericParameters(typeParams, genericTypeParams); - } - } - - [Theory] - [InlineData(0, "TestInterface[]")] - [InlineData(1, "TestInterface[]")] // not [*] - [InlineData(2, "TestInterface[,]")] - [InlineData(3, "TestInterface[,,]")] - public void SaveArrayTypeSignature(int rank, string name) - { - using (TempFile file = TempFile.Create()) - { - TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); - Type arrayType = rank == 0 ? tb.MakeArrayType() : tb.MakeArrayType(rank); - MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); - mb.SetReturnType(arrayType); - mb.SetParameters(new Type[] { typeof(INoMethod), arrayType, typeof(int[,,,]) }); - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; - MethodInfo testMethod = testType.GetMethod("TestMethod"); - Type intArray = testMethod.GetParameters()[2].ParameterType; - - Assert.False(testMethod.GetParameters()[0].ParameterType.IsSZArray); - Assert.True(intArray.IsArray); - Assert.Equal(4, intArray.GetArrayRank()); - Assert.Equal("Int32[,,,]", intArray.Name); - AssertArrayTypeSignature(rank, name, testMethod.ReturnType); - AssertArrayTypeSignature(rank, name, testMethod.GetParameters()[1].ParameterType); - } - } - - private static void AssertArrayTypeSignature(int rank, string name, Type arrayType) - { - Assert.True(rank < 2 ? arrayType.IsSZArray : arrayType.IsArray); - rank = rank == 0 ? rank + 1 : rank; - Assert.Equal(rank, arrayType.GetArrayRank()); - Assert.Equal(name, arrayType.Name); - } - - [Fact] - public void SaveByRefTypeSignature() - { - using (TempFile file = TempFile.Create()) - { - TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); - Type byrefType = tb.MakeByRefType(); - MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); - mb.SetReturnType(byrefType); - mb.SetParameters(new Type[] { typeof(INoMethod), byrefType }); - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; - MethodInfo testMethod = testType.GetMethod("TestMethod"); - - Assert.False(testMethod.GetParameters()[0].ParameterType.IsByRef); - AssertByRefType(testMethod.GetParameters()[1].ParameterType); - AssertByRefType(testMethod.ReturnType); - } - } - - private static void AssertByRefType(Type byrefParam) - { - Assert.True(byrefParam.IsByRef); - Assert.Equal("TestInterface&", byrefParam.Name); - } - - [Fact] - public void SavePointerTypeSignature() - { - using (TempFile file = TempFile.Create()) - { - TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); - Type pointerType = tb.MakePointerType(); - MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); - mb.SetReturnType(pointerType); - mb.SetParameters(new Type[] { typeof(INoMethod), pointerType }); - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; - MethodInfo testMethod = testType.GetMethod("TestMethod"); - - Assert.False(testMethod.GetParameters()[0].ParameterType.IsPointer); - AssertPointerType(testMethod.GetParameters()[1].ParameterType); - AssertPointerType(testMethod.ReturnType); - } - } - - private void AssertPointerType(Type testType) - { - Assert.True(testType.IsPointer); - Assert.Equal("TestInterface*", testType.Name); - } - - public static IEnumerable SaveGenericType_TestData() - { - yield return new object[] { new string[] { "U", "T" }, new Type[] { typeof(string), typeof(int) }, "TestInterface[System.String,System.Int32]" }; - yield return new object[] { new string[] { "U", "T" }, new Type[] { typeof(MakeGenericTypeClass), typeof(MakeGenericTypeInterface) }, - "TestInterface[System.Reflection.Emit.Tests.MakeGenericTypeClass,System.Reflection.Emit.Tests.MakeGenericTypeInterface]" }; - yield return new object[] { new string[] { "U" }, new Type[] { typeof(List) }, "TestInterface[System.Collections.Generic.List`1[System.String]]" }; - } - - [Theory] - [MemberData(nameof(SaveGenericType_TestData))] - public void SaveGenericTypeSignature(string[] genericParams, Type[] typeArguments, string stringRepresentation) - { - using (TempFile file = TempFile.Create()) - { - TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); - GenericTypeParameterBuilder[] typeGenParam = tb.DefineGenericParameters(genericParams); - Type genericType = tb.MakeGenericType(typeArguments); - MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); - mb.SetReturnType(genericType); - mb.SetParameters(new Type[] { typeof(INoMethod), genericType }); - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; - MethodInfo testMethod = testType.GetMethod("TestMethod"); - Type paramType = testMethod.GetParameters()[1].ParameterType; - - Assert.False(testMethod.GetParameters()[0].ParameterType.IsGenericType); - AssertGenericType(stringRepresentation, paramType); - AssertGenericType(stringRepresentation, testMethod.ReturnType); - } - } - - private static void AssertGenericType(string stringRepresentation, Type paramType) - { - Assert.True(paramType.IsGenericType); - Assert.Equal(stringRepresentation, paramType.ToString()); - Assert.False(paramType.IsGenericParameter); - Assert.False(paramType.IsGenericTypeDefinition); - Assert.False(paramType.IsGenericTypeParameter); - Assert.False(paramType.IsGenericMethodParameter); - } - - [Fact] - public void SaveGenericTypeSignatureWithGenericParameter() - { - using (TempFile file = TempFile.Create()) - { - TypeBuilder tb = CreateAssemblyAndDefineType(out AssemblyBuilder assemblyBuilder, out MethodInfo saveMethod); - GenericTypeParameterBuilder[] typeParams = tb.DefineGenericParameters(new string[] { "U", "T", "P" }); - MethodBuilder mb = tb.DefineMethod("TestMethod", MethodAttributes.Public); - GenericTypeParameterBuilder[] methodParams = mb.DefineGenericParameters(new string[] { "M", "N" }); - Type genericType = tb.MakeGenericType(typeParams); - mb.SetReturnType(methodParams[0]); - mb.SetParameters(new Type[] { typeof(INoMethod), genericType, typeParams[1] }); - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Type testType = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First().GetTypes()[0]; - MethodInfo testMethod = testType.GetMethod("TestMethod"); - Type paramType = testMethod.GetParameters()[1].ParameterType; - Type genericParameter = testMethod.GetParameters()[2].ParameterType; - - Assert.False(testMethod.GetParameters()[0].ParameterType.IsGenericType); - AssertGenericType("TestInterface[U,T,P]", paramType); - Assert.False(genericParameter.IsGenericType); - Assert.True(genericParameter.IsGenericParameter); - Assert.False(genericParameter.IsGenericTypeDefinition); - Assert.True(genericParameter.IsGenericTypeParameter); - Assert.False(genericParameter.IsGenericMethodParameter); - Assert.Equal("T", genericParameter.Name); - Assert.False(testMethod.ReturnType.IsGenericType); - Assert.True(testMethod.ReturnType.IsGenericParameter); - Assert.False(testMethod.ReturnType.IsGenericTypeDefinition); - Assert.False(testMethod.ReturnType.IsGenericTypeParameter); - Assert.True(testMethod.ReturnType.IsGenericMethodParameter); - Assert.Equal("M", testMethod.ReturnType.Name); - } - } - - [Fact] - public void SaveMultipleGenericTypeParametersToEnsureSortingWorks() - { - using (TempFile file = TempFile.Create()) - { - AssemblyBuilder assemblyBuilder = AssemblyTools.PopulateAssemblyBuilderAndSaveMethod( - s_assemblyName, null, typeof(string), out MethodInfo saveMethod); - ModuleBuilder mb = assemblyBuilder.DefineDynamicModule("My Module"); - TypeBuilder tb = mb.DefineType("TestInterface1", TypeAttributes.Interface | TypeAttributes.Abstract); - GenericTypeParameterBuilder[] typeParams = tb.DefineGenericParameters(new string[] { "U", "T" }); - typeParams[1].SetInterfaceConstraints(new Type[] { typeof(INoMethod), typeof(IOneMethod) }); - MethodBuilder m11 = tb.DefineMethod("TwoParameters", MethodAttributes.Public); - MethodBuilder m12 = tb.DefineMethod("FiveTypeParameters", MethodAttributes.Public); - MethodBuilder m13 = tb.DefineMethod("OneParameter", MethodAttributes.Public); - m11.DefineGenericParameters(new string[] { "M", "N" }); - GenericTypeParameterBuilder[] methodParams = m12.DefineGenericParameters(new string[] { "A", "B", "C", "D", "F" }); - methodParams[2].SetInterfaceConstraints(new Type[] { typeof(IMultipleMethod) }); - m13.DefineGenericParameters(new string[] { "T" }); - TypeBuilder tb2 = mb.DefineType("TestInterface2", TypeAttributes.Interface | TypeAttributes.Abstract); - tb2.DefineGenericParameters(new string[] { "TFirst", "TSecond", "TThird" }); - MethodBuilder m21 = tb2.DefineMethod("TestMethod", MethodAttributes.Public); - m21.DefineGenericParameters(new string[] { "X", "Y", "Z" }); - TypeBuilder tb3 = mb.DefineType("TestType"); - GenericTypeParameterBuilder[] typePar = tb3.DefineGenericParameters(new string[] { "TOne" }); - typePar[0].SetBaseTypeConstraint(typeof(EmptyTestClass)); - saveMethod.Invoke(assemblyBuilder, new object[] { file.Path }); - - Module m = AssemblyTools.LoadAssemblyFromPath(file.Path).Modules.First(); - Type[] type1Params = m.GetTypes()[0].GetGenericArguments(); - Type[] type2Params = m.GetTypes()[1].GetGenericArguments(); - Type[] type3Params = m.GetTypes()[2].GetGenericArguments(); - - Assert.Equal("U", type1Params[0].Name); - Assert.Empty(type1Params[0].GetTypeInfo().GetGenericParameterConstraints()); - Assert.Equal("T", type1Params[1].Name); - Assert.Equal(nameof(IOneMethod), type1Params[1].GetTypeInfo().GetGenericParameterConstraints()[1].Name); - Assert.Equal("TFirst", type2Params[0].Name); - Assert.Equal("TSecond", type2Params[1].Name); - Assert.Equal("TThird", type2Params[2].Name); - Assert.Equal("TOne", type3Params[0].Name); - Assert.Equal(nameof(EmptyTestClass), type3Params[0].GetTypeInfo().GetGenericParameterConstraints()[0].Name); - - Type[] method11Params = m.GetTypes()[0].GetMethod("TwoParameters").GetGenericArguments(); - Type[] method12Params = m.GetTypes()[0].GetMethod("FiveTypeParameters").GetGenericArguments(); - Assert.Equal(nameof(IMultipleMethod), method12Params[2].GetTypeInfo().GetGenericParameterConstraints()[0].Name); - Type[] method13Params = m.GetTypes()[0].GetMethod("OneParameter").GetGenericArguments(); - Type[] method21Params = m.GetTypes()[1].GetMethod("TestMethod").GetGenericArguments(); - - Assert.Equal("M", method11Params[0].Name); - Assert.Equal("N", method11Params[1].Name); - Assert.Equal("A", method12Params[0].Name); - Assert.Equal("F", method12Params[4].Name); - Assert.Equal("T", method13Params[0].Name); - Assert.Equal("X", method21Params[0].Name); - Assert.Equal("Z", method21Params[2].Name); - } - } - } - - // Test Types - public interface INoMethod - { - } - - public interface IMultipleMethod - { - string Func(int a, string b); - IOneMethod MoreFunc(); - StructWithFields DoIExist(int a, string b, bool c); - void BuildAPerpetualMotionMachine(); - } - - internal interface IAccess - { - public Version BuildAI(double field); - public int DisableRogueAI(); - } - - public interface IOneMethod - { - object Func(string a, short b); - } - - public struct EmptyStruct - { - } - - public struct StructWithFields - { - public int field1; - public string field2; - } - - public class EmptyTestClass - { - } - - public class ClassWithFields : EmptyTestClass - { - public EmptyTestClass field1; - public byte field2; - } -} diff --git a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblyTools.cs b/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblyTools.cs deleted file mode 100644 index 4ec230e52bc8b..0000000000000 --- a/src/libraries/System.Reflection.Emit/tests/PersistableAssemblyBuilder/AssemblyTools.cs +++ /dev/null @@ -1,212 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices; -using Xunit; - -namespace System.Reflection.Emit.Tests -{ - internal static class AssemblyTools - { - internal static void WriteAssemblyToDisk(AssemblyName assemblyName, Type[] types, string fileLocation) - { - AssemblyBuilder assemblyBuilder = PopulateAssemblyBuilderAndSaveMethod( - assemblyName, null, typeof(string), out MethodInfo saveMethod); - - ModuleBuilder mb = assemblyBuilder.DefineDynamicModule(assemblyName.Name); - PopulateMembersForModule(mb, types); - - saveMethod.Invoke(assemblyBuilder, new object[] { fileLocation }); - } - - private static void PopulateMembersForModule(ModuleBuilder mb, Type[] types) - { - foreach (Type type in types) - { - TypeBuilder tb = mb.DefineType(type.FullName, type.Attributes, type.BaseType); - - MethodInfo[] methods = type.IsInterface ? type.GetMethods() : type.GetMethods(BindingFlags.DeclaredOnly); - foreach (var method in methods) - { - ParameterInfo[] parameters = method.GetParameters(); - MethodBuilder meb = tb.DefineMethod(method.Name, method.Attributes, method.CallingConvention, method.ReturnType, parameters.Select(p => p.ParameterType).ToArray()); - foreach(ParameterInfo param in parameters) - { - meb.DefineParameter(param.Position + 1, param.Attributes, param.Name); - } - } - - foreach (FieldInfo field in type.GetFields()) - { - tb.DefineField(field.Name, field.FieldType, field.Attributes); - } - } - } - - internal static void WriteAssemblyToStream(AssemblyName assemblyName, Type[] types, Stream stream) - { - AssemblyBuilder assemblyBuilder = PopulateAssemblyBuilderAndSaveMethod( - assemblyName, null, typeof(Stream), out MethodInfo saveMethod); - - ModuleBuilder mb = assemblyBuilder.DefineDynamicModule(assemblyName.Name); - PopulateMembersForModule(mb, types); - - saveMethod.Invoke(assemblyBuilder, new object[] { stream }); - } - - internal static AssemblyBuilder PopulateAssemblyBuilderAndSaveMethod(AssemblyName assemblyName, - List? assemblyAttributes, Type parameterType, out MethodInfo saveMethod) - { - Type assemblyType = Type.GetType("System.Reflection.Emit.AssemblyBuilderImpl, System.Reflection.Emit", throwOnError: true)!; - - saveMethod = assemblyType.GetMethod("Save", BindingFlags.NonPublic | BindingFlags.Instance, new Type[] { parameterType }); - - MethodInfo defineDynamicAssemblyMethod = assemblyType.GetMethod("DefinePersistedAssembly", BindingFlags.NonPublic | BindingFlags.Static, - new Type[] { typeof(AssemblyName), typeof(Assembly), typeof(List) }); - - return (AssemblyBuilder)defineDynamicAssemblyMethod.Invoke(null, - new object[] { assemblyName, CoreMetadataAssemblyResolver.s_coreAssembly, assemblyAttributes }); - } - - internal static Assembly LoadAssemblyFromPath(string filePath) => - new MetadataLoadContext(new CoreMetadataAssemblyResolver()).LoadFromAssemblyPath(filePath); - - internal static Assembly LoadAssemblyFromStream(Stream stream) => - new MetadataLoadContext(new CoreMetadataAssemblyResolver()).LoadFromStream(stream); - - internal static void AssertAssemblyNameAndModule(AssemblyName sourceAName, AssemblyName aNameFromDisk, Module moduleFromDisk) - { - // Runtime assemblies adding AssemblyNameFlags.PublicKey in Assembly.GetName() overloads - Assert.Equal(sourceAName.Flags | AssemblyNameFlags.PublicKey, aNameFromDisk.Flags); - Assert.Equal(sourceAName.Name, aNameFromDisk.Name); - Assert.Equal(sourceAName.Version, aNameFromDisk.Version); - Assert.Equal(sourceAName.CultureInfo, aNameFromDisk.CultureInfo); - Assert.Equal(sourceAName.CultureName, aNameFromDisk.CultureName); - Assert.Equal(sourceAName.ContentType, aNameFromDisk.ContentType); - - Assert.NotNull(moduleFromDisk); - Assert.Equal(sourceAName.Name, moduleFromDisk.ScopeName); - Assert.Empty(moduleFromDisk.GetTypes()); - } - - internal static void AssertTypeProperties(Type sourceType, Type typeFromDisk) - { - Assert.Equal(sourceType.Name, typeFromDisk.Name); - Assert.Equal(sourceType.Namespace, typeFromDisk.Namespace); - Assert.Equal(sourceType.Attributes, typeFromDisk.Attributes); - Assert.Equal(sourceType.IsInterface, typeFromDisk.IsInterface); - Assert.Equal(sourceType.IsValueType, typeFromDisk.IsValueType); - } - - internal static void AssertFields(FieldInfo[] declaredFields, FieldInfo[] fieldsFromDisk) - { - Assert.Equal(declaredFields.Length, fieldsFromDisk.Length); - - for (int j = 0; j < declaredFields.Length; j++) - { - FieldInfo sourceField = declaredFields[j]; - FieldInfo fieldFromDisk = fieldsFromDisk[j]; - - Assert.Equal(sourceField.Name, fieldFromDisk.Name); - Assert.Equal(sourceField.Attributes, fieldFromDisk.Attributes); - Assert.Equal(sourceField.FieldType.FullName, fieldFromDisk.FieldType.FullName); - } - } - - internal static void AssertMethods(MethodInfo[] sourceMethods, MethodInfo[] methodsFromDisk) - { - Assert.Equal(sourceMethods.Length, methodsFromDisk.Length); - - for (int j = 0; j < sourceMethods.Length; j++) - { - MethodInfo sourceMethod = sourceMethods[j]; - MethodInfo methodFromDisk = methodsFromDisk[j]; - - Assert.Equal(sourceMethod.Name, methodFromDisk.Name); - Assert.Equal(sourceMethod.Attributes, methodFromDisk.Attributes); - Assert.Equal(sourceMethod.ReturnType.FullName, methodFromDisk.ReturnType.FullName); - AssertParameters(sourceMethod.GetParameters(), methodFromDisk.GetParameters()); - } - } - - private static void AssertParameters(ParameterInfo[] sourceParameters, ParameterInfo[] parametersLoaded) - { - Assert.Equal(sourceParameters.Length, parametersLoaded.Length); - - for (int i = 0; i < sourceParameters.Length; i++) - { - Assert.Equal(sourceParameters[i].Name, parametersLoaded[i].Name); - Assert.Equal(sourceParameters[i].ParameterType.FullName, parametersLoaded[i].ParameterType.FullName); - Assert.Equal(sourceParameters[i].Attributes, parametersLoaded[i].Attributes); - Assert.Equal(sourceParameters[i].Position, parametersLoaded[i].Position); - } - } - } - - // The resolver copied from MLC tests - internal sealed class CoreMetadataAssemblyResolver : MetadataAssemblyResolver - { - public static Assembly s_coreAssembly = typeof(object).Assembly; - public static Assembly s_emitAssembly = typeof(AssemblyTools).Assembly; - public CoreMetadataAssemblyResolver() { } - - public override Assembly Resolve(MetadataLoadContext context, AssemblyName assemblyName) - { - string name = assemblyName.Name; - - if (name.Equals("mscorlib", StringComparison.OrdinalIgnoreCase) || - name.Equals("System.Private.CoreLib", StringComparison.OrdinalIgnoreCase) || - name.Equals("System.Runtime", StringComparison.OrdinalIgnoreCase) || - name.Equals("netstandard", StringComparison.OrdinalIgnoreCase) || - // For interop attributes such as DllImport and Guid: - name.Equals("System.Runtime.InteropServices", StringComparison.OrdinalIgnoreCase)) - { - if (_coreAssembly == null) - { - _coreAssembly = context.LoadFromStream(CreateStreamForCoreAssembly()); - } - - return _coreAssembly; - } - - if (name.Equals("System.Reflection.Emit.Tests", StringComparison.OrdinalIgnoreCase)) - { - if (_emitAssembly == null) - { - _emitAssembly = context.LoadFromStream(CreateStreamForEmitAssembly()); - } - - return _emitAssembly; - } - - return null; - } - - private Assembly _emitAssembly; - private Assembly _coreAssembly; - - private Stream CreateStreamForEmitAssembly() => - File.OpenRead(AssemblyPathHelper.GetAssemblyLocation(s_emitAssembly)); - - private static Stream CreateStreamForCoreAssembly() - { - // We need a core assembly in IL form. Since this version of this code is for Jitted platforms, the System.Private.Corelib - // of the underlying runtime will do just fine. - if (PlatformDetection.IsNotBrowser) - { - string assumedLocationOfCoreLibrary = typeof(object).Assembly.Location; - if (string.IsNullOrEmpty(assumedLocationOfCoreLibrary)) - { - throw new Exception("Could not find a core assembly to use for tests as 'typeof(object).Assembly.Location` returned " + - "a null or empty value. The most likely cause is that you built the tests for a Jitted runtime but are running them " + - "on an AoT runtime."); - } - } - - return File.OpenRead(AssemblyPathHelper.GetAssemblyLocation(s_coreAssembly)); - } - } -} diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/JsonCommentHandling.cs b/src/libraries/System.Text.Json/src/System/Text/Json/JsonCommentHandling.cs deleted file mode 100644 index a1dea4746e176..0000000000000 --- a/src/libraries/System.Text.Json/src/System/Text/Json/JsonCommentHandling.cs +++ /dev/null @@ -1,28 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System.Text.Json -{ - /// - /// This enum defines the various ways the can deal with comments. - /// - public enum JsonCommentHandling : byte - { - /// - /// By default, do no allow comments within the JSON input. - /// Comments are treated as invalid JSON if found and a - /// is thrown. - /// - Disallow = 0, - /// - /// Allow comments within the JSON input and ignore them. - /// The will behave as if no comments were present. - /// - Skip = 1, - /// - /// Allow comments within the JSON input and treat them as valid tokens. - /// While reading, the caller will be able to access the comment values. - /// - Allow = 2, - } -} diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerDefaults.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerDefaults.cs deleted file mode 100644 index fe762976f8a05..0000000000000 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializerDefaults.cs +++ /dev/null @@ -1,26 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System.Text.Json -{ - /// - /// Signifies what default options are used by . - /// - public enum JsonSerializerDefaults - { - /// - /// Specifies that general-purpose values should be used. These are the same settings applied if a isn't specified. - /// - /// - /// This option implies that property names are treated as case-sensitive and that "PascalCase" name formatting should be employed. - /// - General = 0, - /// - /// Specifies that values should be used more appropriate to web-based scenarios. - /// - /// - /// This option implies that property names are treated as case-insensitive and that "camelCase" name formatting should be employed. - /// - Web = 1 - } -} diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonUnknownTypeHandling.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonUnknownTypeHandling.cs deleted file mode 100644 index 5d2ea224bb5ad..0000000000000 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonUnknownTypeHandling.cs +++ /dev/null @@ -1,20 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -namespace System.Text.Json.Serialization -{ - /// - /// Defines how deserializing a type declared as an is handled during deserialization. - /// - public enum JsonUnknownTypeHandling - { - /// - /// A type declared as is deserialized as a . - /// - JsonElement = 0, - /// - /// A type declared as is deserialized as a . - /// - JsonNode = 1 - } -} From 86099a247514b35785c77a88a2abd8af62e33864 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Tue, 18 Jul 2023 13:50:02 -0700 Subject: [PATCH 10/20] Tests pass --- .../ComInterfaceGenerator.cs | 3 +- .../VtableIndexStubGenerator.cs | 2 +- .../LibraryImportGenerator.cs | 2 +- .../ContainingSyntaxContext.cs | 20 ++- .../Marshalling/MarshalToLocalContext.cs | 23 +++- .../MarshallingGeneratorExtensions.cs | 2 +- .../ref/System.Runtime.InteropServices.cs | 2 + .../CompileFails.cs | 53 ++------ .../NFloatTests.GenericMath.cs | 2 +- .../Runtime/InteropServices/NFloatTests.cs | 120 ++++++++++++++++++ 10 files changed, 177 insertions(+), 52 deletions(-) diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceGenerator.cs index 7a3f83fb3591c..e1cc737fc8fb6 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ComInterfaceGenerator.cs @@ -169,6 +169,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context) using StringWriter source = new(); source.WriteLine("// "); + source.WriteLine("#pragma warning disable CS0612, CS0618"); // Suppress warnings about [Obsolete] member usage in generated code. interfaceInfo.WriteTo(source); // Two newlines looks cleaner than one source.WriteLine(); @@ -306,7 +307,7 @@ private static IncrementalMethodStubGenerationContext CalculateStubInformation(M var containingSyntaxContext = new ContainingSyntaxContext(syntax); - var methodSyntaxTemplate = new ContainingSyntax(syntax.Modifiers.StripAccessibilityModifiers().StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, syntax.Identifier, syntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(syntax.Modifiers.StripAccessibilityModifiers(), SyntaxKind.MethodDeclaration, syntax.Identifier, syntax.TypeParameterList); ImmutableArray callConv = VirtualMethodPointerStubGenerator.GenerateCallConvSyntaxFromAttributes( suppressGCTransitionAttribute, diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VtableIndexStubGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VtableIndexStubGenerator.cs index dea2acac83434..e5faa6fbadd6f 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VtableIndexStubGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/VtableIndexStubGenerator.cs @@ -278,7 +278,7 @@ private static IncrementalMethodStubGenerationContext CalculateStubInformation(M var containingSyntaxContext = new ContainingSyntaxContext(syntax); - var methodSyntaxTemplate = new ContainingSyntax(syntax.Modifiers.StripAccessibilityModifiers().StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, syntax.Identifier, syntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(syntax.Modifiers.StripAccessibilityModifiers(), SyntaxKind.MethodDeclaration, syntax.Identifier, syntax.TypeParameterList); ImmutableArray callConv = VirtualMethodPointerStubGenerator.GenerateCallConvSyntaxFromAttributes(suppressGCTransitionAttribute, unmanagedCallConvAttribute, defaultCallingConventions: ImmutableArray.Empty); diff --git a/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/LibraryImportGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/LibraryImportGenerator.cs index 2d61f237b2730..fcd915ea25f60 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/LibraryImportGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/LibraryImportGenerator.cs @@ -288,7 +288,7 @@ private static IncrementalStubGenerationContext CalculateStubInformation( var containingTypeContext = new ContainingSyntaxContext(originalSyntax); - var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers.StripTriviaFromTokens(), SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); + var methodSyntaxTemplate = new ContainingSyntax(originalSyntax.Modifiers, SyntaxKind.MethodDeclaration, originalSyntax.Identifier, originalSyntax.TypeParameterList); List additionalAttributes = GenerateSyntaxForForwardedAttributes(suppressGCTransitionAttribute, unmanagedCallConvAttribute, defaultDllImportSearchPathsAttribute); return new IncrementalStubGenerationContext( diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ContainingSyntaxContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ContainingSyntaxContext.cs index 59028310e6ff3..1ac5effeaced9 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ContainingSyntaxContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ContainingSyntaxContext.cs @@ -12,8 +12,18 @@ namespace Microsoft.Interop { - public readonly record struct ContainingSyntax(SyntaxTokenList Modifiers, SyntaxKind TypeKind, SyntaxToken Identifier, TypeParameterListSyntax? TypeParameters) + public readonly struct ContainingSyntax(SyntaxTokenList modifiers, SyntaxKind typeKind, SyntaxToken identifier, TypeParameterListSyntax? typeParameters) : IEquatable { + public SyntaxTokenList Modifiers { get; init; } = modifiers.StripTriviaFromTokens(); + + public SyntaxToken Identifier { get; init; } = identifier.WithoutTrivia(); + + public SyntaxKind TypeKind { get; init; } = typeKind; + + public TypeParameterListSyntax? TypeParameters { get; init; } = typeParameters; + + public override bool Equals(object obj) => obj is ContainingSyntax other && Equals(other); + public bool Equals(ContainingSyntax other) { return Modifiers.SequenceEqual(other.Modifiers, SyntaxEquivalentComparer.Instance) @@ -42,8 +52,12 @@ private static ImmutableArray GetContainingTypes(MemberDeclara ImmutableArray.Builder containingTypeInfoBuilder = ImmutableArray.CreateBuilder(); for (SyntaxNode? parent = memberDeclaration.Parent; parent is TypeDeclarationSyntax typeDeclaration; parent = parent.Parent) { - containingTypeInfoBuilder.Add(new ContainingSyntax(typeDeclaration.Modifiers.StripTriviaFromTokens(), typeDeclaration.Kind(), typeDeclaration.Identifier.WithoutTrivia(), - typeDeclaration.TypeParameterList)); + containingTypeInfoBuilder.Add( + new ContainingSyntax( + typeDeclaration.Modifiers, + typeDeclaration.Kind(), + typeDeclaration.Identifier, + typeDeclaration.TypeParameterList)); } return containingTypeInfoBuilder.ToImmutable(); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs index cb818ad162734..5f387a2772a9b 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs @@ -5,15 +5,28 @@ namespace Microsoft.Interop { - internal sealed record MarshalToLocalContext(StubCodeContext inner) : StubCodeContext + internal sealed record MarshalToLocalContext : StubCodeContext { - public override bool SingleFrameSpansNativeContext => inner.SingleFrameSpansNativeContext; + internal StubCodeContext InnerContext { get; init; } - public override bool AdditionalTemporaryStateLivesAcrossStages => inner.AdditionalTemporaryStateLivesAcrossStages; + internal MarshalToLocalContext(StubCodeContext inner) + { + InnerContext = inner; + CurrentStage = inner.CurrentStage; + Direction = inner.Direction; + ParentContext = inner.ParentContext; + } + + public override (TargetFramework framework, Version version) GetTargetFramework() => InnerContext.GetTargetFramework(); + + public override bool SingleFrameSpansNativeContext => InnerContext.SingleFrameSpansNativeContext; + + public override bool AdditionalTemporaryStateLivesAcrossStages => InnerContext.AdditionalTemporaryStateLivesAcrossStages; - public override (TargetFramework framework, Version version) GetTargetFramework() => inner.GetTargetFramework(); public override (string managed, string native) GetIdentifiers(TypePositionInfo info) - => inner.GetIdentifiers(info); + => InnerContext.GetIdentifiers(info); //=> (inner.GetIdentifiers(info).managed, inner.GetAdditionalIdentifier(info, "out")); + + public override string GetAdditionalIdentifier(TypePositionInfo info, string name) => InnerContext.GetAdditionalIdentifier(info, name); } } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs index e4016091f4506..2c11351959b03 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs @@ -155,7 +155,7 @@ private static bool TryRehydrateMarshalAsAttribute(TypePositionInfo info, out At CustomTypeMarshallerData defaultMarshallerData = collectionMarshalling.Marshallers.GetModeOrDefault(MarshalMode.Default); if ((defaultMarshallerData.MarshallerType.FullTypeName.StartsWith($"{TypeNames.System_Runtime_InteropServices_ArrayMarshaller}<") || defaultMarshallerData.MarshallerType.FullTypeName.StartsWith($"{TypeNames.System_Runtime_InteropServices_PointerArrayMarshaller}<")) - && defaultMarshallerData.CollectionElementMarshallingInfo is NoMarshallingInfo or MarshalAsInfo { UnmanagedType: not UnmanagedType.CustomMarshaler }) + && defaultMarshallerData.CollectionElementMarshallingInfo is NoMarshallingInfo or MarshalAsInfo { UnmanagedType: not UnmanagedType.CustomMarshaler }) { countInfo = collectionMarshalling.ElementCountInfo; elementMarshallingInfo = defaultMarshallerData.CollectionElementMarshallingInfo; diff --git a/src/libraries/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs b/src/libraries/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs index 1744a5f234b81..0d80a901d93ad 100644 --- a/src/libraries/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs +++ b/src/libraries/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs @@ -1331,6 +1331,7 @@ public static void Free(void* ptr) { } public static System.Runtime.InteropServices.NFloat CreateChecked(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static System.Runtime.InteropServices.NFloat CreateSaturating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } public static System.Runtime.InteropServices.NFloat CreateTruncating(TOther value) where TOther : System.Numerics.INumberBase { throw null; } + public static System.Runtime.InteropServices.NFloat DegreesToRadians(System.Runtime.InteropServices.NFloat degrees) { throw null; } public override bool Equals([System.Diagnostics.CodeAnalysis.NotNullWhenAttribute(true)] object? obj) { throw null; } public bool Equals(System.Runtime.InteropServices.NFloat other) { throw null; } public static System.Runtime.InteropServices.NFloat Exp(System.Runtime.InteropServices.NFloat x) { throw null; } @@ -1464,6 +1465,7 @@ public static void Free(void* ptr) { } public static System.Runtime.InteropServices.NFloat Parse(string s, System.Globalization.NumberStyles style, System.IFormatProvider? provider) { throw null; } public static System.Runtime.InteropServices.NFloat Parse(string s, System.IFormatProvider? provider) { throw null; } public static System.Runtime.InteropServices.NFloat Pow(System.Runtime.InteropServices.NFloat x, System.Runtime.InteropServices.NFloat y) { throw null; } + public static System.Runtime.InteropServices.NFloat RadiansToDegrees(System.Runtime.InteropServices.NFloat radians) { throw null; } public static System.Runtime.InteropServices.NFloat ReciprocalEstimate(System.Runtime.InteropServices.NFloat x) { throw null; } public static System.Runtime.InteropServices.NFloat ReciprocalSqrtEstimate(System.Runtime.InteropServices.NFloat x) { throw null; } public static System.Runtime.InteropServices.NFloat RootN(System.Runtime.InteropServices.NFloat x, int n) { throw null; } diff --git a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs index b2a3c6ad12218..c4e5f9b7e5b61 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs @@ -558,20 +558,12 @@ public static IEnumerable ByValueMarshalAttributeOnValueTypes() // [In] is default for all non-pinned marshalled types yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "int", paramNameWithLocation), new DiagnosticResult[] { - inAttributeIsDefaultDiagnostic, - //https://github.com/dotnet/runtime/issues/88540 inAttributeIsDefaultDiagnostic } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "byte", paramNameWithLocation), new DiagnosticResult[] { - inAttributeIsDefaultDiagnostic, - //https://github.com/dotnet/runtime/issues/88540 inAttributeIsDefaultDiagnostic } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + "[MarshalAs(UnmanagedType.U4)]", "bool", paramNameWithLocation), new DiagnosticResult[] { - inAttributeIsDefaultDiagnostic, - //https://github.com/dotnet/runtime/issues/88540 inAttributeIsDefaultDiagnostic } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + "[MarshalAs(UnmanagedType.U2)]", "char", paramNameWithLocation), new DiagnosticResult[] { - inAttributeIsDefaultDiagnostic, - //https://github.com/dotnet/runtime/issues/88540 inAttributeIsDefaultDiagnostic } }; // [Out] is not allowed on value types passed by value - there is no indirection for the callee to make visible modifications. @@ -579,48 +571,32 @@ public static IEnumerable ByValueMarshalAttributeOnValueTypes() .WithLocation(0) .WithArguments(SR.OutAttributeNotSupportedOnByValueParameters, paramName); yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "int", paramNameWithLocation), new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters, - //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "IntStruct", paramNameWithLocation) + CodeSnippets.IntStructAndMarshaller, new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters, - //https://github.com/dotnet/runtime/issues/88540 - outAttributeNotSupportedOnValueParameters, + outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute + "[MarshalAs(UnmanagedType.U4)]", "bool", paramNameWithLocation), new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters, - //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "[MarshalAs(UnmanagedType.U2)] char", paramNameWithLocation), new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters, - //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; // [In,Out] should only warn for Out attribute yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute+outAttribute, "int", paramNameWithLocation), new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters, - //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute+outAttribute, "IntStruct", paramNameWithLocation) + CodeSnippets.IntStructAndMarshaller, new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters, - //https://github.com/dotnet/runtime/issues/88540 - outAttributeNotSupportedOnValueParameters, + outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute + "[MarshalAs(UnmanagedType.U4)]", "bool", paramNameWithLocation), new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters, - //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute, "[MarshalAs(UnmanagedType.U2)] char", paramNameWithLocation), new DiagnosticResult[] { - outAttributeNotSupportedOnValueParameters, - //https://github.com/dotnet/runtime/issues/88540 outAttributeNotSupportedOnValueParameters } }; @@ -688,12 +664,12 @@ public static IEnumerable ByValueMarshalAttributeOnReferenceTypes() yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "string", paramNameWithLocation, (StringMarshalling.Utf8, null)), - new DiagnosticResult[] { inAttributeIsDefaultDiagnostic, inAttributeIsDefaultDiagnostic } + new DiagnosticResult[] { inAttributeIsDefaultDiagnostic } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "IntClass", paramNameWithLocation) + CodeSnippets.IntClassAndMarshaller, - new DiagnosticResult[] { inAttributeIsDefaultDiagnostic, inAttributeIsDefaultDiagnostic } + new DiagnosticResult[] { inAttributeIsDefaultDiagnostic } }; var outNotAllowedOnRefTypes = new DiagnosticResult(GeneratorDiagnostics.ParameterTypeNotSupportedWithDetails) @@ -704,21 +680,21 @@ public static IEnumerable ByValueMarshalAttributeOnReferenceTypes() yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "string", paramNameWithLocation, (StringMarshalling.Utf8, null)), - new DiagnosticResult[] { outNotAllowedOnRefTypes, outNotAllowedOnRefTypes } + new DiagnosticResult[] { outNotAllowedOnRefTypes } }; // [Out] warns on by value reference types yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(outAttribute, "IntClass", paramNameWithLocation) + CodeSnippets.IntClassAndMarshaller, - new DiagnosticResult[] { outNotAllowedOnRefTypes, outNotAllowedOnRefTypes } + new DiagnosticResult[] { outNotAllowedOnRefTypes } }; // [In,Out] is fine on classes yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute, "IntClass", paramNameWithLocation) + CodeSnippets.IntClassAndMarshaller, - new DiagnosticResult[] { outNotAllowedOnRefTypes, outNotAllowedOnRefTypes } + new DiagnosticResult[] { outNotAllowedOnRefTypes } }; // All refkinds are okay on classes and strings @@ -774,11 +750,10 @@ public static IEnumerable ByValueMarshalAttributeOnPinnedMarshalledTyp .WithLocation(0) .WithArguments(SR.InAttributeOnlyNotSupportedOnPinnedParameters, paramName); yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + constElementCount, "int[]", paramNameWithLocation), new DiagnosticResult[] { - inAttributeNotSupportedOnPinnedParameter, - //https://github.com/dotnet/runtime/issues/88540 inAttributeNotSupportedOnPinnedParameter }}; - // new issue before merge: char generated code doesn't seem to work well with [In, Out] + // blittable arrays don't support [In] only. Different diagnostics are issued because we can pin in one direction (managed->unmanaged) + // but not the other direction. yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + constElementCount, "char[]", paramNameWithLocation, (StringMarshalling.Utf16, null)), @@ -793,13 +768,13 @@ public static IEnumerable ByValueMarshalAttributeOnPinnedMarshalledTyp "bool[]", paramNameWithLocation, (StringMarshalling.Utf16, null)), - new DiagnosticResult[] { inAttributeIsDefaultDiagnostic, inAttributeIsDefaultDiagnostic} + new DiagnosticResult[] { inAttributeIsDefaultDiagnostic } }; // Overriding marshalling with a custom marshaller makes it not pinned yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute, "[MarshalUsing(typeof(IntMarshaller), ElementIndirectionDepth = 1), MarshalUsing(ConstantElementCount = 10)]int[]", paramNameWithLocation) + CodeSnippets.IntMarshaller, - new DiagnosticResult[] { inAttributeIsDefaultDiagnostic, inAttributeIsDefaultDiagnostic} + new DiagnosticResult[] { inAttributeIsDefaultDiagnostic } }; // [In, Out] is default @@ -811,12 +786,12 @@ public static IEnumerable ByValueMarshalAttributeOnPinnedMarshalledTyp yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute + constElementCount, "int[]", paramNameWithLocation), - new DiagnosticResult[] { inOutAttributeIsDefaultDiagnostic, inOutAttributeIsDefaultDiagnostic} + new DiagnosticResult[] { inOutAttributeIsDefaultDiagnostic } }; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute + constElementCount, "char[]", paramNameWithLocation, (StringMarshalling.Utf16, null)), - //https://github.com/dotnet/runtime/issues/88540 + //https://github.com/dotnet/runtime/issues/88708 new DiagnosticResult[] { inOutAttributeIsDefaultDiagnostic } }; @@ -847,7 +822,7 @@ public async Task VerifyByValueMarshallingAttributeUsage(string id, string sourc { TestCode = source, TestBehaviors = TestBehaviors.SkipGeneratedSourcesCheck, - // Our fallback mechanism for invalid code for unmanaged->managed stubs sometimes generates invalid code. + // https://github.com/dotnet/runtime/issues/88708 CompilerDiagnostics = diagnostics.Length != 0 ? CompilerDiagnostics.None : CompilerDiagnostics.Errors, }; test.ExpectedDiagnostics.AddRange(diagnostics); diff --git a/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.GenericMath.cs b/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.GenericMath.cs index fa0c13230ac6e..1d73cf969d05c 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.GenericMath.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.GenericMath.cs @@ -244,7 +244,7 @@ public static void IsPow2Test() Assert.False(BinaryNumberHelper.IsPow2(NegativeZero)); Assert.False(BinaryNumberHelper.IsPow2(NFloat.NaN)); Assert.False(BinaryNumberHelper.IsPow2(Zero)); - Assert.False(BinaryNumberHelper.IsPow2(NFloat.Epsilon)); + Assert.True(BinaryNumberHelper.IsPow2(NFloat.Epsilon)); Assert.False(BinaryNumberHelper.IsPow2(MaxSubnormal)); Assert.True(BinaryNumberHelper.IsPow2(MinNormal)); Assert.True(BinaryNumberHelper.IsPow2(One)); diff --git a/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.cs b/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.cs index 8a68e89a332c6..bd14d939f1671 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/NFloatTests.cs @@ -2545,5 +2545,125 @@ public static void LerpTest64(double value1, double value2, double amount, doubl AssertExtensions.Equal(+expectedResult, NFloat.Lerp((NFloat)(+value1), (NFloat)(+value2), (NFloat)(amount)), 0); AssertExtensions.Equal((expectedResult == 0.0) ? expectedResult : -expectedResult, NFloat.Lerp((NFloat)(-value1), (NFloat)(-value2), (NFloat)(amount)), 0); } + + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is32BitProcess))] + [InlineData(float.NaN, float.NaN, 0.0f)] + [InlineData(0.0f, 0.0f, 0.0f)] + [InlineData(0.318309886f, 0.0055555557f, CrossPlatformMachineEpsilon32)] // value: (1 / pi) + [InlineData(0.434294482f, 0.007579869f, CrossPlatformMachineEpsilon32)] // value: (log10(e)) + [InlineData(0.5f, 0.008726646f, CrossPlatformMachineEpsilon32)] + [InlineData(0.636619772f, 0.011111111f, CrossPlatformMachineEpsilon32)] // value: (2 / pi) + [InlineData(0.693147181f, 0.0120977005f, CrossPlatformMachineEpsilon32)] // value: (ln(2)) + [InlineData(0.707106781f, 0.012341342f, CrossPlatformMachineEpsilon32)] // value: (1 / sqrt(2)) + [InlineData(0.785398163f, 0.013707785f, CrossPlatformMachineEpsilon32)] // value: (pi / 4) + [InlineData(1.0f, 0.017453292f, CrossPlatformMachineEpsilon32)] + [InlineData(1.12837917f, 0.019693933f, CrossPlatformMachineEpsilon32)] // value: (2 / sqrt(pi)) + [InlineData(1.41421356f, 0.024682684f, CrossPlatformMachineEpsilon32)] // value: (sqrt(2)) + [InlineData(1.44269504f, 0.025179777f, CrossPlatformMachineEpsilon32)] // value: (log2(e)) + [InlineData(1.5f, 0.02617994f, CrossPlatformMachineEpsilon32)] + [InlineData(1.57079633f, 0.02741557f, CrossPlatformMachineEpsilon32)] // value: (pi / 2) + [InlineData(2.0f, 0.034906585f, CrossPlatformMachineEpsilon32)] + [InlineData(2.30258509f, 0.040187694f, CrossPlatformMachineEpsilon32)] // value: (ln(10)) + [InlineData(2.5f, 0.043633234f, CrossPlatformMachineEpsilon32)] + [InlineData(2.71828183f, 0.047442965f, CrossPlatformMachineEpsilon32)] // value: (e) + [InlineData(3.0f, 0.05235988f, CrossPlatformMachineEpsilon32)] + [InlineData(3.14159265f, 0.05483114f, CrossPlatformMachineEpsilon32)] // value: (pi) + [InlineData(3.5f, 0.061086528f, CrossPlatformMachineEpsilon32)] + [InlineData(float.PositiveInfinity, float.PositiveInfinity, 0.0f)] + public static void DegreesToRadiansTest32(float value, float expectedResult, float allowedVariance) + { + AssertExtensions.Equal(-expectedResult, (float)NFloat.DegreesToRadians(-value), allowedVariance); + AssertExtensions.Equal(+expectedResult, (float)NFloat.DegreesToRadians(+value), allowedVariance); + } + + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is64BitProcess))] + [InlineData(double.NaN, double.NaN, 0.0)] + [InlineData(0.0, 0.0, 0.0)] + [InlineData(0.31830988618379067, 0.005555555555555556, CrossPlatformMachineEpsilon64)] // value: (1 / pi) + [InlineData(0.43429448190325183, 0.007579868632454674, CrossPlatformMachineEpsilon64)] // value: (log10(e)) + [InlineData(0.5, 0.008726646259971648, CrossPlatformMachineEpsilon64)] + [InlineData(0.63661977236758134, 0.011111111111111112, CrossPlatformMachineEpsilon64)] // value: (2 / pi) + [InlineData(0.69314718055994531, 0.01209770050168668, CrossPlatformMachineEpsilon64)] // value: (ln(2)) + [InlineData(0.70710678118654752, 0.012341341494884351, CrossPlatformMachineEpsilon64)] // value: (1 / sqrt(2)) + [InlineData(0.78539816339744831, 0.013707783890401885, CrossPlatformMachineEpsilon64)] // value: (pi / 4) + [InlineData(1.0, 0.017453292519943295, CrossPlatformMachineEpsilon64)] + [InlineData(1.1283791670955126, 0.019693931676727953, CrossPlatformMachineEpsilon64)] // value: (2 / sqrt(pi)) + [InlineData(1.4142135623730950, 0.024682682989768702, CrossPlatformMachineEpsilon64)] // value: (sqrt(2)) + [InlineData(1.4426950408889634, 0.02517977856570663, CrossPlatformMachineEpsilon64)] // value: (log2(e)) + [InlineData(1.5, 0.02617993877991494, CrossPlatformMachineEpsilon64)] + [InlineData(1.5707963267948966, 0.02741556778080377, CrossPlatformMachineEpsilon64)] // value: (pi / 2) + [InlineData(2.0, 0.03490658503988659, CrossPlatformMachineEpsilon64)] + [InlineData(2.3025850929940457, 0.040187691180085916, CrossPlatformMachineEpsilon64)] // value: (ln(10)) + [InlineData(2.5, 0.04363323129985824, CrossPlatformMachineEpsilon64)] + [InlineData(2.7182818284590452, 0.047442967903742035, CrossPlatformMachineEpsilon64)] // value: (e) + [InlineData(3.0, 0.05235987755982988, CrossPlatformMachineEpsilon64)] + [InlineData(3.1415926535897932, 0.05483113556160754, CrossPlatformMachineEpsilon64)] // value: (pi) + [InlineData(3.5, 0.061086523819801536, CrossPlatformMachineEpsilon64)] + [InlineData(double.PositiveInfinity, double.PositiveInfinity, 0.0)] + public static void DegreesToRadiansTest64(double value, double expectedResult, double allowedVariance) + { + AssertExtensions.Equal(-expectedResult, NFloat.DegreesToRadians((NFloat)(-value)), allowedVariance); + AssertExtensions.Equal(+expectedResult, NFloat.DegreesToRadians((NFloat)(+value)), allowedVariance); + } + + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is32BitProcess))] + [InlineData(float.NaN, float.NaN, 0.0)] + [InlineData(0.0f, 0.0f, 0.0)] + [InlineData(0.0055555557f, 0.318309886f, CrossPlatformMachineEpsilon32)] // expected: (1 / pi) + [InlineData(0.007579869f, 0.434294482f, CrossPlatformMachineEpsilon32)] // expected: (log10(e)) + [InlineData(0.008726646f, 0.5f, CrossPlatformMachineEpsilon32)] + [InlineData(0.011111111f, 0.636619772f, CrossPlatformMachineEpsilon32)] // expected: (2 / pi) + [InlineData(0.0120977005f, 0.693147181f, CrossPlatformMachineEpsilon32)] // expected: (ln(2)) + [InlineData(0.012341342f, 0.707106781f, CrossPlatformMachineEpsilon32)] // expected: (1 / sqrt(2)) + [InlineData(0.013707785f, 0.785398163f, CrossPlatformMachineEpsilon32)] // expected: (pi / 4) + [InlineData(0.017453292f, 1.0f, CrossPlatformMachineEpsilon32)] + [InlineData(0.019693933f, 1.12837917f, CrossPlatformMachineEpsilon32)] // expected: (2 / sqrt(pi)) + [InlineData(0.024682684f, 1.41421356f, CrossPlatformMachineEpsilon32)] // expected: (sqrt(2)) + [InlineData(0.025179777f, 1.44269504f, CrossPlatformMachineEpsilon32)] // expected: (log2(e)) + [InlineData(0.02617994f, 1.5f, CrossPlatformMachineEpsilon32)] + [InlineData(0.02741557f, 1.57079633f, CrossPlatformMachineEpsilon32)] // expected: (pi / 2) + [InlineData(0.034906585f, 2.0f, CrossPlatformMachineEpsilon32)] + [InlineData(0.040187694f, 2.30258509f, CrossPlatformMachineEpsilon32)] // expected: (ln(10)) + [InlineData(0.043633234f, 2.5f, CrossPlatformMachineEpsilon32)] + [InlineData(0.047442965f, 2.71828183f, CrossPlatformMachineEpsilon32)] // expected: (e) + [InlineData(0.05235988f, 3.0f, CrossPlatformMachineEpsilon32)] + [InlineData(0.05483114f, 3.14159265f, CrossPlatformMachineEpsilon32)] // expected: (pi) + [InlineData(0.061086528f, 3.5f, CrossPlatformMachineEpsilon32)] + [InlineData(float.PositiveInfinity, float.PositiveInfinity, 0.0)] + public static void RadiansToDegreesTest32(float value, float expectedResult, float allowedVariance) + { + AssertExtensions.Equal(-expectedResult, (float)NFloat.RadiansToDegrees(-value), allowedVariance); + AssertExtensions.Equal(+expectedResult, (float)NFloat.RadiansToDegrees(+value), allowedVariance); + } + + [ConditionalTheory(typeof(PlatformDetection), nameof(PlatformDetection.Is64BitProcess))] + [InlineData(double.NaN, double.NaN, 0.0)] + [InlineData(0.0, 0.0, 0.0)] + [InlineData(0.0055555555555555567, 0.3183098861837906, CrossPlatformMachineEpsilon64)] // expected: (1 / pi) + [InlineData(0.0075798686324546743, 0.4342944819032518, CrossPlatformMachineEpsilon64)] // expected: (log10(e)) + [InlineData(0.008726646259971648, 0.5, CrossPlatformMachineEpsilon64)] + [InlineData(0.0111111111111111124, 0.6366197723675813, CrossPlatformMachineEpsilon64)] // expected: (2 / pi) + [InlineData(0.0120977005016866801, 0.6931471805599453, CrossPlatformMachineEpsilon64)] // expected: (ln(2)) + [InlineData(0.0123413414948843512, 0.7071067811865475, CrossPlatformMachineEpsilon64)] // expected: (1 / sqrt(2)) + [InlineData(0.0137077838904018851, 0.7853981633974483, CrossPlatformMachineEpsilon64)] // expected: (pi / 4) + [InlineData(0.017453292519943295, 1.0, CrossPlatformMachineEpsilon64)] + [InlineData(0.019693931676727953, 1.1283791670955126, CrossPlatformMachineEpsilon64)] // expected: (2 / sqrt(pi)) + [InlineData(0.024682682989768702, 1.4142135623730950, CrossPlatformMachineEpsilon64)] // expected: (sqrt(2)) + [InlineData(0.025179778565706630, 1.4426950408889634, CrossPlatformMachineEpsilon64)] // expected: (log2(e)) + [InlineData(0.026179938779914940, 1.5, CrossPlatformMachineEpsilon64)] + [InlineData(0.027415567780803770, 1.5707963267948966, CrossPlatformMachineEpsilon64)] // expected: (pi / 2) + [InlineData(0.034906585039886590, 2.0, CrossPlatformMachineEpsilon64)] + [InlineData(0.040187691180085916, 2.3025850929940457, CrossPlatformMachineEpsilon64)] // expected: (ln(10)) + [InlineData(0.043633231299858240, 2.5, CrossPlatformMachineEpsilon64)] + [InlineData(0.047442967903742035, 2.7182818284590452, CrossPlatformMachineEpsilon64)] // expected: (e) + [InlineData(0.052359877559829880, 3.0, CrossPlatformMachineEpsilon64)] + [InlineData(0.054831135561607540, 3.1415926535897932, CrossPlatformMachineEpsilon64)] // expected: (pi) + [InlineData(0.061086523819801536, 3.5, CrossPlatformMachineEpsilon64)] + [InlineData(double.PositiveInfinity, double.PositiveInfinity, 0.0)] + public static void RadiansToDegreesTest64(double value, double expectedResult, double allowedVariance) + { + AssertExtensions.Equal(-expectedResult, NFloat.RadiansToDegrees((NFloat)(-value)), allowedVariance); + AssertExtensions.Equal(+expectedResult, NFloat.RadiansToDegrees((NFloat)(+value)), allowedVariance); + } } } From 8b14784f86e33b6544e62b77fce3e73b9dd31882 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Tue, 18 Jul 2023 13:50:49 -0700 Subject: [PATCH 11/20] Remove trailing space --- .../tests/TestAssets/SharedTypes/SharedTypes.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/SharedTypes.csproj b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/SharedTypes.csproj index b25475075c729..06fadd8571d0b 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/SharedTypes.csproj +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/SharedTypes.csproj @@ -1,6 +1,6 @@ - + $(NetCoreAppCurrent) true From ee7de7f3156e8ed1c3b01b5553235fe907129ce3 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Tue, 18 Jul 2023 14:29:56 -0700 Subject: [PATCH 12/20] Remove commented code --- .../VariableDeclarations.cs | 12 +----------- .../ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs | 9 --------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs index 3a5c4527a31c0..a408dab062b6d 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs @@ -187,17 +187,7 @@ static void AppendVariableDeclarations(ImmutableArray __param_native; - //else - //{ - // statementsToUpdate.Add(MarshallerHelpers.Declare( - // localType, - // native, - // false)); - //} - //} + if (boundaryBehavior is ValueBoundaryBehavior.AddressOfNativeIdentifier) { // To simplify propogating back the value to the "byref" parameter, diff --git a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs index cca4aa23ea2a9..04bcc0346b99e 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs @@ -181,15 +181,6 @@ internal partial class IIntImpl : IInt public void Set(int value) => _data = value; } - [GeneratedComInterface] - [Guid("5A9D3ED6-CC17-4FB9-8F82-0070489B7213")] - internal partial interface IBool - { - [return: MarshalAs(UnmanagedType.I1)] - bool Get(); - void Set([MarshalAs(UnmanagedType.I1)] bool value); - } - [GeneratedComClass] internal partial class IBoolImpl : IBool { From cf38596da16e4a9a26da3c8c326ae939806517c1 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Tue, 18 Jul 2023 15:41:52 -0700 Subject: [PATCH 13/20] Refactor com interfaces and rename isMidlOut --- .../System.Runtime.InteropServices.sln | 33 +++ .../GeneratedStatements.cs | 2 +- .../Marshalling/MarshallerHelpers.cs | 6 +- .../VariableDeclarations.cs | 6 +- .../RcwAroundCcwTests.cs | 272 ++---------------- .../tests/ConsoleApp1/ConsoleApp1.csproj | 16 ++ .../tests/ConsoleApp1/Program.cs | 5 + .../LibraryImportGenerator.Tests.csproj | 3 +- .../SharedTypes/ComInterfaces/IBool.cs | 26 ++ .../SharedTypes/ComInterfaces/IFloat.cs | 25 ++ .../SharedTypes/ComInterfaces/IInt.cs | 47 +++ .../SharedTypes/ComInterfaces/IIntArray.cs | 39 +++ .../SharedTypes/ComInterfaces/IInterface.cs | 51 ++++ .../ComInterfaces/IJaggedIntArray.cs | 60 ++++ .../ICollectionMarshallingFails.cs | 30 ++ .../IJaggedIntArrayMarshallingFails.cs | 63 ++++ .../ThrowOn4thElementMarshalled.cs | 36 +++ 17 files changed, 458 insertions(+), 262 deletions(-) create mode 100644 src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/ConsoleApp1.csproj create mode 100644 src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/Program.cs create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IBool.cs create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IFloat.cs create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IInt.cs create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IIntArray.cs create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IInterface.cs create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IJaggedIntArray.cs create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ICollectionMarshallingFails.cs create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/IJaggedIntArrayMarshallingFails.cs create mode 100644 src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ThrowOn4thElementMarshalled.cs diff --git a/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln b/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln index 1bf3d501dabe4..c37613e590baa 100644 --- a/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln +++ b/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln @@ -65,6 +65,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{D893B9AA-57C EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gen", "gen", "{E1AEBD5D-AE4E-4F61-B9ED-AEF950B0CC33}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "tests\ConsoleApp1\ConsoleApp1.csproj", "{262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Checked|Any CPU = Checked|Any CPU @@ -660,6 +662,36 @@ Global {C9B349C8-7B11-4DE4-A4BB-8D957A1D2A82}.Release|x64.Build.0 = Release|Any CPU {C9B349C8-7B11-4DE4-A4BB-8D957A1D2A82}.Release|x86.ActiveCfg = Release|Any CPU {C9B349C8-7B11-4DE4-A4BB-8D957A1D2A82}.Release|x86.Build.0 = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|Any CPU.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|Any CPU.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|arm.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|arm.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|arm64.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|arm64.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|x64.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|x64.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|x86.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|x86.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|arm.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|arm.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|arm64.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|arm64.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|x64.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|x64.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|x86.ActiveCfg = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|x86.Build.0 = Debug|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|Any CPU.Build.0 = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|arm.ActiveCfg = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|arm.Build.0 = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|arm64.ActiveCfg = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|arm64.Build.0 = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|x64.ActiveCfg = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|x64.Build.0 = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|x86.ActiveCfg = Release|Any CPU + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -692,6 +724,7 @@ Global {0B5FD0C2-367D-4AD6-8001-80AD79B2441C} = {D893B9AA-57C5-49E3-97B1-12CC62D84307} {C7DAC270-CC93-4C97-9A8D-6E724A10727D} = {D893B9AA-57C5-49E3-97B1-12CC62D84307} {C9B349C8-7B11-4DE4-A4BB-8D957A1D2A82} = {B1678CCD-95C8-4419-B9F9-14A03061BE4B} + {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2} = {FB99AC59-1744-4F12-A4B0-0D54FCA048BF} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {D4031401-FEB5-4CCF-91C1-38F5646B2BFD} diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs index 2be5fd85b2130..ee47964892e7d 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs @@ -73,7 +73,7 @@ private static ImmutableArray GenerateStatementsForStubContext( { var localContext = context; if (context.CurrentStage is StubCodeContext.Stage.Marshal - && MarshallerHelpers.IsMidlOutBehavior(marshaller.TypeInfo, context)) + && MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) { localContext = new MarshalToLocalContext(context); } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs index 6362c021ab5e8..5da2be2b30597 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs @@ -396,9 +396,11 @@ public static MarshalDirection GetMarshalDirection(TypePositionInfo info, StubCo } /// - /// Returns whether a parameter has MIDL '[out]' behavior should be unmarshalled into a local variable and only assigned to the parameter at the end of the function call. + /// Returns whether the parameter should be marshalled into a local variable. + /// This is necessary for scenarios with unmanaged callers where the parameter is expected to be modified If and Only If the method returns successfully. /// - public static bool IsMidlOutBehavior(TypePositionInfo info, StubCodeContext context) + public static bool MarshalsOutToLocal(TypePositionInfo info, StubCodeContext context) + // Managed callers will throw if the return is a failure, and so it is less important that the parameters aren't modified before returning a failure. => context.Direction is MarshalDirection.UnmanagedToManaged && (info.IsByRef && info.RefKind is RefKind.Out or RefKind.Ref || info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs index a408dab062b6d..25efc1c7fc45c 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs @@ -99,7 +99,7 @@ public static VariableDeclarations GenerateDeclarationsForUnmanagedToManaged(Bou && boundaryBehavior is not (ValueBoundaryBehavior.NativeIdentifier or ValueBoundaryBehavior.CastNativeIdentifier)) { - if (MarshallerHelpers.IsMidlOutBehavior(marshaller.TypeInfo, context)) + if (MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) { string outlocal = context.GetAdditionalIdentifier(info, "out"); initializations.Add(MarshallerHelpers.CreateDiscardStatement(outlocal)); @@ -121,7 +121,7 @@ public static VariableDeclarations GenerateDeclarationsForUnmanagedToManaged(Bou && boundaryBehavior is not (ValueBoundaryBehavior.NativeIdentifier or ValueBoundaryBehavior.CastNativeIdentifier)) { - if (MarshallerHelpers.IsMidlOutBehavior(marshaller.TypeInfo, context)) + if (MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) { string outlocal = context.GetAdditionalIdentifier(info, "out"); initializations.Add(MarshallerHelpers.CreateDiscardStatement(outlocal)); @@ -178,7 +178,7 @@ static void AppendVariableDeclarations(ImmutableArray __param_native_out; diff --git a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs index 04bcc0346b99e..409ed1d6125de 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs @@ -7,7 +7,6 @@ using SharedTypes.ComInterfaces; using SharedTypes.ComInterfaces.MarshallingFails; using Xunit; -using static ComInterfaceGenerator.Tests.ComInterfaces; namespace ComInterfaceGenerator.Tests { @@ -23,11 +22,20 @@ public partial class RcwAroundCcwTests } [Fact] - public void IGetAndSetInt() - { - var obj = CreateWrapper(); - obj.SetInt(1); - Assert.Equal(1, obj.GetInt()); + public void IInt() + { + var obj = CreateWrapper(); + obj.Set(1); + Assert.Equal(1, obj.Get()); + var local = 4; + obj.SwapRef(ref local); + Assert.Equal(1, local); + Assert.Equal(4, obj.Get()); + local = 2; + obj.SetIn(in local); + local = 0; + obj.GetOut(out local); + Assert.Equal(2, local); } [Fact] @@ -89,8 +97,11 @@ public void IInterface() { var iint = CreateWrapper(); var obj = CreateWrapper(); - obj.Set(iint); + obj.SetInt(iint); _ = obj.Get(); + obj.SwapRef(ref iint); + obj.InInt(in iint); + obj.GetOut(out var _); } [Fact] @@ -162,251 +173,4 @@ public void IStringArrayMarshallingFails() }); } } - - public static partial class ComInterfaces - { - [GeneratedComInterface] - [Guid("EE6D1F2A-3418-4317-A87C-35488F6546AB")] - internal partial interface IInt - { - public int Get(); - public void Set(int value); - } - - [GeneratedComClass] - internal partial class IIntImpl : IInt - { - int _data; - public int Get() => _data; - public void Set(int value) => _data = value; - } - - [GeneratedComClass] - internal partial class IBoolImpl : IBool - { - bool _data; - public bool Get() => _data; - public void Set(bool value) => _data = value; - } - - [GeneratedComInterface] - [Guid("9FA4A8A9-2D8F-48A8-B6FB-B44B5F1B9FB6")] - internal partial interface IFloat - { - float Get(); - void Set(float value); - } - - [GeneratedComClass] - internal partial class IFloatImpl : IFloat - { - float _data; - public float Get() => _data; - public void Set(float value) => _data = value; - } - - [GeneratedComInterface] - [Guid("9FA4A8A9-3D8F-48A8-B6FB-B45B5F1B9FB6")] - internal partial interface IIntArray - { - [return: MarshalUsing(CountElementName = nameof(size))] - int[] Get(out int size); - int Get2([MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue)] out int[] array); - void Set([MarshalUsing(CountElementName = nameof(size))] int[] array, int size); - } - - [GeneratedComClass] - internal partial class IIntArrayImpl : IIntArray - { - int[] _data; - public int[] Get(out int size) - { - size = _data.Length; - return _data; - } - public int Get2(out int[] array) - { - array = _data; - return array.Length; - } - public void Set(int[] array, int size) - { - _data = array; - } - } - - [GeneratedComInterface] - [Guid("9FA4A8A9-3D8F-48A8-B6FB-B45B5F1B9FB6")] - internal partial interface IJaggedIntArray - { - [return: MarshalUsing(CountElementName = nameof(length)), - MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths))] - int[][] Get( - [MarshalUsing(CountElementName = nameof(length))] - out int[] widths, - out int length); - - int Get2( - [MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue), - MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths))] - out int[][] array, - [MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue)] - out int[] widths); - - void Set( - [MarshalUsing(CountElementName = nameof(length)), - MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths))] - int[][] array, - [MarshalUsing(CountElementName = nameof(length))] - int[] widths, - int length); - } - - [GeneratedComClass] - internal partial class IJaggedIntArrayImpl : IJaggedIntArray - { - int[][] _data = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5 }, new int[] { 6, 7, 8, 9 } }; - int[] _widths = new int[] { 3, 2, 4 }; - public int[][] Get(out int[] widths, out int length) - { - widths = _widths; - length = _data.Length; - return _data; - } - public int Get2(out int[][] array, out int[] widths) - { - array = _data; - widths = _widths; - return array.Length; - } - public void Set(int[][] array, int[] widths, int length) - { - _data = array; - _widths = widths; - } - } - - [CustomMarshaller(typeof(int), MarshalMode.ElementIn, typeof(ThrowOn4thElementMarshalled))] - [CustomMarshaller(typeof(int), MarshalMode.ElementOut, typeof(ThrowOn4thElementMarshalled))] - internal static class ThrowOn4thElementMarshalled - { - static int _marshalledCount = 0; - static int _unmarshalledCount = 0; - public static nint ConvertToUnmanaged(int managed) - { - if (_marshalledCount++ == 3) - { - _marshalledCount = 0; - throw new ArgumentException("The element was the 4th element (with 0-based index 3)"); - } - return managed; - } - - public static int ConvertToManaged(nint unmanaged) - { - if (_unmarshalledCount++ == 3) - { - _unmarshalledCount = 0; - throw new ArgumentException("The element was the 4th element (with 0-based index 3)"); - } - return (int)unmanaged; - } - } - - [GeneratedComInterface] - [Guid("A4857395-06FB-4A6E-81DB-35461BE999C5")] - internal partial interface ICollectionMarshallingFails - { - [return: MarshalUsing(ConstantElementCount = 10)] - [return: MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 1)] - public int[] Get(); - public void Set( - [MarshalUsing(ConstantElementCount = 10)] - [MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 1)] - int[] value); - } - - [GeneratedComClass] - public partial class ICollectionMarshallingFailsImpl : ICollectionMarshallingFails - { - int[] _data = new[] { 1, 2, 3 }; - public int[] Get() => _data; - public void Set(int[] value) => _data = value; - } - - [GeneratedComInterface] - [Guid("9FA4A8A9-3D8F-48A8-B6FB-B45B5F1B9FB6")] - internal partial interface IJaggedIntArrayMarshallingFails - { - [return: MarshalUsing(CountElementName = nameof(length)), - MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths)), - MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 2)] - int[][] Get( - [MarshalUsing(CountElementName = nameof(length))] - out int[] widths, - out int length); - - int Get2( - [MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue), - MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths)), - MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 2)] - out int[][] array, - [MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue)] - out int[] widths); - - void Set( - [MarshalUsing(CountElementName = nameof(length)), - MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths)), - MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 2)] - int[][] array, - [MarshalUsing(CountElementName = nameof(length))] - int[] widths, - int length); - } - - [GeneratedComClass] - internal partial class IJaggedIntArrayMarshallingFailsImpl : IJaggedIntArrayMarshallingFails - { - int[][] _data = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5 }, new int[] { 6, 7, 8, 9 } }; - int[] _widths = new int[] { 3, 2, 4 }; - public int[][] Get(out int[] widths, out int length) - { - widths = _widths; - length = _data.Length; - return _data; - } - public int Get2(out int[][] array, out int[] widths) - { - array = _data; - widths = _widths; - return array.Length; - } - public void Set(int[][] array, int[] widths, int length) - { - _data = array; - _widths = widths; - } - } - - [GeneratedComInterface] - [Guid("A4857398-06FB-4A6E-81DB-35461BE999C5")] - internal partial interface IInterface - { - public IInt Get(); - public void Set(IInt value); - } - - [GeneratedComClass] - public partial class IInterfaceImpl : IInterface - { - IInt _data = new IIntImpl(); - IInt IInterface.Get() => _data; - void IInterface.Set(IInt value) - { - int x = value.Get(); - value.Set(x); - _data = value; - } - } - } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/ConsoleApp1.csproj b/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/ConsoleApp1.csproj new file mode 100644 index 0000000000000..ef3fb15ee44e5 --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/ConsoleApp1.csproj @@ -0,0 +1,16 @@ + + + + Exe + net8.0 + enable + enable + true + + + + + + + + diff --git a/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/Program.cs b/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/Program.cs new file mode 100644 index 0000000000000..89572b88da0c5 --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/Program.cs @@ -0,0 +1,5 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +public static class Program +{ public static void Main() { } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/LibraryImportGenerator.Tests.csproj b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/LibraryImportGenerator.Tests.csproj index 9b91d1800dc39..62daeeb0d8a08 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/LibraryImportGenerator.Tests.csproj +++ b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/LibraryImportGenerator.Tests.csproj @@ -12,8 +12,7 @@ - + diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IBool.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IBool.cs new file mode 100644 index 0000000000000..4e71832850fef --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IBool.cs @@ -0,0 +1,26 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.Marshalling; + +namespace SharedTypes.ComInterfaces +{ + [GeneratedComInterface] + [Guid("5A9D3ED6-CC17-4FB9-8F82-0070489B7213")] + internal partial interface IBool + { + [return: MarshalAs(UnmanagedType.I1)] + bool Get(); + void Set([MarshalAs(UnmanagedType.I1)] bool value); + } + + [GeneratedComClass] + internal partial class IBoolImpl : IBool + { + bool _data; + public bool Get() => _data; + public void Set(bool value) => _data = value; + } +} diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IFloat.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IFloat.cs new file mode 100644 index 0000000000000..f63cbbb91ab1d --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IFloat.cs @@ -0,0 +1,25 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.Marshalling; + +namespace SharedTypes.ComInterfaces +{ + [GeneratedComInterface] + [Guid("9FA4A8A9-2D8F-48A8-B6FB-B44B5F1B9FB6")] + internal partial interface IFloat + { + float Get(); + void Set(float value); + } + + [GeneratedComClass] + internal partial class IFloatImpl : IFloat + { + float _data; + public float Get() => _data; + public void Set(float value) => _data = value; + } +} diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IInt.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IInt.cs new file mode 100644 index 0000000000000..e50344f3a268f --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IInt.cs @@ -0,0 +1,47 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.Marshalling; + +namespace SharedTypes.ComInterfaces +{ + [GeneratedComInterface] + [Guid("EE6D1F2A-3418-4317-A87C-35488F6546AB")] + internal partial interface IInt + { + public int Get(); + public void Set(int value); + public void SwapRef(ref int value); + public void GetOut(out int value); + public void SetIn(in int value); + } + + [GeneratedComClass] + internal partial class IIntImpl : IInt + { + int _data; + + public int Get() => _data; + + public void Set(int value) => _data = value; + + public void SetIn(in int value) + { + _data = value; + } + + public void GetOut(out int value) + { + value = _data; + } + + public void SwapRef(ref int value) + { + var tmp = _data; + _data = value; + value = tmp; + } + } +} diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IIntArray.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IIntArray.cs new file mode 100644 index 0000000000000..95d1e6d856d74 --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IIntArray.cs @@ -0,0 +1,39 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.Marshalling; + +namespace SharedTypes.ComInterfaces +{ + [GeneratedComInterface] + [Guid("9FA4A8A9-3D8F-48A8-B6FB-B45B5F1B9FB6")] + internal partial interface IIntArray + { + [return: MarshalUsing(CountElementName = nameof(size))] + int[] Get(out int size); + int Get2([MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue)] out int[] array); + void Set([MarshalUsing(CountElementName = nameof(size))] int[] array, int size); + } + + [GeneratedComClass] + internal partial class IIntArrayImpl : IIntArray + { + int[] _data; + public int[] Get(out int size) + { + size = _data.Length; + return _data; + } + public int Get2(out int[] array) + { + array = _data; + return array.Length; + } + public void Set(int[] array, int size) + { + _data = array; + } + } +} diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IInterface.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IInterface.cs new file mode 100644 index 0000000000000..95c6a13335b44 --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IInterface.cs @@ -0,0 +1,51 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.Marshalling; + +namespace SharedTypes.ComInterfaces +{ + [GeneratedComInterface] + [Guid("A4857398-06FB-4A6E-81DB-35461BE999C5")] + internal partial interface IInterface + { + public IInt Get(); + public void SetInt(IInt value); + public void SwapRef(ref IInt value); + public void GetOut(out IInt value); + public void InInt(in IInt value); + } + + [GeneratedComClass] + internal partial class IInterfaceImpl : IInterface + { + IInt _data = new IIntImpl(); + + IInt IInterface.Get() => _data; + + void IInterface.InInt(in IInt value) + { + var i = value.Get(); + } + + void IInterface.GetOut(out IInt value) + { + value = _data; + } + + void IInterface.SwapRef(ref IInt value) + { + var tmp = _data; + _data = value; + value = tmp; + } + + void IInterface.SetInt(IInt value) + { + int x = value.Get(); + value.Set(x); + } + } +} diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IJaggedIntArray.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IJaggedIntArray.cs new file mode 100644 index 0000000000000..c1153e377fc65 --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IJaggedIntArray.cs @@ -0,0 +1,60 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.Marshalling; + +namespace SharedTypes.ComInterfaces +{ + [GeneratedComInterface] + [Guid("9FA4A8A9-3D8F-48A8-B6FB-B45B5F1B9FB6")] + internal partial interface IJaggedIntArray + { + [return: MarshalUsing(CountElementName = nameof(length)), + MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths))] + int[][] Get( + [MarshalUsing(CountElementName = nameof(length))] + out int[] widths, + out int length); + + int Get2( + [MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue), + MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths))] + out int[][] array, + [MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue)] + out int[] widths); + + void Set( + [MarshalUsing(CountElementName = nameof(length)), + MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths))] + int[][] array, + [MarshalUsing(CountElementName = nameof(length))] + int[] widths, + int length); + } + + [GeneratedComClass] + internal partial class IJaggedIntArrayImpl : IJaggedIntArray + { + int[][] _data = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5 }, new int[] { 6, 7, 8, 9 } }; + int[] _widths = new int[] { 3, 2, 4 }; + public int[][] Get(out int[] widths, out int length) + { + widths = _widths; + length = _data.Length; + return _data; + } + public int Get2(out int[][] array, out int[] widths) + { + array = _data; + widths = _widths; + return array.Length; + } + public void Set(int[][] array, int[] widths, int length) + { + _data = array; + _widths = widths; + } + } +} diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ICollectionMarshallingFails.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ICollectionMarshallingFails.cs new file mode 100644 index 0000000000000..1122d3fa9b06d --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ICollectionMarshallingFails.cs @@ -0,0 +1,30 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.Marshalling; + +namespace SharedTypes.ComInterfaces.MarshallingFails +{ + [GeneratedComInterface] + [Guid("A4857395-06FB-4A6E-81DB-35461BE999C5")] + internal partial interface ICollectionMarshallingFails + { + [return: MarshalUsing(ConstantElementCount = 10)] + [return: MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 1)] + public int[] Get(); + public void Set( + [MarshalUsing(ConstantElementCount = 10)] + [MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 1)] + int[] value); + } + + [GeneratedComClass] + internal partial class ICollectionMarshallingFailsImpl : ICollectionMarshallingFails + { + int[] _data = new[] { 1, 2, 3 }; + public int[] Get() => _data; + public void Set(int[] value) => _data = value; + } +} diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/IJaggedIntArrayMarshallingFails.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/IJaggedIntArrayMarshallingFails.cs new file mode 100644 index 0000000000000..a0d8e964b8f93 --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/IJaggedIntArrayMarshallingFails.cs @@ -0,0 +1,63 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices; +using System.Runtime.InteropServices.Marshalling; + +namespace SharedTypes.ComInterfaces.MarshallingFails +{ + [GeneratedComInterface] + [Guid("9FA4A8A9-3D8F-48A8-B6FB-B45B5F1B9FB6")] + internal partial interface IJaggedIntArrayMarshallingFails + { + [return: MarshalUsing(CountElementName = nameof(length)), + MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths)), + MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 2)] + int[][] Get( + [MarshalUsing(CountElementName = nameof(length))] + out int[] widths, + out int length); + + int Get2( + [MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue), + MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths)), + MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 2)] + out int[][] array, + [MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue)] + out int[] widths); + + void Set( + [MarshalUsing(CountElementName = nameof(length)), + MarshalUsing(ElementIndirectionDepth = 1, CountElementName = nameof(widths)), + MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 2)] + int[][] array, + [MarshalUsing(CountElementName = nameof(length))] + int[] widths, + int length); + } + + [GeneratedComClass] + internal partial class IJaggedIntArrayMarshallingFailsImpl : IJaggedIntArrayMarshallingFails + { + int[][] _data = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5 }, new int[] { 6, 7, 8, 9 } }; + int[] _widths = new int[] { 3, 2, 4 }; + public int[][] Get(out int[] widths, out int length) + { + widths = _widths; + length = _data.Length; + return _data; + } + public int Get2(out int[][] array, out int[] widths) + { + array = _data; + widths = _widths; + return array.Length; + } + public void Set(int[][] array, int[] widths, int length) + { + _data = array; + _widths = widths; + } + } +} diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ThrowOn4thElementMarshalled.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ThrowOn4thElementMarshalled.cs new file mode 100644 index 0000000000000..6a9fe58c64713 --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ThrowOn4thElementMarshalled.cs @@ -0,0 +1,36 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Runtime.InteropServices.Marshalling; + +namespace SharedTypes.ComInterfaces.MarshallingFails +{ + [CustomMarshaller(typeof(int), MarshalMode.ElementIn, typeof(ThrowOn4thElementMarshalled))] + [CustomMarshaller(typeof(int), MarshalMode.ElementOut, typeof(ThrowOn4thElementMarshalled))] + internal static class ThrowOn4thElementMarshalled + { + static int _marshalledCount = 0; + static int _unmarshalledCount = 0; + public static nint ConvertToUnmanaged(int managed) + { + if (_marshalledCount++ == 3) + { + _marshalledCount = 0; + throw new ArgumentException("The element was the 4th element (with 0-based index 3)"); + } + return managed; + } + + public static int ConvertToManaged(nint unmanaged) + { + if (_unmarshalledCount++ == 3) + { + _unmarshalledCount = 0; + throw new ArgumentException("The element was the 4th element (with 0-based index 3)"); + } + return (int)unmanaged; + } + } + +} From 29a6bad302ebaadc3e8518ec59970cd7f85cc927 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Tue, 18 Jul 2023 15:49:56 -0700 Subject: [PATCH 14/20] PR feedback: rename _guid, be consistent in local vs property use --- .../GeneratedStatements.cs | 2 +- .../VariableDeclarations.cs | 43 ++++++++++--------- .../ComInterfaceGenerator/ArrayMarshalling.cs | 2 +- .../ComInterfaceGenerator/GetAndSetInt.cs | 9 +--- .../StringMarshalling.cs | 4 +- .../StringMarshallingOverride.cs | 6 +-- .../ICustomStringMarshallingUtf16.cs | 4 +- .../SharedTypes/ComInterfaces/IDerived.cs | 7 ++- .../SharedTypes/ComInterfaces/IEmpty.cs | 4 +- .../ComInterfaces/IGetAndSetInt.cs | 4 +- .../SharedTypes/ComInterfaces/IGetIntArray.cs | 4 +- .../SharedTypes/ComInterfaces/IRefStrings.cs | 4 +- .../IStringMarshallingOverride.cs | 8 +--- .../IStringMarshallingOverrideDerived.cs | 10 ++--- .../ComInterfaces/IUTF16Marshalling.cs | 4 +- .../ComInterfaces/IUTF8Marshalling.cs | 4 +- 16 files changed, 52 insertions(+), 67 deletions(-) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs index ee47964892e7d..f09ec7fe9d4fd 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs @@ -71,7 +71,7 @@ private static ImmutableArray GenerateStatementsForStubContext( ImmutableArray.Builder statementsToUpdate = ImmutableArray.CreateBuilder(); foreach (BoundGenerator marshaller in marshallers.SignatureMarshallers) { - var localContext = context; + StubCodeContext localContext = context; if (context.CurrentStage is StubCodeContext.Stage.Marshal && MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs index 25efc1c7fc45c..f9c9542ed8c21 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs @@ -53,22 +53,23 @@ public static VariableDeclarations GenerateDeclarationsForManagedToUnmanaged(Bou static void AppendVariableDeclarations(ImmutableArray.Builder statementsToUpdate, BoundGenerator marshaller, StubCodeContext context, bool initializeToDefault) { - (string managed, string native) = context.GetIdentifiers(marshaller.TypeInfo); + TypePositionInfo info = marshaller.TypeInfo; + (string managed, string native) = context.GetIdentifiers(info); // Declare variable for return value - if (marshaller.TypeInfo.IsManagedReturnPosition || marshaller.TypeInfo.IsNativeReturnPosition) + if (info.IsManagedReturnPosition || info.IsNativeReturnPosition) { statementsToUpdate.Add(MarshallerHelpers.Declare( - marshaller.TypeInfo.ManagedType.Syntax, + info.ManagedType.Syntax, managed, initializeToDefault)); } // Declare variable with native type for parameter or return value - if (marshaller.Generator.UsesNativeIdentifier(marshaller.TypeInfo, context)) + if (marshaller.Generator.UsesNativeIdentifier(info, context)) { statementsToUpdate.Add(MarshallerHelpers.Declare( - marshaller.Generator.AsNativeType(marshaller.TypeInfo).Syntax, + marshaller.Generator.AsNativeType(info).Syntax, native, initializeToDefault)); } @@ -95,11 +96,11 @@ public static VariableDeclarations GenerateDeclarationsForUnmanagedToManaged(Bou { // We need to use the 'out' value - This should be removed once the ownership behavior is fixed var boundaryBehavior = marshaller.Generator.GetValueBoundaryBehavior(info, context); - if (marshaller.Generator.UsesNativeIdentifier(marshaller.TypeInfo, context) + if (marshaller.Generator.UsesNativeIdentifier(info, context) && boundaryBehavior is not (ValueBoundaryBehavior.NativeIdentifier or ValueBoundaryBehavior.CastNativeIdentifier)) { - if (MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) + if (MarshallerHelpers.MarshalsOutToLocal(info, context)) { string outlocal = context.GetAdditionalIdentifier(info, "out"); initializations.Add(MarshallerHelpers.CreateDiscardStatement(outlocal)); @@ -117,11 +118,11 @@ public static VariableDeclarations GenerateDeclarationsForUnmanagedToManaged(Bou var info = marshaller.TypeInfo; // We need to use the 'out' value - This should be removed once the ownership behavior is fixed var boundaryBehavior = marshaller.Generator.GetValueBoundaryBehavior(info, context); - if (marshaller.Generator.UsesNativeIdentifier(marshaller.TypeInfo, context) + if (marshaller.Generator.UsesNativeIdentifier(info, context) && boundaryBehavior is not (ValueBoundaryBehavior.NativeIdentifier or ValueBoundaryBehavior.CastNativeIdentifier)) { - if (MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) + if (MarshallerHelpers.MarshalsOutToLocal(info, context)) { string outlocal = context.GetAdditionalIdentifier(info, "out"); initializations.Add(MarshallerHelpers.CreateDiscardStatement(outlocal)); @@ -144,41 +145,41 @@ public static VariableDeclarations GenerateDeclarationsForUnmanagedToManaged(Bou static void AppendVariableDeclarations(ImmutableArray.Builder statementsToUpdate, BoundGenerator marshaller, StubCodeContext context, bool initializeToDefault) { - (string managed, string native) = context.GetIdentifiers(marshaller.TypeInfo); - var info = marshaller.TypeInfo; + (string managed, string native) = context.GetIdentifiers(info); + // Declare variable for return value - if (marshaller.TypeInfo.IsNativeReturnPosition) + if (info.IsNativeReturnPosition) { - bool nativeReturnUsesNativeIdentifier = marshaller.Generator.UsesNativeIdentifier(marshaller.TypeInfo, context); + bool nativeReturnUsesNativeIdentifier = marshaller.Generator.UsesNativeIdentifier(info, context); // Always initialize the return value. statementsToUpdate.Add(MarshallerHelpers.Declare( - marshaller.TypeInfo.ManagedType.Syntax, + info.ManagedType.Syntax, managed, initializeToDefault || !nativeReturnUsesNativeIdentifier)); if (nativeReturnUsesNativeIdentifier) { statementsToUpdate.Add(MarshallerHelpers.Declare( - marshaller.Generator.AsNativeType(marshaller.TypeInfo).Syntax, + marshaller.Generator.AsNativeType(info).Syntax, native, initializeToDefault: true)); } } else { - ValueBoundaryBehavior boundaryBehavior = marshaller.Generator.GetValueBoundaryBehavior(marshaller.TypeInfo, context); + ValueBoundaryBehavior boundaryBehavior = marshaller.Generator.GetValueBoundaryBehavior(info, context); // Declare variable with native type for parameter // if the marshaller uses the native identifier and the signature uses a different identifier // than the native identifier. - if (marshaller.Generator.UsesNativeIdentifier(marshaller.TypeInfo, context) + if (marshaller.Generator.UsesNativeIdentifier(info, context) && boundaryBehavior is not (ValueBoundaryBehavior.NativeIdentifier or ValueBoundaryBehavior.CastNativeIdentifier)) { - TypeSyntax localType = marshaller.Generator.AsNativeType(marshaller.TypeInfo).Syntax; - if (MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) + TypeSyntax localType = marshaller.Generator.AsNativeType(info).Syntax; + if (MarshallerHelpers.MarshalsOutToLocal(info, context)) { string outlocal = context.GetAdditionalIdentifier(info, "out"); // __param_native_out; @@ -197,14 +198,14 @@ static void AppendVariableDeclarations(ImmutableArrayIID = new Guid(IGetIntArray._guid); + comInterfaceEntry->IID = new Guid(IGetIntArray.IID); comInterfaceEntry->Vtable = (nint)GetIntArrayVTable; count = 1; return comInterfaceEntry; diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/GetAndSetInt.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/GetAndSetInt.cs index 66faa8c577e7c..c9a149e12798c 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/GetAndSetInt.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/GetAndSetInt.cs @@ -3,15 +3,8 @@ using System; using System.Collections; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; -using System.Runtime.InteropServices.Marshalling; -using System.Runtime.InteropServices.ObjectiveC; -using System.Text; -using System.Threading.Tasks; using SharedTypes.ComInterfaces; using static System.Runtime.InteropServices.ComWrappers; @@ -55,7 +48,7 @@ static void* s_comInterface1VTable if (obj is ImplementingObject) { ComInterfaceEntry* comInterfaceEntry = (ComInterfaceEntry*)RuntimeHelpers.AllocateTypeAssociatedMemory(typeof(ImplementingObject), sizeof(ComInterfaceEntry)); - comInterfaceEntry->IID = new Guid(IGetAndSetInt._guid); + comInterfaceEntry->IID = new Guid(IGetAndSetInt.IID); comInterfaceEntry->Vtable = (nint)s_comInterface1VTable; count = 1; return comInterfaceEntry; diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/StringMarshalling.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/StringMarshalling.cs index 9059f53c4cc8a..06c52cfa5000a 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/StringMarshalling.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/StringMarshalling.cs @@ -81,7 +81,7 @@ static void* S_Utf16VTable if (obj is IUTF8Marshalling) { ComInterfaceEntry* comInterfaceEntry = (ComInterfaceEntry*)RuntimeHelpers.AllocateTypeAssociatedMemory(typeof(Utf8Implementation), sizeof(ComInterfaceEntry)); - comInterfaceEntry->IID = new Guid(IUTF8Marshalling._guid); + comInterfaceEntry->IID = new Guid(IUTF8Marshalling.IID); comInterfaceEntry->Vtable = (nint)S_Utf8VTable; count = 1; return comInterfaceEntry; @@ -89,7 +89,7 @@ static void* S_Utf16VTable else if (obj is IUTF16Marshalling) { ComInterfaceEntry* comInterfaceEntry = (ComInterfaceEntry*)RuntimeHelpers.AllocateTypeAssociatedMemory(typeof(Utf16Implementation), sizeof(ComInterfaceEntry)); - comInterfaceEntry->IID = new Guid(IUTF16Marshalling._guid); + comInterfaceEntry->IID = new Guid(IUTF16Marshalling.IID); comInterfaceEntry->Vtable = (nint)S_Utf16VTable; count = 1; return comInterfaceEntry; diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/StringMarshallingOverride.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/StringMarshallingOverride.cs index df01a1045700b..8d5c14fa96c2c 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/StringMarshallingOverride.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/NativeExports/ComInterfaceGenerator/StringMarshallingOverride.cs @@ -76,9 +76,9 @@ static void* S_DerivedVTable if (obj is IStringMarshallingOverrideDerived) { ComInterfaceEntry* comInterfaceEntry = (ComInterfaceEntry*)RuntimeHelpers.AllocateTypeAssociatedMemory(typeof(Implementation), sizeof(ComInterfaceEntry) * 2); - comInterfaceEntry[0].IID = new Guid(IStringMarshallingOverrideDerived._guid); + comInterfaceEntry[0].IID = new Guid(IStringMarshallingOverrideDerived.IID); comInterfaceEntry[0].Vtable = (nint)S_DerivedVTable; - comInterfaceEntry[1].IID = new Guid(IStringMarshallingOverride._guid); + comInterfaceEntry[1].IID = new Guid(IStringMarshallingOverride.IID); comInterfaceEntry[1].Vtable = (nint)S_VTable; count = 2; return comInterfaceEntry; @@ -86,7 +86,7 @@ static void* S_DerivedVTable if (obj is IStringMarshallingOverride) { ComInterfaceEntry* comInterfaceEntry = (ComInterfaceEntry*)RuntimeHelpers.AllocateTypeAssociatedMemory(typeof(Implementation), sizeof(ComInterfaceEntry)); - comInterfaceEntry->IID = new Guid(IStringMarshallingOverride._guid); + comInterfaceEntry->IID = new Guid(IStringMarshallingOverride.IID); comInterfaceEntry->Vtable = (nint)S_VTable; count = 1; return comInterfaceEntry; diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/ICustomStringMarshallingUtf16.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/ICustomStringMarshallingUtf16.cs index d792b62d6d5a9..7a1c97a7b3730 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/ICustomStringMarshallingUtf16.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/ICustomStringMarshallingUtf16.cs @@ -7,7 +7,7 @@ namespace SharedTypes.ComInterfaces { - [Guid(_guid)] + [Guid(IID)] [GeneratedComInterface(StringMarshalling = StringMarshalling.Custom, StringMarshallingCustomType = typeof(Utf16StringMarshaller))] internal partial interface ICustomStringMarshallingUtf16 { @@ -15,6 +15,6 @@ internal partial interface ICustomStringMarshallingUtf16 public void SetString(string value); - public const string _guid = "E11D5F3E-DD57-41A6-A59E-7D110551A760"; + public const string IID = "E11D5F3E-DD57-41A6-A59E-7D110551A760"; } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IDerived.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IDerived.cs index 54669fa6c380e..f6cd4ff8afc55 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IDerived.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IDerived.cs @@ -2,22 +2,21 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Collections.Generic; using System.Runtime.InteropServices; using System.Runtime.InteropServices.Marshalling; namespace SharedTypes.ComInterfaces { [GeneratedComInterface] - [Guid(_guid)] + [Guid(IID)] internal partial interface IDerived : IGetAndSetInt { void SetName([MarshalUsing(typeof(Utf16StringMarshaller))] string name); - [return:MarshalUsing(typeof(Utf16StringMarshaller))] + [return: MarshalUsing(typeof(Utf16StringMarshaller))] string GetName(); - internal new const string _guid = "7F0DB364-3C04-4487-9193-4BB05DC7B654"; + internal new const string IID = "7F0DB364-3C04-4487-9193-4BB05DC7B654"; } [GeneratedComClass] diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IEmpty.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IEmpty.cs index e586a04573c9f..86af99aa4ff72 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IEmpty.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IEmpty.cs @@ -8,9 +8,9 @@ namespace SharedTypes.ComInterfaces { [GeneratedComInterface] - [Guid(_guid)] + [Guid(IID)] internal partial interface IEmpty { - public const string _guid = "95D19F50-F2D8-4E61-884B-0A9162EA4646"; + public const string IID = "95D19F50-F2D8-4E61-884B-0A9162EA4646"; } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IGetAndSetInt.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IGetAndSetInt.cs index 54e7fb896bf94..3f1b18f34e9be 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IGetAndSetInt.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IGetAndSetInt.cs @@ -8,14 +8,14 @@ namespace SharedTypes.ComInterfaces { [GeneratedComInterface] - [Guid(_guid)] + [Guid(IID)] internal partial interface IGetAndSetInt { int GetInt(); public void SetInt(int x); - public const string _guid = "2c3f9903-b586-46b1-881b-adfce9af47b1"; + public const string IID = "2c3f9903-b586-46b1-881b-adfce9af47b1"; } [GeneratedComClass] internal partial class GetAndSetInt : IGetAndSetInt diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IGetIntArray.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IGetIntArray.cs index b70de07d1596b..f2283708678df 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IGetIntArray.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IGetIntArray.cs @@ -8,12 +8,12 @@ namespace SharedTypes.ComInterfaces { [GeneratedComInterface] - [Guid(_guid)] + [Guid(IID)] internal partial interface IGetIntArray { [return: MarshalUsing(ConstantElementCount = 10)] int[] GetInts(); - public const string _guid = "7D802A0A-630A-4C8E-A21F-771CC9031FB9"; + public const string IID = "7D802A0A-630A-4C8E-A21F-771CC9031FB9"; } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IRefStrings.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IRefStrings.cs index d0330e01600da..3a86b74a70b5c 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IRefStrings.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IRefStrings.cs @@ -7,10 +7,10 @@ namespace SharedTypes.ComInterfaces { [GeneratedComInterface(StringMarshalling = System.Runtime.InteropServices.StringMarshalling.Utf8)] - [Guid(_guid)] + [Guid(IID)] internal partial interface IRefStrings { - public const string _guid = "5146B7DB-0588-469B-B8E5-B38090A2FC15"; + public const string IID = "5146B7DB-0588-469B-B8E5-B38090A2FC15"; void RefString(ref string value); void InString(in string value); void OutString(out string value); diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IStringMarshallingOverride.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IStringMarshallingOverride.cs index cd7c8f620dc93..df956009fce8b 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IStringMarshallingOverride.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IStringMarshallingOverride.cs @@ -2,20 +2,16 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Collections.Generic; -using System.Linq; using System.Runtime.InteropServices; using System.Runtime.InteropServices.Marshalling; -using System.Text; -using System.Threading.Tasks; namespace SharedTypes.ComInterfaces { [GeneratedComInterface(StringMarshalling = System.Runtime.InteropServices.StringMarshalling.Utf8)] - [Guid(_guid)] + [Guid(IID)] internal partial interface IStringMarshallingOverride { - public const string _guid = "5146B7DB-0588-469B-B8E5-B38090A2FC15"; + public const string IID = "5146B7DB-0588-469B-B8E5-B38090A2FC15"; string StringMarshallingUtf8(string input); [return: MarshalAs(UnmanagedType.LPWStr)] diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IStringMarshallingOverrideDerived.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IStringMarshallingOverrideDerived.cs index 079db461a66bd..5022d42d13930 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IStringMarshallingOverrideDerived.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IStringMarshallingOverrideDerived.cs @@ -2,20 +2,16 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.InteropServices.Marshalling; using System.Runtime.InteropServices; -using System.Text; -using System.Threading.Tasks; +using System.Runtime.InteropServices.Marshalling; namespace SharedTypes.ComInterfaces { [GeneratedComInterface(StringMarshalling = StringMarshalling.Utf8)] - [Guid(_guid)] + [Guid(IID)] internal partial interface IStringMarshallingOverrideDerived : IStringMarshallingOverride { - public new const string _guid = "3AFFE3FD-D11E-4195-8250-0C73321977A0"; + public new const string IID = "3AFFE3FD-D11E-4195-8250-0C73321977A0"; string StringMarshallingUtf8_2(string input); [return: MarshalAs(UnmanagedType.LPWStr)] diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IUTF16Marshalling.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IUTF16Marshalling.cs index 2ef5534aa6b23..1c123065a2ec1 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IUTF16Marshalling.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IUTF16Marshalling.cs @@ -7,7 +7,7 @@ namespace SharedTypes.ComInterfaces { - [Guid(_guid)] + [Guid(IID)] [GeneratedComInterface(StringMarshalling = StringMarshalling.Utf16)] internal partial interface IUTF16Marshalling { @@ -15,6 +15,6 @@ internal partial interface IUTF16Marshalling public void SetString(string value); - public const string _guid = "E11D5F3E-DD57-41A6-A59E-7D110551A760"; + public const string IID = "E11D5F3E-DD57-41A6-A59E-7D110551A760"; } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IUTF8Marshalling.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IUTF8Marshalling.cs index 2689425abd506..08dbbdd5e6892 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IUTF8Marshalling.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IUTF8Marshalling.cs @@ -7,7 +7,7 @@ namespace SharedTypes.ComInterfaces { - [Guid(_guid)] + [Guid(IID)] [GeneratedComInterface(StringMarshalling = StringMarshalling.Utf8)] internal partial interface IUTF8Marshalling { @@ -15,6 +15,6 @@ internal partial interface IUTF8Marshalling public void SetString(string value); - public const string _guid = "E11D5F3E-DD57-41A6-A59E-7D110551A760"; + public const string IID = "E11D5F3E-DD57-41A6-A59E-7D110551A760"; } } From 1627cc916d6eac6cc2158b7f4171e7ed873177a7 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Tue, 18 Jul 2023 16:34:37 -0700 Subject: [PATCH 15/20] Remove temp test project --- .../GeneratedStatements.cs | 8 +++++++- .../StubCodeContext.cs | 9 +++++++-- .../tests/ConsoleApp1/ConsoleApp1.csproj | 16 ---------------- .../tests/ConsoleApp1/Program.cs | 5 ----- 4 files changed, 14 insertions(+), 24 deletions(-) delete mode 100644 src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/ConsoleApp1.csproj delete mode 100644 src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/Program.cs diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs index f09ec7fe9d4fd..e39aad7c5b26d 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs @@ -22,6 +22,7 @@ public struct GeneratedStatements public ImmutableArray NotifyForSuccessfulInvoke { get; init; } public ImmutableArray GuaranteedUnmarshal { get; init; } public ImmutableArray Cleanup { get; init; } + public ImmutableArray AssignOut { get; init; } public ImmutableArray ManagedExceptionCatchClauses { get; init; } @@ -39,7 +40,8 @@ public static GeneratedStatements Create(BoundGenerators marshallers, StubCodeCo NotifyForSuccessfulInvoke = GenerateStatementsForStubContext(marshallers, context with { CurrentStage = StubCodeContext.Stage.NotifyForSuccessfulInvoke }), GuaranteedUnmarshal = GenerateStatementsForStubContext(marshallers, context with { CurrentStage = StubCodeContext.Stage.GuaranteedUnmarshal }), Cleanup = GenerateStatementsForStubContext(marshallers, context with { CurrentStage = StubCodeContext.Stage.Cleanup }), - ManagedExceptionCatchClauses = GenerateCatchClauseForManagedException(marshallers, context) + ManagedExceptionCatchClauses = GenerateCatchClauseForManagedException(marshallers, context), + AssignOut = GenerateStatementsForStubContext(marshallers, context with { CurrentStage = StubCodeContext.Stage.AssignOut }) }; } public static GeneratedStatements Create(BoundGenerators marshallers, StubCodeContext context, ExpressionSyntax expressionToInvoke) @@ -170,6 +172,10 @@ private static ImmutableArray GenerateCatchClauseForManagedEx catchClauseBuilder.AddRange( managedExceptionMarshaller.Generator.Generate( managedExceptionMarshaller.TypeInfo, context with { CurrentStage = StubCodeContext.Stage.PinnedMarshal })); + if (!marshallers.IsUnmanagedVoidReturn) + { + catchClauseBuilder.Add(ReturnStatement(IdentifierName(context.GetIdentifiers(marshallers.NativeReturnMarshaller.TypeInfo).native))); + } return ImmutableArray.Create( CatchClause( CatchDeclaration(ParseTypeName(TypeNames.System_Exception), Identifier(managed)), diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs index 35e07f1f7dc47..5e530d26a337f 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/StubCodeContext.cs @@ -2,7 +2,6 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Collections.Generic; namespace Microsoft.Interop { @@ -72,7 +71,13 @@ public enum Stage /// Convert native data to managed data even in the case of an exception during /// the non-cleanup phases. /// - GuaranteedUnmarshal + GuaranteedUnmarshal, + + /// + /// In scenarios where necessary (unmanaged to managed stubs), assign marshalled values out to the parameters. + /// Separating this from ensures parameters remain unmodified when the method returns a failing return value. + /// + AssignOut } /// diff --git a/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/ConsoleApp1.csproj b/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/ConsoleApp1.csproj deleted file mode 100644 index ef3fb15ee44e5..0000000000000 --- a/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/ConsoleApp1.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - Exe - net8.0 - enable - enable - true - - - - - - - - diff --git a/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/Program.cs b/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/Program.cs deleted file mode 100644 index 89572b88da0c5..0000000000000 --- a/src/libraries/System.Runtime.InteropServices/tests/ConsoleApp1/Program.cs +++ /dev/null @@ -1,5 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public static class Program -{ public static void Main() { } } From c25b5d79b47b7002e6ce0877ac75f5a8f93bde00 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Wed, 19 Jul 2023 14:22:10 -0700 Subject: [PATCH 16/20] wip --- .../System.Runtime.InteropServices.sln | 33 ------------- .../ManagedToNativeVTableMethodGenerator.cs | 2 + .../ComInterfaceDispatchMarshallerFactory.cs | 11 ++++- .../UnmanagedToManagedStubGenerator.cs | 2 + .../PInvokeStubCodeGenerator.cs | 2 + .../GeneratedStatements.cs | 11 ++++- ...CustomTypeMarshallingStrategyExtensions.cs | 22 +++++++++ .../Marshalling/AssignOutContext.cs | 35 ++++++++++++++ ...ributedMarshallingModelGeneratorFactory.cs | 48 +++++++++---------- .../Marshalling/BlittableMarshaller.cs | 4 ++ .../Marshalling/BoolMarshaller.cs | 4 ++ .../Marshalling/CharMarshaller.cs | 4 ++ .../CustomTypeMarshallingGenerator.cs | 4 ++ .../Marshalling/DelegateMarshaller.cs | 4 ++ .../Marshalling/ElementsMarshalling.cs | 32 +++++++++++++ .../ICustomTypeMarshallingStrategy.cs | 2 + .../Marshalling/MarshalToLocalContext.cs | 4 +- .../Marshalling/MarshallerHelpers.cs | 13 ++++- .../MarshallingGeneratorExtensions.cs | 20 +++++++- .../StatefulMarshallingStrategy.cs | 20 ++++++++ .../StatelessMarshallingStrategy.cs | 28 +++++++++++ ...nagedToManagedOwnershipTrackingStrategy.cs | 4 +- .../VariableDeclarations.cs | 3 +- 23 files changed, 244 insertions(+), 68 deletions(-) create mode 100644 src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ICustomTypeMarshallingStrategyExtensions.cs create mode 100644 src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AssignOutContext.cs diff --git a/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln b/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln index c37613e590baa..1bf3d501dabe4 100644 --- a/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln +++ b/src/libraries/System.Runtime.InteropServices/System.Runtime.InteropServices.sln @@ -65,8 +65,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{D893B9AA-57C EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gen", "gen", "{E1AEBD5D-AE4E-4F61-B9ED-AEF950B0CC33}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "tests\ConsoleApp1\ConsoleApp1.csproj", "{262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Checked|Any CPU = Checked|Any CPU @@ -662,36 +660,6 @@ Global {C9B349C8-7B11-4DE4-A4BB-8D957A1D2A82}.Release|x64.Build.0 = Release|Any CPU {C9B349C8-7B11-4DE4-A4BB-8D957A1D2A82}.Release|x86.ActiveCfg = Release|Any CPU {C9B349C8-7B11-4DE4-A4BB-8D957A1D2A82}.Release|x86.Build.0 = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|Any CPU.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|Any CPU.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|arm.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|arm.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|arm64.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|arm64.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|x64.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|x64.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|x86.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Checked|x86.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|arm.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|arm.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|arm64.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|arm64.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|x64.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|x64.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|x86.ActiveCfg = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Debug|x86.Build.0 = Debug|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|Any CPU.Build.0 = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|arm.ActiveCfg = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|arm.Build.0 = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|arm64.ActiveCfg = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|arm64.Build.0 = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|x64.ActiveCfg = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|x64.Build.0 = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|x86.ActiveCfg = Release|Any CPU - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -724,7 +692,6 @@ Global {0B5FD0C2-367D-4AD6-8001-80AD79B2441C} = {D893B9AA-57C5-49E3-97B1-12CC62D84307} {C7DAC270-CC93-4C97-9A8D-6E724A10727D} = {D893B9AA-57C5-49E3-97B1-12CC62D84307} {C9B349C8-7B11-4DE4-A4BB-8D957A1D2A82} = {B1678CCD-95C8-4419-B9F9-14A03061BE4B} - {262049A4-5DE8-4F53-AF4C-EDD286C4ACE2} = {FB99AC59-1744-4F12-A4B0-0D54FCA048BF} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {D4031401-FEB5-4CCF-91C1-38F5646B2BFD} diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs index 5acdc3072a225..b6fda2925d4d1 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/ManagedToNativeVTableMethodGenerator.cs @@ -220,6 +220,8 @@ public BlockSyntax GenerateStubBody(int index, ImmutableArray IsFunctionPointer: false); public IEnumerable Generate(TypePositionInfo info, StubCodeContext context) { + if (context.CurrentStage == StubCodeContext.Stage.AssignOut) + { + var assignOut = this.GeneratePointerAssignOut(info, context); + if (assignOut != null) + { + yield return assignOut; + } + yield break; + } + if (context.CurrentStage != StubCodeContext.Stage.Unmarshal) { yield break; } var (managed, native) = context.GetIdentifiers(info); - // = ComWrappers.ComInterfaceDispatch.GetInstance<>(); yield return ExpressionStatement( AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs index ad5ab36536f95..207778e1c206b 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs @@ -110,6 +110,8 @@ public BlockSyntax GenerateStubBody(ExpressionSyntax methodToInvoke) allStatements.AddRange(tryStatements); } + allStatements.AddRange(statements.AssignOut); + // Return if (!_marshallers.IsUnmanagedVoidReturn) allStatements.Add(ReturnStatement(IdentifierName(_context.GetIdentifiers(_marshallers.NativeReturnMarshaller.TypeInfo).native))); diff --git a/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/PInvokeStubCodeGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/PInvokeStubCodeGenerator.cs index 34d09a70a66e6..49472dc7d5bb8 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/PInvokeStubCodeGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/LibraryImportGenerator/PInvokeStubCodeGenerator.cs @@ -183,6 +183,8 @@ public BlockSyntax GeneratePInvokeBody(string dllImportName) allStatements.Add(MarshallerHelpers.CreateSetLastPInvokeErrorStatement(LastErrorIdentifier)); } + allStatements.AddRange(statements.AssignOut); + // Return if (!_marshallers.IsManagedVoidReturn) allStatements.Add(ReturnStatement(IdentifierName(_context.GetIdentifiers(_marshallers.ManagedReturnMarshaller.TypeInfo).managed))); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs index e39aad7c5b26d..1fa8cfb69239c 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs @@ -74,11 +74,19 @@ private static ImmutableArray GenerateStatementsForStubContext( foreach (BoundGenerator marshaller in marshallers.SignatureMarshallers) { StubCodeContext localContext = context; - if (context.CurrentStage is StubCodeContext.Stage.Marshal + if (context.CurrentStage is StubCodeContext.Stage.Marshal or StubCodeContext.Stage.AssignOut && MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) { localContext = new MarshalToLocalContext(context); } + // Right now, MarshalsOutToLocal is the only way we determine if we assign out, so we can return early here for perf + if (context.CurrentStage is StubCodeContext.Stage.AssignOut) + { + if (!MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) + continue; + else + localContext = new AssignOutContext(localContext, marshaller.Generator.AsParameter(marshaller.TypeInfo, context).Identifier.ToString()); + } statementsToUpdate.AddRange(marshaller.Generator.Generate(marshaller.TypeInfo, localContext)); } @@ -197,6 +205,7 @@ private static SyntaxTriviaList GenerateStageTrivia(StubCodeContext.Stage stage) StubCodeContext.Stage.Cleanup => "Perform required cleanup.", StubCodeContext.Stage.NotifyForSuccessfulInvoke => "Keep alive any managed objects that need to stay alive across the call.", StubCodeContext.Stage.GuaranteedUnmarshal => "Convert native data to managed data even in the case of an exception during the non-cleanup phases.", + StubCodeContext.Stage.AssignOut => "Assign to parameters", _ => throw new ArgumentOutOfRangeException(nameof(stage)) }; diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ICustomTypeMarshallingStrategyExtensions.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ICustomTypeMarshallingStrategyExtensions.cs new file mode 100644 index 0000000000000..2ef46a79fee5c --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/ICustomTypeMarshallingStrategyExtensions.cs @@ -0,0 +1,22 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Collections.Generic; +using System.Collections.Immutable; +using Microsoft.CodeAnalysis.CSharp.Syntax; + +namespace Microsoft.Interop +{ + internal static class ICustomTypeMarshallingStrategyExtensions + { + public static IEnumerable GenerateDefaultAssignOutStatement(this ICustomTypeMarshallingStrategy _, TypePositionInfo info, AssignOutContext context) + { + if (MarshallerHelpers.MarshalsOutToLocal(info, context)) + { + var (_, native) = context.GetIdentifiers(info); + return ImmutableArray.Create(MarshallerHelpers.GenerateAssignmentToPointerValue(context.ParameterIdentifier, native)); + } + return ImmutableArray.Empty; + } + } +} diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AssignOutContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AssignOutContext.cs new file mode 100644 index 0000000000000..e9b75d53fb508 --- /dev/null +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AssignOutContext.cs @@ -0,0 +1,35 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Diagnostics; + +namespace Microsoft.Interop +{ + public sealed record AssignOutContext : StubCodeContext + { + internal StubCodeContext InnerContext { get; init; } + public string ParameterIdentifier { get; init; } + + internal AssignOutContext(StubCodeContext inner, string parameterIdentifier) + { + InnerContext = inner; + Debug.Assert(inner.CurrentStage == Stage.AssignOut); + CurrentStage = Stage.AssignOut; + Direction = inner.Direction; + ParentContext = inner.ParentContext; + ParameterIdentifier = parameterIdentifier; + } + + public override (TargetFramework framework, Version version) GetTargetFramework() => InnerContext.GetTargetFramework(); + + public override bool SingleFrameSpansNativeContext => InnerContext.SingleFrameSpansNativeContext; + + public override bool AdditionalTemporaryStateLivesAcrossStages => InnerContext.AdditionalTemporaryStateLivesAcrossStages; + + public override (string managed, string native) GetIdentifiers(TypePositionInfo info) + => (InnerContext.GetIdentifiers(info).managed, InnerContext.GetAdditionalIdentifier(info, "out")); + + public override string GetAdditionalIdentifier(TypePositionInfo info, string name) => InnerContext.GetAdditionalIdentifier(info, name); + } +} diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs index 73b8cd8eb901a..75660f3ccb9fd 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs @@ -278,20 +278,20 @@ private ResolvedGenerator CreateCustomNativeTypeMarshaller(TypePositionInfo info FreeStrategy freeStrategy = GetFreeStrategy(info, context); - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); + //} if (freeStrategy != FreeStrategy.NoFree && marshallerData.Shape.HasFlag(MarshallerShape.Free)) { marshallingStrategy = new StatelessFreeMarshalling(marshallingStrategy, marshallerData.MarshallerType.Syntax); } - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); + //} } IMarshallingGenerator marshallingGenerator = new CustomTypeMarshallingGenerator(marshallingStrategy, ByValueMarshalKindSupportDescriptor.Default, marshallerData.Shape.HasFlag(MarshallerShape.StatelessPinnableReference)); @@ -373,17 +373,17 @@ private ResolvedGenerator CreateNativeCollectionMarshaller( IElementsMarshallingCollectionSource collectionSource = new StatefulLinearCollectionSource(); ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource); - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); + //} marshallingStrategy = new StatefulLinearCollectionMarshalling(marshallingStrategy, marshallerData.Shape, numElementsExpression, elementsMarshalling, freeStrategy != FreeStrategy.NoFree); - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); + //} if (marshallerData.Shape.HasFlag(MarshallerShape.Free)) { @@ -397,10 +397,10 @@ private ResolvedGenerator CreateNativeCollectionMarshaller( var freeStrategy = GetFreeStrategy(info, context); IElementsMarshallingCollectionSource collectionSource = new StatelessLinearCollectionSource(marshallerTypeSyntax); - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); + //} ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource); @@ -420,10 +420,10 @@ private ResolvedGenerator CreateNativeCollectionMarshaller( marshallingStrategy = new StatelessFreeMarshalling(marshallingStrategy, marshallerTypeSyntax); } - if (freeStrategy == FreeStrategy.FreeOriginal) - { - marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); - } + //if (freeStrategy == FreeStrategy.FreeOriginal) + //{ + // marshallingStrategy = new CleanupOwnedOriginalValueMarshalling(marshallingStrategy); + //} } ByValueMarshalKindSupportDescriptor byValueMarshalKindSupport; diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs index ef2542dd87bc8..21801905d784b 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BlittableMarshaller.cs @@ -91,6 +91,10 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont IdentifierName(nativeIdentifier))); } break; + case StubCodeContext.Stage.AssignOut: + if (this.GeneratePointerAssignOut(info, context) is { } assignOut) + yield return assignOut; + break; default: break; } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BoolMarshaller.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BoolMarshaller.cs index a86df409e84a7..7fe4201812f77 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BoolMarshaller.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/BoolMarshaller.cs @@ -92,6 +92,10 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont LiteralExpression(SyntaxKind.NumericLiteralExpression, Literal(comparand))))); } break; + case StubCodeContext.Stage.AssignOut: + if (this.GeneratePointerAssignOut(info, context) is { } assignOut) + yield return assignOut; + break; default: break; } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CharMarshaller.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CharMarshaller.cs index 8eb7825c53604..a8e1927e32307 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CharMarshaller.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CharMarshaller.cs @@ -117,6 +117,10 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont } break; + case StubCodeContext.Stage.AssignOut: + if (this.GeneratePointerAssignOut(info, context) is { } assignOut) + yield return assignOut; + break; default: break; } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs index 7873781e475df..0aec527d810fb 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using Microsoft.CodeAnalysis.CSharp.Syntax; namespace Microsoft.Interop @@ -99,6 +100,9 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont break; case StubCodeContext.Stage.Cleanup: return _nativeTypeMarshaller.GenerateCleanupStatements(info, context); + case StubCodeContext.Stage.AssignOut: + Debug.Assert(MarshallerHelpers.MarshalsOutToLocal(info, context)); + return _nativeTypeMarshaller.GenerateAssignOutStatements(info, (AssignOutContext)context); default: break; } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/DelegateMarshaller.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/DelegateMarshaller.cs index 3f8631a3d4ab2..d58a453f411e9 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/DelegateMarshaller.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/DelegateMarshaller.cs @@ -94,6 +94,10 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont ArgumentList(SingletonSeparatedList(Argument(IdentifierName(managedIdentifier)))))); } break; + case StubCodeContext.Stage.AssignOut: + if (this.GeneratePointerAssignOut(info, context) is { } assignOut) + yield return assignOut; + break; default: break; } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs index c11e670e9a7d8..832b89f5c88ee 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs @@ -55,6 +55,7 @@ public StatementSyntax GenerateClearManagedValuesDestination(TypePositionInfo in public abstract StatementSyntax GenerateUnmarshalStatement(TypePositionInfo info, StubCodeContext context); public abstract StatementSyntax GenerateElementCleanupStatement(TypePositionInfo info, StubCodeContext context); + public abstract StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context); } #pragma warning disable SA1400 // Access modifier should be declared https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3659 @@ -238,6 +239,21 @@ private ExpressionSyntax CastToManagedIfNecessary(ExpressionSyntax expression) public override StatementSyntax GenerateElementCleanupStatement(TypePositionInfo info, StubCodeContext context) => EmptyStatement(); public override StatementSyntax GenerateSetupStatement(TypePositionInfo info, StubCodeContext context) => EmptyStatement(); + public override StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context) + { + ExpressionSyntax source = CollectionSource.GetUnmanagedValuesDestination(info, context.InnerContext); + ExpressionSyntax destination = CollectionSource.GetUnmanagedValuesDestination(info, context); + + // .CopyTo(); + return ExpressionStatement( + InvocationExpression( + MemberAccessExpression( + SyntaxKind.SimpleMemberAccessExpression, + source, + IdentifierName("CopyTo"))) + .AddArgumentListArguments( + Argument(destination))); + } } /// @@ -655,5 +671,21 @@ public override StatementSyntax GenerateSetupStatement(TypePositionInfo info, St null, EqualsValueClause(LiteralExpression(SyntaxKind.NumericLiteralExpression, Literal(0))))))) : EmptyStatement(); + + public override StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context) + { + ExpressionSyntax source = CollectionSource.GetUnmanagedValuesDestination(info, context.InnerContext); + ExpressionSyntax destination = CollectionSource.GetUnmanagedValuesDestination(info, context); + + // .CopyTo(); + return ExpressionStatement( + InvocationExpression( + MemberAccessExpression( + SyntaxKind.SimpleMemberAccessExpression, + source, + IdentifierName("CopyTo"))) + .AddArgumentListArguments( + Argument(destination))); + } } } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs index f9da5d32b3977..dd210092be180 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ICustomTypeMarshallingStrategy.cs @@ -13,6 +13,8 @@ internal interface ICustomTypeMarshallingStrategy { ManagedTypeInfo AsNativeType(TypePositionInfo info); + IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context); + IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context); IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs index 5f387a2772a9b..653fe4a679fad 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshalToLocalContext.cs @@ -24,8 +24,8 @@ internal MarshalToLocalContext(StubCodeContext inner) public override bool AdditionalTemporaryStateLivesAcrossStages => InnerContext.AdditionalTemporaryStateLivesAcrossStages; public override (string managed, string native) GetIdentifiers(TypePositionInfo info) - => InnerContext.GetIdentifiers(info); - //=> (inner.GetIdentifiers(info).managed, inner.GetAdditionalIdentifier(info, "out")); + //=> InnerContext.GetIdentifiers(info); + => (InnerContext.GetIdentifiers(info).managed, InnerContext.GetAdditionalIdentifier(info, "out")); public override string GetAdditionalIdentifier(TypePositionInfo info, string name) => InnerContext.GetAdditionalIdentifier(info, name); } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs index 5da2be2b30597..74fb27aba4a8c 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs @@ -404,9 +404,18 @@ public static bool MarshalsOutToLocal(TypePositionInfo info, StubCodeContext con => context.Direction is MarshalDirection.UnmanagedToManaged && (info.IsByRef && info.RefKind is RefKind.Out or RefKind.Ref || info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) - || info.IsManagedReturnPosition); + || (info.IsManagedReturnPosition && !info.IsNativeReturnPosition)); - internal static StatementSyntax CreateDiscardStatement(string identifier) + public static StatementSyntax CreateDiscardStatement(string identifier) => ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, IdentifierName("_"), IdentifierName(identifier))); + + public static ExpressionStatementSyntax GenerateAssignmentToPointerValue(string pointerIdentifier, string valueIdentifier) + { + return ExpressionStatement( + AssignmentExpression( + SyntaxKind.SimpleAssignmentExpression, + PrefixUnaryExpression(SyntaxKind.PointerIndirectionExpression, IdentifierName(pointerIdentifier)), + IdentifierName(valueIdentifier))); + } } } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs index 2c11351959b03..4b054a27cb354 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallingGeneratorExtensions.cs @@ -155,7 +155,7 @@ private static bool TryRehydrateMarshalAsAttribute(TypePositionInfo info, out At CustomTypeMarshallerData defaultMarshallerData = collectionMarshalling.Marshallers.GetModeOrDefault(MarshalMode.Default); if ((defaultMarshallerData.MarshallerType.FullTypeName.StartsWith($"{TypeNames.System_Runtime_InteropServices_ArrayMarshaller}<") || defaultMarshallerData.MarshallerType.FullTypeName.StartsWith($"{TypeNames.System_Runtime_InteropServices_PointerArrayMarshaller}<")) - && defaultMarshallerData.CollectionElementMarshallingInfo is NoMarshallingInfo or MarshalAsInfo { UnmanagedType: not UnmanagedType.CustomMarshaler }) + && defaultMarshallerData.CollectionElementMarshallingInfo is NoMarshallingInfo or MarshalAsInfo { UnmanagedType: not UnmanagedType.CustomMarshaler }) { countInfo = collectionMarshalling.ElementCountInfo; elementMarshallingInfo = defaultMarshallerData.CollectionElementMarshallingInfo; @@ -261,5 +261,23 @@ public static ExpressionSyntax GenerateNativeByRefInitialization(this IMarshalli string paramIdentifier = context.GetAdditionalIdentifier(info, ParameterIdentifierSuffix); return RefExpression(PrefixUnaryExpression(SyntaxKind.PointerIndirectionExpression, IdentifierName(paramIdentifier))); } + + public static ExpressionSyntax GenerateNativeDereferencedInitialization(this IMarshallingGenerator generator, TypePositionInfo info, StubCodeContext context) + { + string paramIdentifier = context.GetAdditionalIdentifier(info, ParameterIdentifierSuffix); + return PrefixUnaryExpression(SyntaxKind.PointerIndirectionExpression, IdentifierName(paramIdentifier)); + } + + /// + /// If the parameter should marshal to a local and assign out, generates a statement to copy the pointed to value to the parameter. If the parameter does not need it, returns null + /// + public static ExpressionStatementSyntax? GeneratePointerAssignOut(this IMarshallingGenerator generator, TypePositionInfo info, StubCodeContext context) + { + if (MarshallerHelpers.MarshalsOutToLocal(info, context)) + { + return MarshallerHelpers.GenerateAssignmentToPointerValue(generator.AsParameter(info, context).Identifier.ToString(), context.GetIdentifiers(info).native); + } + return null; + } } } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs index 03a906f888159..586de4c2964fb 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; +using System.Diagnostics; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; @@ -190,6 +191,9 @@ public static string GetMarshallerIdentifier(TypePositionInfo info, StubCodeCont { return context.GetAdditionalIdentifier(info, MarshallerIdentifier); } + + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) + => this.GenerateDefaultAssignOutStatement(info, context); } /// @@ -284,6 +288,8 @@ public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) public IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateGuaranteedUnmarshalStatements(info, context); public IEnumerable GenerateNotifyForSuccessfulInvokeStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(info, context); + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) + => _innerMarshaller.GenerateAssignOutStatements(info, context); } internal sealed class StatefulLinearCollectionSource : IElementsMarshallingCollectionSource @@ -488,6 +494,19 @@ public IEnumerable GenerateUnmarshalStatements(TypePositionInfo public IEnumerable GenerateUnmarshalCaptureStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateUnmarshalCaptureStatements(info, context); public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => true; + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) + { + Debug.Assert(MarshallerHelpers.MarshalsOutToLocal(info, context)); + if (info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) + { + yield return _elementsMarshalling.GenerateElementsAssignOutStatement(info, context); + } + else + { + foreach (var s in _innerMarshaller.GenerateAssignOutStatements(info, context)) + yield return s; + } + } } /// @@ -534,5 +553,6 @@ public IEnumerable GenerateCleanupStatements(TypePositionInfo i public IEnumerable GenerateUnmarshalCaptureStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateUnmarshalCaptureStatements(info, context); public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.UsesNativeIdentifier(info, context); + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) => _innerMarshaller.GenerateAssignOutStatements(info, context); } } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs index 24cfcca03df60..83d3a0767608d 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; @@ -138,6 +139,12 @@ public IEnumerable GenerateNotifyForSuccessfulInvokeStatements( { return Array.Empty(); } + + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) + { + Debug.Assert(MarshallerHelpers.MarshalsOutToLocal(info, context)); + return this.GenerateDefaultAssignOutStatement(info, context); + } } /// @@ -251,6 +258,7 @@ IEnumerable GenerateCallerAllocatedBufferMarshalStatements() public bool UsesNativeIdentifier(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.UsesNativeIdentifier(info, context); public IEnumerable GenerateNotifyForSuccessfulInvokeStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateNotifyForSuccessfulInvokeStatements(info, context); + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) => _innerMarshaller.GenerateAssignOutStatements(info, context); } internal sealed class StatelessFreeMarshalling : ICustomTypeMarshallingStrategy @@ -265,6 +273,7 @@ public StatelessFreeMarshalling(ICustomTypeMarshallingStrategy innerMarshaller, } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) => _innerMarshaller.GenerateAssignOutStatements(info, context); public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { @@ -316,6 +325,12 @@ public ManagedTypeInfo AsNativeType(TypePositionInfo info) return _unmanagedType; } + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) + { + Debug.Assert(MarshallerHelpers.MarshalsOutToLocal(info, context)); + return this.GenerateDefaultAssignOutStatement(info, context); + } + public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { if (MarshallerHelpers.GetMarshalDirection(info, context) == MarshalDirection.ManagedToUnmanaged) @@ -553,6 +568,19 @@ public StatelessLinearCollectionMarshalling( } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _unmanagedType; + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) + { + Debug.Assert(MarshallerHelpers.MarshalsOutToLocal(info, context)); + if (info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) + { + yield return _elementsMarshalling.GenerateElementsAssignOutStatement(info, context); + } + else + { + foreach (var s in _spaceMarshallingStrategy.GenerateAssignOutStatements(info, context)) + yield return s; + } + } public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs index 5b9d0866f743c..de6e99fcc8e7d 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/UnmanagedToManagedOwnershipTrackingStrategy.cs @@ -3,7 +3,6 @@ using System; using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; @@ -24,7 +23,7 @@ public UnmanagedToManagedOwnershipTrackingStrategy(ICustomTypeMarshallingStrateg } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); - + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) => _innerMarshaller.GenerateAssignOutStatements(info, context); public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateCleanupStatements(info, context); public IEnumerable GenerateGuaranteedUnmarshalStatements(TypePositionInfo info, StubCodeContext context) => _innerMarshaller.GenerateGuaranteedUnmarshalStatements(info, context); @@ -90,6 +89,7 @@ public CleanupOwnedOriginalValueMarshalling(ICustomTypeMarshallingStrategy inner } public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); + public IEnumerable GenerateAssignOutStatements(TypePositionInfo info, AssignOutContext context) => _innerMarshaller.GenerateAssignOutStatements(info, context); public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs index f9c9542ed8c21..f88c4c4f4ece5 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs @@ -4,7 +4,6 @@ using System.Collections.Immutable; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; -using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; namespace Microsoft.Interop { @@ -196,7 +195,7 @@ static void AppendVariableDeclarations(ImmutableArray Date: Wed, 19 Jul 2023 16:39:32 -0700 Subject: [PATCH 17/20] wip --- .../Marshalling/ElementsMarshalling.cs | 237 +++++++++++++----- .../StatelessMarshallingStrategy.cs | 2 +- .../VariableDeclarations.cs | 2 +- 3 files changed, 176 insertions(+), 65 deletions(-) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs index 832b89f5c88ee..7aee674e18f69 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; +using System.Collections.Immutable; using System.Linq; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; @@ -55,7 +56,62 @@ public StatementSyntax GenerateClearManagedValuesDestination(TypePositionInfo in public abstract StatementSyntax GenerateUnmarshalStatement(TypePositionInfo info, StubCodeContext context); public abstract StatementSyntax GenerateElementCleanupStatement(TypePositionInfo info, StubCodeContext context); - public abstract StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context); + public StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context) + { + ExpressionSyntax source = CollectionSource.GetUnmanagedValuesDestination(info, context.InnerContext); + ExpressionSyntax destination;// = CollectionSource.GetUnmanagedValuesDestination(info, context); + destination = GetUnmanagedValuesDestinationFromUnmanagedValuesSource(info, context); + + // .CopyTo(); + return ExpressionStatement( + InvocationExpression( + MemberAccessExpression( + SyntaxKind.SimpleMemberAccessExpression, + source, + IdentifierName("CopyTo"))) + .AddArgumentListArguments( + Argument(destination))); + } + + + /// + /// Returns syntax for an invocation that will create a destination for unmanaged values from the unmanaged values source. + /// Necessary to marshal ByValue [Out] in unmanaged to managed stubs. + /// MemoryMarshal.CreateSpan(ref Unsafe.AsRef(in __GetUnmanagedValuesSource__.GetPinnableReference(), __numElements__)) + /// + public InvocationExpressionSyntax GetUnmanagedValuesDestinationFromUnmanagedValuesSource(TypePositionInfo info, StubCodeContext context) + { + return InvocationExpression( + MemberAccessExpression( + SyntaxKind.SimpleMemberAccessExpression, + ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), + IdentifierName("CreateSpan"))) + .WithArgumentList( + ArgumentList( + SeparatedList( + new[] + { + Argument( + InvocationExpression( + MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + ParseName(TypeNames.System_Runtime_CompilerServices_Unsafe), + IdentifierName("AsRef")), + ArgumentList(SingletonSeparatedList( + Argument( + InvocationExpression( + MemberAccessExpression( + SyntaxKind.SimpleMemberAccessExpression, + CollectionSource.GetUnmanagedValuesSource(info, context), + IdentifierName("GetPinnableReference")), + ArgumentList())) + .WithRefKindKeyword( + Token(SyntaxKind.InKeyword)))))) + .WithRefKindKeyword( + Token(SyntaxKind.RefKeyword)), + Argument( + IdentifierName(MarshallerHelpers.GetNumElementsIdentifier(info, context))) + }))); + } } #pragma warning disable SA1400 // Access modifier should be declared https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/3659 @@ -108,7 +164,20 @@ public BlittableElementsMarshalling(TypeSyntax managedElementType, TypeSyntax un public override StatementSyntax GenerateUnmanagedToManagedByValueOutMarshalStatement(TypePositionInfo info, StubCodeContext context) { - ExpressionSyntax destination = CastToManagedIfNecessary(CollectionSource.GetUnmanagedValuesSource(info, context)); + ExpressionSyntax destination; + if (MarshallerHelpers.MarshalsOutToLocal(info, context)) + { + destination = StackAllocArrayCreationExpression( + ArrayType(_unmanagedElementType, + SingletonList(ArrayRankSpecifier(SingletonSeparatedList( + MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + CollectionSource.GetManagedValuesSource(info, context), + IdentifierName("Length"))))))); + } + else + { + destination = CastToManagedIfNecessary(CollectionSource.GetUnmanagedValuesSource(info, context)); + } // MemoryMarshal.CreateSpan(ref MemoryMarshal.GetReference(), .Length) ExpressionSyntax source = InvocationExpression( @@ -239,21 +308,21 @@ private ExpressionSyntax CastToManagedIfNecessary(ExpressionSyntax expression) public override StatementSyntax GenerateElementCleanupStatement(TypePositionInfo info, StubCodeContext context) => EmptyStatement(); public override StatementSyntax GenerateSetupStatement(TypePositionInfo info, StubCodeContext context) => EmptyStatement(); - public override StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context) - { - ExpressionSyntax source = CollectionSource.GetUnmanagedValuesDestination(info, context.InnerContext); - ExpressionSyntax destination = CollectionSource.GetUnmanagedValuesDestination(info, context); - - // .CopyTo(); - return ExpressionStatement( - InvocationExpression( - MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - source, - IdentifierName("CopyTo"))) - .AddArgumentListArguments( - Argument(destination))); - } + //public override StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context) + //{ + // ExpressionSyntax source = CollectionSource.GetUnmanagedValuesDestination(info, context.InnerContext); + // ExpressionSyntax destination = CollectionSource.GetUnmanagedValuesDestination(info, context); + + // // .CopyTo(); + // return ExpressionStatement( + // InvocationExpression( + // MemberAccessExpression( + // SyntaxKind.SimpleMemberAccessExpression, + // source, + // IdentifierName("CopyTo"))) + // .AddArgumentListArguments( + // Argument(destination))); + //} } /// @@ -498,6 +567,47 @@ public override StatementSyntax GenerateUnmanagedToManagedByValueOutMarshalState var setNumElements = CollectionSource.GetNumElementsAssignmentFromManagedValuesDestination(info, context); + if (MarshallerHelpers.MarshalsOutToLocal(info, context)) + { + //crazy unsafe source as destination stuff. + // var = stackalloc [numElementsExpression] + var nativeSpanDeclaration = LocalDeclarationStatement(VariableDeclaration( + GenericName( + Identifier(TypeNames.System_Span), + TypeArgumentList( + SingletonSeparatedList(_unmanagedElementType)) + ), + SingletonSeparatedList(VariableDeclarator(nativeSpanIdentifier).WithInitializer(EqualsValueClause( + StackAllocArrayCreationExpression( + ArrayType(_unmanagedElementType, + SingletonList(ArrayRankSpecifier(SingletonSeparatedList( + MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + CollectionSource.GetManagedValuesSource(info, context), + IdentifierName("Length")))))))))))); + + LocalDeclarationStatementSyntax managedSpanDeclaration = LocalDeclarationStatement(VariableDeclaration( + GenericName( + Identifier(TypeNames.System_Span), + TypeArgumentList(SingletonSeparatedList(_elementInfo.ManagedType.Syntax))), + SingletonSeparatedList( + VariableDeclarator( + Identifier(managedSpanIdentifier)) + .WithInitializer(EqualsValueClause( + CollectionSource.GetManagedValuesDestination(info, context)))))); + return Block( + setNumElements, + nativeSpanDeclaration, + managedSpanDeclaration, + GenerateContentsMarshallingStatement( + info, + context, + IdentifierName(numElementsIdentifier), + _elementInfo, + new FreeAlwaysOwnedOriginalValueGenerator(_elementMarshaller), + StubCodeContext.Stage.Marshal, + StubCodeContext.Stage.PinnedMarshal, + StubCodeContext.Stage.Cleanup)); + } // Span = MemoryMarshal.CreateSpan(ref Unsafe.AsRef(in .GetPinnableReference(), )); LocalDeclarationStatementSyntax unmanagedValuesSource = LocalDeclarationStatement(VariableDeclaration( GenericName( @@ -505,37 +615,37 @@ public override StatementSyntax GenerateUnmanagedToManagedByValueOutMarshalState TypeArgumentList( SingletonSeparatedList(_unmanagedElementType)) ), - SingletonSeparatedList(VariableDeclarator(nativeSpanIdentifier).WithInitializer(EqualsValueClause( - InvocationExpression( - MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), - IdentifierName("CreateSpan"))) - .WithArgumentList( - ArgumentList( - SeparatedList( - new[] - { - Argument( - InvocationExpression( - MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - ParseName(TypeNames.System_Runtime_CompilerServices_Unsafe), - IdentifierName("AsRef")), - ArgumentList(SingletonSeparatedList( - Argument( - InvocationExpression( - MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - CollectionSource.GetUnmanagedValuesSource(info, context), - IdentifierName("GetPinnableReference")), - ArgumentList())) - .WithRefKindKeyword( - Token(SyntaxKind.InKeyword)))))) - .WithRefKindKeyword( - Token(SyntaxKind.RefKeyword)), - Argument( - IdentifierName(numElementsIdentifier)) - })))))))); + SingletonSeparatedList(VariableDeclarator(nativeSpanIdentifier).WithInitializer(EqualsValueClause(GetUnmanagedValuesDestinationFromUnmanagedValuesSource(info, context)))))); + //InvocationExpression( + // MemberAccessExpression( + // SyntaxKind.SimpleMemberAccessExpression, + // ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), + // IdentifierName("CreateSpan"))) + //.WithArgumentList( + // ArgumentList( + // SeparatedList( + // new[] + // { + // Argument( + // InvocationExpression( + // MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + // ParseName(TypeNames.System_Runtime_CompilerServices_Unsafe), + // IdentifierName("AsRef")), + // ArgumentList(SingletonSeparatedList( + // Argument( + // InvocationExpression( + // MemberAccessExpression( + // SyntaxKind.SimpleMemberAccessExpression, + // CollectionSource.GetUnmanagedValuesSource(info, context), + // IdentifierName("GetPinnableReference")), + // ArgumentList())) + // .WithRefKindKeyword( + // Token(SyntaxKind.InKeyword)))))) + // .WithRefKindKeyword( + // Token(SyntaxKind.RefKeyword)), + // Argument( + // IdentifierName(numElementsIdentifier)) + // })))))))); // Span = LocalDeclarationStatementSyntax managedValuesDestination = LocalDeclarationStatement(VariableDeclaration( @@ -672,20 +782,21 @@ public override StatementSyntax GenerateSetupStatement(TypePositionInfo info, St EqualsValueClause(LiteralExpression(SyntaxKind.NumericLiteralExpression, Literal(0))))))) : EmptyStatement(); - public override StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context) - { - ExpressionSyntax source = CollectionSource.GetUnmanagedValuesDestination(info, context.InnerContext); - ExpressionSyntax destination = CollectionSource.GetUnmanagedValuesDestination(info, context); - - // .CopyTo(); - return ExpressionStatement( - InvocationExpression( - MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - source, - IdentifierName("CopyTo"))) - .AddArgumentListArguments( - Argument(destination))); - } + //public override StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context) + //{ + // ExpressionSyntax source = CollectionSource.GetUnmanagedValuesDestination(info, context.InnerContext); + // ExpressionSyntax destination;// = CollectionSource.GetUnmanagedValuesDestination(info, context); + // destination = GetUnmanagedValuesDestinationFromUnmanagedValuesSource(info, context); + + // // .CopyTo(); + // return ExpressionStatement( + // InvocationExpression( + // MemberAccessExpression( + // SyntaxKind.SimpleMemberAccessExpression, + // source, + // IdentifierName("CopyTo"))) + // .AddArgumentListArguments( + // Argument(destination))); + //} } } diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs index 83d3a0767608d..756147a5d6b0a 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs @@ -384,7 +384,7 @@ public IEnumerable GenerateMarshalStatements(TypePositionInfo i if (_shape.HasFlag(MarshallerShape.ToUnmanaged) && !(_shape.HasFlag(MarshallerShape.CallerAllocatedBuffer) - && MarshallerHelpers.CanUseCallerAllocatedBuffer(info, context))) + && MarshallerHelpers.CanUseCallerAllocatedBuffer(info, context))) { (string managedIdentifier, string nativeIdentifier) = context.GetIdentifiers(info); string numElementsIdentifier = MarshallerHelpers.GetNumElementsIdentifier(info, context); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs index f88c4c4f4ece5..1a7dfbfffd066 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs @@ -197,7 +197,7 @@ static void AppendVariableDeclarations(ImmutableArray Date: Thu, 20 Jul 2023 17:01:05 -0700 Subject: [PATCH 18/20] Almost Passing tests, skipping [out] collections cleanup --- .../UnmanagedToManagedStubGenerator.cs | 2 +- .../GeneratedStatements.cs | 10 +- ...ributedMarshallingModelGeneratorFactory.cs | 19 +- .../CustomTypeMarshallingGenerator.cs | 9 +- .../Marshalling/ElementsMarshalling.cs | 219 ++++++++++++------ .../Marshalling/MarshallerHelpers.cs | 2 +- .../StatefulMarshallingStrategy.cs | 13 +- .../StatelessMarshallingStrategy.cs | 12 +- .../VariableDeclarations.cs | 3 +- .../RcwAroundCcwTests.cs | 19 +- ...nmanagedToManagedCustomMarshallingTests.cs | 6 +- .../CompileFails.cs | 12 +- .../CollectionMarshallingFails.cs | 10 - .../SharedTypes/ComInterfaces/IIntArray.cs | 46 +++- .../ICollectionMarshallingFails.cs | 22 +- .../ThrowOn4thElementMarshalled.cs | 2 + 16 files changed, 283 insertions(+), 123 deletions(-) diff --git a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs index 207778e1c206b..b48b16571adfc 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/ComInterfaceGenerator/UnmanagedToManagedStubGenerator.cs @@ -94,7 +94,6 @@ public BlockSyntax GenerateStubBody(ExpressionSyntax methodToInvoke) SyntaxList catchClauses = List(statements.ManagedExceptionCatchClauses); - finallyStatements.AddRange(statements.Cleanup); if (finallyStatements.Count > 0) { allStatements.Add( @@ -111,6 +110,7 @@ public BlockSyntax GenerateStubBody(ExpressionSyntax methodToInvoke) } allStatements.AddRange(statements.AssignOut); + allStatements.AddRange(statements.Cleanup); // Return if (!_marshallers.IsUnmanagedVoidReturn) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs index 1fa8cfb69239c..ba38f54c64cd7 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/GeneratedStatements.cs @@ -22,6 +22,7 @@ public struct GeneratedStatements public ImmutableArray NotifyForSuccessfulInvoke { get; init; } public ImmutableArray GuaranteedUnmarshal { get; init; } public ImmutableArray Cleanup { get; init; } + //public ImmutableArray CleanupNativeOut { get; init; } public ImmutableArray AssignOut { get; init; } public ImmutableArray ManagedExceptionCatchClauses { get; init; } @@ -40,6 +41,7 @@ public static GeneratedStatements Create(BoundGenerators marshallers, StubCodeCo NotifyForSuccessfulInvoke = GenerateStatementsForStubContext(marshallers, context with { CurrentStage = StubCodeContext.Stage.NotifyForSuccessfulInvoke }), GuaranteedUnmarshal = GenerateStatementsForStubContext(marshallers, context with { CurrentStage = StubCodeContext.Stage.GuaranteedUnmarshal }), Cleanup = GenerateStatementsForStubContext(marshallers, context with { CurrentStage = StubCodeContext.Stage.Cleanup }), + //CleanupNativeOut = GenerateStatementsForStubContext(marshallers, new MarshalToLocalContext(context with { CurrentStage = StubCodeContext.Stage.Cleanup })), ManagedExceptionCatchClauses = GenerateCatchClauseForManagedException(marshallers, context), AssignOut = GenerateStatementsForStubContext(marshallers, context with { CurrentStage = StubCodeContext.Stage.AssignOut }) }; @@ -85,7 +87,12 @@ private static ImmutableArray GenerateStatementsForStubContext( if (!MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) continue; else - localContext = new AssignOutContext(localContext, marshaller.Generator.AsParameter(marshaller.TypeInfo, context).Identifier.ToString()); + localContext = new AssignOutContext(context, marshaller.Generator.AsParameter(marshaller.TypeInfo, context).Identifier.ToString()); + } + if (context is MarshalToLocalContext && context.CurrentStage == StubCodeContext.Stage.Cleanup) + { + if (!MarshallerHelpers.MarshalsOutToLocal(marshaller.TypeInfo, context)) + continue; } statementsToUpdate.AddRange(marshaller.Generator.Generate(marshaller.TypeInfo, localContext)); } @@ -180,6 +187,7 @@ private static ImmutableArray GenerateCatchClauseForManagedEx catchClauseBuilder.AddRange( managedExceptionMarshaller.Generator.Generate( managedExceptionMarshaller.TypeInfo, context with { CurrentStage = StubCodeContext.Stage.PinnedMarshal })); + catchClauseBuilder.AddRange(GenerateStatementsForStubContext(marshallers, new MarshalToLocalContext(context with { CurrentStage = StubCodeContext.Stage.Cleanup }))); if (!marshallers.IsUnmanagedVoidReturn) { catchClauseBuilder.Add(ReturnStatement(IdentifierName(context.GetIdentifiers(marshallers.NativeReturnMarshaller.TypeInfo).native))); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs index 75660f3ccb9fd..c326cec3d3642 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/AttributedMarshallingModelGeneratorFactory.cs @@ -371,14 +371,14 @@ private ResolvedGenerator CreateNativeCollectionMarshaller( var freeStrategy = GetFreeStrategy(info, context); IElementsMarshallingCollectionSource collectionSource = new StatefulLinearCollectionSource(); - ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource); + ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource, nativeType.Syntax, true); //if (freeStrategy == FreeStrategy.FreeOriginal) //{ // marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); //} - marshallingStrategy = new StatefulLinearCollectionMarshalling(marshallingStrategy, marshallerData.Shape, numElementsExpression, elementsMarshalling, freeStrategy != FreeStrategy.NoFree); + marshallingStrategy = new StatefulLinearCollectionMarshalling(marshallingStrategy, marshallerData.Shape, numElementsExpression, elementsMarshalling, freeStrategy is not FreeStrategy.NoFree or FreeStrategy.FreeTemp); //if (freeStrategy == FreeStrategy.FreeOriginal) //{ @@ -402,9 +402,9 @@ private ResolvedGenerator CreateNativeCollectionMarshaller( // marshallingStrategy = new UnmanagedToManagedOwnershipTrackingStrategy(marshallingStrategy); //} - ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource); + ElementsMarshalling elementsMarshalling = CreateElementsMarshalling(marshallerData, elementInfo, elementMarshaller, unmanagedElementType, collectionSource, nativeType.Syntax, false); - marshallingStrategy = new StatelessLinearCollectionMarshalling(marshallingStrategy, elementsMarshalling, nativeType, marshallerData.Shape, numElementsExpression, freeStrategy != FreeStrategy.NoFree); + marshallingStrategy = new StatelessLinearCollectionMarshalling(marshallingStrategy, elementsMarshalling, nativeType, marshallerData.Shape, numElementsExpression, !(freeStrategy is FreeStrategy.NoFree or FreeStrategy.FreeTemp)); if (marshallerData.Shape.HasFlag(MarshallerShape.CallerAllocatedBuffer)) { @@ -467,7 +467,8 @@ private enum FreeStrategy /// /// Do not free the unmanaged value, we don't own it. /// - NoFree + NoFree, + FreeTemp } private static FreeStrategy GetFreeStrategy(TypePositionInfo info, StubCodeContext context) @@ -491,12 +492,16 @@ private static FreeStrategy GetFreeStrategy(TypePositionInfo info, StubCodeConte { return FreeStrategy.FreeOriginal; } + if (MarshallerHelpers.MarshalsOutToLocal(info, context)) + { + return FreeStrategy.FreeTemp; + } // In an unmanaged-to-managed stub, we don't take ownership of the value when it isn't passed by 'ref'. return FreeStrategy.NoFree; } - private static ElementsMarshalling CreateElementsMarshalling(CustomTypeMarshallerData marshallerData, TypePositionInfo elementInfo, IMarshallingGenerator elementMarshaller, TypeSyntax unmanagedElementType, IElementsMarshallingCollectionSource collectionSource) + private static ElementsMarshalling CreateElementsMarshalling(CustomTypeMarshallerData marshallerData, TypePositionInfo elementInfo, IMarshallingGenerator elementMarshaller, TypeSyntax unmanagedElementType, IElementsMarshallingCollectionSource collectionSource, TypeSyntax parameterPointedToType, bool isStateful) { ElementsMarshalling elementsMarshalling; @@ -507,7 +512,7 @@ private static ElementsMarshalling CreateElementsMarshalling(CustomTypeMarshalle } else { - elementsMarshalling = new NonBlittableElementsMarshalling(unmanagedElementType, elementMarshaller, elementInfo, collectionSource); + elementsMarshalling = new NonBlittableElementsMarshalling(unmanagedElementType, elementMarshaller, elementInfo, collectionSource, parameterPointedToType, isStateful); } return elementsMarshalling; diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs index 0aec527d810fb..417d6edff843e 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs @@ -99,7 +99,14 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont } break; case StubCodeContext.Stage.Cleanup: - return _nativeTypeMarshaller.GenerateCleanupStatements(info, context); + // TODO: Correctly clean up the allocated contents that aren't transferred back to the caller + // We don't correctly clean up the [out] parameters + if (context is MarshalToLocalContext + && (info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) + )) + break; + else + return _nativeTypeMarshaller.GenerateCleanupStatements(info, context); case StubCodeContext.Stage.AssignOut: Debug.Assert(MarshallerHelpers.MarshalsOutToLocal(info, context)); return _nativeTypeMarshaller.GenerateAssignOutStatements(info, (AssignOutContext)context); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs index a0c8d663adba3..5a4f2aa84ceb5 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/ElementsMarshalling.cs @@ -56,11 +56,12 @@ public StatementSyntax GenerateClearManagedValuesDestination(TypePositionInfo in public abstract StatementSyntax GenerateUnmarshalStatement(TypePositionInfo info, StubCodeContext context); public abstract StatementSyntax GenerateElementCleanupStatement(TypePositionInfo info, StubCodeContext context); + public abstract TypeSyntax UnmanagedElementType { get; } public StatementSyntax GenerateElementsAssignOutStatement(TypePositionInfo info, AssignOutContext context) { - ExpressionSyntax source = CollectionSource.GetUnmanagedValuesDestination(info, context.InnerContext); + ExpressionSyntax source = IdentifierName(context.GetIdentifiers(info).native);//CollectionSource.GetUnmanagedValuesDestination(info, context.InnerContext); ExpressionSyntax destination;// = CollectionSource.GetUnmanagedValuesDestination(info, context); - destination = GetUnmanagedValuesDestinationFromUnmanagedValuesSource(info, context); + destination = GetUnmanagedValuesDestinationFromUnmanagedValuesSource(info, context.InnerContext); // .CopyTo(); return ExpressionStatement( @@ -155,6 +156,8 @@ internal sealed class BlittableElementsMarshalling : ElementsMarshalling private readonly TypeSyntax _managedElementType; private readonly TypeSyntax _unmanagedElementType; + public override TypeSyntax UnmanagedElementType => _unmanagedElementType; + public BlittableElementsMarshalling(TypeSyntax managedElementType, TypeSyntax unmanagedElementType, IElementsMarshallingCollectionSource collectionSource) : base(collectionSource) { @@ -164,40 +167,74 @@ public BlittableElementsMarshalling(TypeSyntax managedElementType, TypeSyntax un public override StatementSyntax GenerateUnmanagedToManagedByValueOutMarshalStatement(TypePositionInfo info, StubCodeContext context) { - // MemoryMarshal.CreateSpan(ref MemoryMarshal.GetReference(), .Length) - ExpressionSyntax destination = CastToManagedIfNecessary( - InvocationExpression( - MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), - IdentifierName("CreateSpan")), - ArgumentList( - SeparatedList(new[] - { - Argument( - InvocationExpression( - MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), - IdentifierName("GetReference")), - ArgumentList(SingletonSeparatedList( - Argument(CollectionSource.GetUnmanagedValuesSource(info, context)))))) - .WithRefKindKeyword( - Token(SyntaxKind.RefKeyword)), - Argument( - MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - CollectionSource.GetUnmanagedValuesSource(info, context), - IdentifierName("Length"))) - })))); - - // .CopyTo(); - return ExpressionStatement( + ExpressionSyntax destination; + List statements = new(); + var numElementsAssignment = CollectionSource.GetNumElementsAssignmentFromManagedValuesSource(info, context); + statements.Add(numElementsAssignment); + if (MarshallerHelpers.MarshalsOutToLocal(info, context)) + { + // #pragma warning disable CS9081 + // = stackalloc [numElementsExpression] + // #pragma warning restore CS9081 + statements.Add(ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, + IdentifierName(context.GetIdentifiers(info).native), + StackAllocArrayCreationExpression( + ArrayType(_unmanagedElementType, + SingletonList(ArrayRankSpecifier(SingletonSeparatedList( + IdentifierName(MarshallerHelpers.GetNumElementsIdentifier(info, context))))))))) + //MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + // CollectionSource.GetUnmanagedValuesSource(info, context), + // IdentifierName("Length"))))))))) + .WithLeadingTrivia(Trivia( + PragmaWarningDirectiveTrivia( + Token(SyntaxKind.DisableKeyword), + SingletonSeparatedList(IdentifierName("CS9081")), + isActive: true))) + .WithTrailingTrivia(Trivia( + PragmaWarningDirectiveTrivia( + Token(SyntaxKind.RestoreKeyword), + SingletonSeparatedList(IdentifierName("CS9081")), + isActive: true)))); + destination = IdentifierName(context.GetIdentifiers(info).native); + } + else + { + // MemoryMarshal.CreateSpan(ref MemoryMarshal.GetReference(), .Length) + destination = CastToManagedIfNecessary(GetUnmanagedValuesDestinationFromUnmanagedValuesSource(info, context)); + //InvocationExpression( + // MemberAccessExpression( + // SyntaxKind.SimpleMemberAccessExpression, + // ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), + // IdentifierName("CreateSpan")), + // ArgumentList( + // SeparatedList(new[] + // { + // Argument( + // InvocationExpression( + // MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + // ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), + // IdentifierName("GetReference")), + // ArgumentList(SingletonSeparatedList( + // Argument(CollectionSource.GetUnmanagedValuesSource(info, context)))))) + // .WithRefKindKeyword( + // Token(SyntaxKind.RefKeyword)), + // Argument( + // MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + // CollectionSource.GetUnmanagedValuesSource(info, context), + // IdentifierName("Length"))) + // })))); + } + statements.Add(ExpressionStatement( InvocationExpression( MemberAccessExpression( SyntaxKind.SimpleMemberAccessExpression, CollectionSource.GetManagedValuesDestination(info, context), IdentifierName("CopyTo"))) .AddArgumentListArguments( - Argument(destination))); + Argument(destination)))); + + // .CopyTo(); + return Block(statements); } public override StatementSyntax GenerateMarshalStatement(TypePositionInfo info, StubCodeContext context) @@ -219,41 +256,39 @@ public override StatementSyntax GenerateManagedToUnmanagedByValueOutUnmarshalSta { ExpressionSyntax source = CastToManagedIfNecessary(CollectionSource.GetUnmanagedValuesDestination(info, context)); - var assignLength = CollectionSource.GetNumElementsAssignmentFromManagedValuesDestination(info, context); // MemoryMarshal.CreateSpan(ref MemoryMarshal.GetReference(), .Length) - ExpressionSyntax destination =GetUnmanagedValuesDestinationFromUnmanagedValuesSource(info, context); - // InvocationExpression( - // MemberAccessExpression( - // SyntaxKind.SimpleMemberAccessExpression, - // ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), - // IdentifierName("CreateSpan")), - // ArgumentList( - // SeparatedList(new[] - // { - // Argument( - // InvocationExpression( - // MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - // ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), - // IdentifierName("GetReference")), - // ArgumentList(SingletonSeparatedList( - // Argument(CollectionSource.GetManagedValuesSource(info, context)))))) - // .WithRefKindKeyword( - // Token(SyntaxKind.RefKeyword)), - // Argument( - // MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - // CollectionSource.GetManagedValuesSource(info, context), - // IdentifierName("Length"))) - // }))); + ExpressionSyntax destination = InvocationExpression( + MemberAccessExpression( + SyntaxKind.SimpleMemberAccessExpression, + ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), + IdentifierName("CreateSpan")), + ArgumentList( + SeparatedList(new[] + { + Argument( + InvocationExpression( + MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + ParseName(TypeNames.System_Runtime_InteropServices_MemoryMarshal), + IdentifierName("GetReference")), + ArgumentList(SingletonSeparatedList( + Argument(CollectionSource.GetManagedValuesSource(info, context)))))) + .WithRefKindKeyword( + Token(SyntaxKind.RefKeyword)), + Argument( + MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + CollectionSource.GetManagedValuesSource(info, context), + IdentifierName("Length"))) + }))); // .CopyTo(); - return Block(assignLength, ExpressionStatement( + return ExpressionStatement( InvocationExpression( MemberAccessExpression( SyntaxKind.SimpleMemberAccessExpression, source, IdentifierName("CopyTo"))) .AddArgumentListArguments( - Argument(destination)))); + Argument(destination))); } public override StatementSyntax GenerateUnmarshalStatement(TypePositionInfo info, StubCodeContext context) @@ -321,19 +356,27 @@ internal sealed class NonBlittableElementsMarshalling : ElementsMarshalling private readonly TypeSyntax _unmanagedElementType; private readonly IMarshallingGenerator _elementMarshaller; private readonly TypePositionInfo _elementInfo; + private readonly TypeSyntax _parameterPointedToType; + private readonly bool _isStateful; public NonBlittableElementsMarshalling( TypeSyntax unmanagedElementType, IMarshallingGenerator elementMarshaller, TypePositionInfo elementInfo, - IElementsMarshallingCollectionSource collectionSource) + IElementsMarshallingCollectionSource collectionSource, + TypeSyntax parameterPointedToType, + bool isStateful) : base(collectionSource) { _unmanagedElementType = unmanagedElementType; _elementMarshaller = elementMarshaller; _elementInfo = elementInfo; + _isStateful = isStateful; + _parameterPointedToType = parameterPointedToType; } + public override TypeSyntax UnmanagedElementType => _unmanagedElementType; + public override StatementSyntax GenerateMarshalStatement(TypePositionInfo info, StubCodeContext context) { string managedSpanIdentifier = MarshallerHelpers.GetManagedSpanIdentifier(info, context); @@ -342,6 +385,7 @@ public override StatementSyntax GenerateMarshalStatement(TypePositionInfo info, // ReadOnlySpan = // Span = // .Clear() + // = Unsafe.AsPointer(ref .GetPinnableReference()) // << marshal contents >> var statements = new List() { @@ -374,13 +418,34 @@ public override StatementSyntax GenerateMarshalStatement(TypePositionInfo info, IdentifierName(nativeSpanIdentifier), IdentifierName("Clear"))))); } + if (MarshallerHelpers.MarshalsOutToLocal(info, context) && _isStateful) + { + var elementType = _parameterPointedToType;//info.IsByRef ? PointerType(_unmanagedElementType) : _unmanagedElementType; + // = (*)Unsafe.AsPointer(ref .GetPinnableReference()); + statements.Add(ExpressionStatement(AssignmentExpression(SyntaxKind.SimpleAssignmentExpression, + IdentifierName(context.GetAdditionalIdentifier(info, "out")), + CastExpression(elementType, + InvocationExpression( + MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + ParseName(TypeNames.System_Runtime_CompilerServices_Unsafe), + IdentifierName("AsPointer")), + ArgumentList(SingletonSeparatedList( + Argument( + InvocationExpression( + MemberAccessExpression( + SyntaxKind.SimpleMemberAccessExpression, + IdentifierName(nativeSpanIdentifier), + IdentifierName("GetPinnableReference")), + ArgumentList())) + .WithRefKindKeyword(Token(SyntaxKind.RefKeyword))))))))); + } statements.Add(GenerateContentsMarshallingStatement( info, context, MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, IdentifierName(MarshallerHelpers.GetManagedSpanIdentifier(info, context)), - IdentifierName("Length")), - _elementInfo, _elementMarshaller, StubCodeContext.Stage.Marshal)); + IdentifierName("Length")), + _elementInfo, _elementMarshaller, StubCodeContext.Stage.Marshal)); return Block(statements); } @@ -557,21 +622,38 @@ public override StatementSyntax GenerateUnmanagedToManagedByValueOutMarshalState if (MarshallerHelpers.MarshalsOutToLocal(info, context)) { - //crazy unsafe source as destination stuff. - // var = stackalloc [numElementsExpression] + // #pragma warning disable CS9081 + // = stackalloc [numElementsExpression] + // #pragma warning restore CS9081 + var outInit = ExpressionStatement(AssignmentExpression( + SyntaxKind.SimpleAssignmentExpression, + IdentifierName(context.GetIdentifiers(info).native), + StackAllocArrayCreationExpression( + ArrayType(_unmanagedElementType, + SingletonList(ArrayRankSpecifier(SingletonSeparatedList( + IdentifierName(MarshallerHelpers.GetNumElementsIdentifier(info, context))))))))) + //MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, + // CollectionSource.GetManagedValuesSource(info, context), + // IdentifierName("Length"))))))))) + .WithLeadingTrivia(Trivia( + PragmaWarningDirectiveTrivia( + Token(SyntaxKind.DisableKeyword), + SingletonSeparatedList(IdentifierName("CS9081")), + isActive: true))) + .WithTrailingTrivia(Trivia( + PragmaWarningDirectiveTrivia( + Token(SyntaxKind.RestoreKeyword), + SingletonSeparatedList(IdentifierName("CS9081")), + isActive: true))); var nativeSpanDeclaration = LocalDeclarationStatement(VariableDeclaration( GenericName( Identifier(TypeNames.System_Span), TypeArgumentList( SingletonSeparatedList(_unmanagedElementType)) ), - SingletonSeparatedList(VariableDeclarator(nativeSpanIdentifier).WithInitializer(EqualsValueClause( - StackAllocArrayCreationExpression( - ArrayType(_unmanagedElementType, - SingletonList(ArrayRankSpecifier(SingletonSeparatedList( - MemberAccessExpression(SyntaxKind.SimpleMemberAccessExpression, - CollectionSource.GetManagedValuesSource(info, context), - IdentifierName("Length")))))))))))); + SingletonSeparatedList(VariableDeclarator(nativeSpanIdentifier) + .WithInitializer(EqualsValueClause( + IdentifierName(context.GetIdentifiers(info).native)))))); LocalDeclarationStatementSyntax managedSpanDeclaration = LocalDeclarationStatement(VariableDeclaration( GenericName( @@ -584,6 +666,7 @@ public override StatementSyntax GenerateUnmanagedToManagedByValueOutMarshalState CollectionSource.GetManagedValuesDestination(info, context)))))); return Block( setNumElements, + outInit, nativeSpanDeclaration, managedSpanDeclaration, GenerateContentsMarshallingStatement( diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs index 74fb27aba4a8c..25c48acf878b1 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/MarshallerHelpers.cs @@ -400,8 +400,8 @@ public static MarshalDirection GetMarshalDirection(TypePositionInfo info, StubCo /// This is necessary for scenarios with unmanaged callers where the parameter is expected to be modified If and Only If the method returns successfully. /// public static bool MarshalsOutToLocal(TypePositionInfo info, StubCodeContext context) - // Managed callers will throw if the return is a failure, and so it is less important that the parameters aren't modified before returning a failure. => context.Direction is MarshalDirection.UnmanagedToManaged + && context.AdditionalTemporaryStateLivesAcrossStages && (info.IsByRef && info.RefKind is RefKind.Out or RefKind.Ref || info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) || (info.IsManagedReturnPosition && !info.IsNativeReturnPosition)); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs index 586de4c2964fb..a25e1199f6371 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatefulMarshallingStrategy.cs @@ -379,7 +379,7 @@ public StatefulLinearCollectionMarshalling( public ManagedTypeInfo AsNativeType(TypePositionInfo info) => _innerMarshaller.AsNativeType(info); public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { - if (!_cleanupElements) + if (!_cleanupElements && !(context is MarshalToLocalContext)) { yield break; } @@ -450,6 +450,17 @@ public IEnumerable GenerateSetupStatements(TypePositionInfo inf { InstanceIdentifier = numElementsIdentifier }, context); + + if (MarshallerHelpers.MarshalsOutToLocal(info, context) + && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) + { + yield return LocalDeclarationStatement(VariableDeclaration( + GenericName( + Identifier(TypeNames.System_Span), + TypeArgumentList( + SingletonSeparatedList(_elementsMarshalling.UnmanagedElementType))), + SingletonSeparatedList(VariableDeclarator(context.GetAdditionalIdentifier(info, "out"))))); + } } public IEnumerable GenerateUnmarshalStatements(TypePositionInfo info, StubCodeContext context) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs index 756147a5d6b0a..79bff5c1f72fa 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/StatelessMarshallingStrategy.cs @@ -584,7 +584,7 @@ public IEnumerable GenerateAssignOutStatements(TypePositionInfo public IEnumerable GenerateCleanupStatements(TypePositionInfo info, StubCodeContext context) { - if (!_cleanupElementsAndSpace) + if (!_cleanupElementsAndSpace && !(context is MarshalToLocalContext)) { yield break; } @@ -655,6 +655,16 @@ public IEnumerable GenerateSetupStatements(TypePositionInfo inf { yield return elementsSetup; } + if (MarshallerHelpers.MarshalsOutToLocal(info, context) + && info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out)) + { + yield return LocalDeclarationStatement(VariableDeclaration( + GenericName( + Identifier(TypeNames.System_Span), + TypeArgumentList( + SingletonSeparatedList(_elementsMarshalling.UnmanagedElementType))), + SingletonSeparatedList(VariableDeclarator(context.GetAdditionalIdentifier(info, "out"))))); + } } public IEnumerable GenerateUnmarshalCaptureStatements(TypePositionInfo info, StubCodeContext context) => Array.Empty(); diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs index 1a7dfbfffd066..0df4ce774848a 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/VariableDeclarations.cs @@ -178,7 +178,8 @@ static void AppendVariableDeclarations(ImmutableArray __param_native_out; diff --git a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs index 409ed1d6125de..0e1798b398ac7 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/RcwAroundCcwTests.cs @@ -41,7 +41,7 @@ public void IInt() [Fact] public void IDerived() { - var obj = CreateWrapper(); + IDerived obj = CreateWrapper(); obj.SetInt(1); Assert.Equal(1, obj.GetInt()); obj.SetName("A"); @@ -71,10 +71,14 @@ public void IIntArray() var obj = CreateWrapper(); int[] data = new int[] { 1, 2, 3 }; int length = data.Length; - obj.Set(data, length); - Assert.Equal(data, obj.Get(out int _)); - obj.Get2(out var value); + obj.SetContents(data, length); + Assert.Equal(data, obj.GetReturn(out int _)); + obj.GetOut(out var value); Assert.Equal(data, value); + obj.SwapArray(ref data, data.Length); + obj.PassIn(in data, data.Length); + // https://github.com/dotnet/runtime/issues/89265 + //obj.Double(data, data.Length); } [Fact] @@ -110,14 +114,13 @@ public void ICollectionMarshallingFails() var obj = CreateWrapper(); Assert.Throws(() => - _ = obj.Get() + _ = obj.Get(out _) ); Assert.Throws(() => - obj.Set(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }) + obj.Set(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }, 10) ); } - [ActiveIssue("https://github.com/dotnet/runtime/issues/88111")] [Fact] public void IJaggedArrayMarshallingFails() { @@ -127,8 +130,8 @@ public void IJaggedArrayMarshallingFails() _ = obj.Get(out _, out _) ); var array = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5, }, new int[] { 6, 7, 8, 9 } }; - var length = 3; var widths = new int[] { 3, 2, 4 }; + var length = 3; Assert.Throws(() => obj.Set(array, widths, length) ); diff --git a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/UnmanagedToManagedCustomMarshallingTests.cs b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/UnmanagedToManagedCustomMarshallingTests.cs index 54e96f3b268f8..f5ed4bf64d415 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/UnmanagedToManagedCustomMarshallingTests.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Tests/UnmanagedToManagedCustomMarshallingTests.cs @@ -2,14 +2,11 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; -using System.Collections.Generic; using System.Linq; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.InteropServices.Marshalling; -using System.Text; using System.Threading; -using System.Threading.Tasks; using SharedTypes; using Xunit; using static ComInterfaceGenerator.Tests.UnmanagedToManagedCustomMarshallingTests; @@ -281,6 +278,7 @@ public unsafe void ValidateArrayElementsByRefFreed_Stateful() } [Fact] + [ActiveIssue("Make issue: ByValueContents out do not get freed")] public unsafe void ValidateArrayElementsByValueOutFreed_Stateful() { const int startingValue = 13; @@ -451,7 +449,7 @@ public void FromManaged(TManaged[] managed) public TUnmanaged* ToUnmanaged() { - return _unmanaged = (TUnmanaged*)Marshal.AllocCoTaskMem(sizeof(TUnmanaged) * _managed.Length); + return _unmanaged = (TUnmanaged*)Marshal.AllocCoTaskMem(sizeof(TUnmanaged) * _managed.Length); } public ReadOnlySpan GetManagedValuesSource() diff --git a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs index 4fbe5cabbcd80..ea91fa0b7454e 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/ComInterfaceGenerator.Unit.Tests/CompileFails.cs @@ -6,7 +6,6 @@ using System.Diagnostics; using System.Linq; using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; using System.Runtime.InteropServices.Marshalling; using System.Threading.Tasks; using Microsoft.CodeAnalysis; @@ -780,11 +779,12 @@ public static IEnumerable ByValueMarshalAttributeOnPinnedMarshalledTyp .WithLocation(1) .WithLocation(2) .WithArguments(SR.InOutAttributes, paramName, SR.PinnedMarshallingIsInOutByDefault); - yield return new object[] { - ID(), - codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute + constElementCount, "int[]", paramNameWithLocation), - new DiagnosticResult[] { inOutAttributeIsDefaultDiagnostic } - }; + // https://github.com/dotnet/runtime/issues/89265 + //yield return new object[] { + // ID(), + // codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute + constElementCount, "int[]", paramNameWithLocation), + // new DiagnosticResult[] { inOutAttributeIsDefaultDiagnostic } + //}; yield return new object[] { ID(), codeSnippets.ByValueMarshallingOfType(inAttribute + outAttribute + constElementCount, "char[]", paramNameWithLocation, (StringMarshalling.Utf16, null)), diff --git a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/CollectionMarshallingFails.cs b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/CollectionMarshallingFails.cs index 3e51f406db3da..ec5ac6f651859 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/CollectionMarshallingFails.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/CollectionMarshallingFails.cs @@ -208,16 +208,6 @@ public void MultiDimensionalOutArray_EnsureAllCleaned() { var arr = GetMultiDimensionalArray(10, 10); var widths = new int[10] { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 }; - //foreach (var throwOn in new int[] { 0, 1, 45, 99 }) - //{ - // EnforceAllElementsCleanedUpBoolStruct.ThrowOnNthUnmarshalledElement(throwOn); - // EnforceAllElementsCleanedUpBoolStruct.ExpectedCleanupNumber = 100; - // Assert.Throws(() => - // { - // NativeExportsNE.MarshallingFails.NegateBoolsOut2D(arr, arr.Length, widths, out BoolStruct[][] boolsOut); - // }); - // EnforceAllElementsCleanedUpBoolStruct.AssertAllHaveBeenCleaned(); - //} // Run without throwing - this is okay only because the native code doesn't actually use the array, it creates a whole new one EnforceAllElementsCleanedUpBoolStruct.ThrowOnNthUnmarshalledElement(-1); EnforceAllElementsCleanedUpBoolStruct.ExpectedCleanupNumber = 100; diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IIntArray.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IIntArray.cs index 95d1e6d856d74..24a2e610d1dc7 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IIntArray.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/IIntArray.cs @@ -12,28 +12,62 @@ namespace SharedTypes.ComInterfaces internal partial interface IIntArray { [return: MarshalUsing(CountElementName = nameof(size))] - int[] Get(out int size); - int Get2([MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue)] out int[] array); - void Set([MarshalUsing(CountElementName = nameof(size))] int[] array, int size); + int[] GetReturn(out int size); + int GetOut([MarshalUsing(CountElementName = MarshalUsingAttribute.ReturnsCountValue)] out int[] array); + void SetContents([MarshalUsing(CountElementName = nameof(size))] int[] array, int size); + void FillAscending([Out][MarshalUsing(CountElementName = nameof(size))] int[] array, int size); + // https://github.com/dotnet/runtime/issues/89265 + //void Double([In, Out][MarshalUsing(CountElementName = nameof(size))] int[] array, int size); + void PassIn([MarshalUsing(CountElementName = nameof(size))] in int[] array, int size); + void SwapArray([MarshalUsing(CountElementName = nameof(size))] ref int[] array, int size); } [GeneratedComClass] internal partial class IIntArrayImpl : IIntArray { int[] _data; - public int[] Get(out int size) + public int[] GetReturn(out int size) { size = _data.Length; return _data; } - public int Get2(out int[] array) + public int GetOut(out int[] array) { array = _data; return array.Length; } - public void Set(int[] array, int size) + public void SetContents(int[] array, int size) { + _data = new int[size]; + array.CopyTo(_data, 0); + } + + public void FillAscending(int[] array, int size) + { + for (int i = 0; i < size; i++) + { + array[i] = i; + } + } + public void Double(int[] array, int size) + { + for (int i = 0; i < size; i++) + { + array[i] = array[i] * 2; + } + + } + + public void PassIn([MarshalUsing(CountElementName = "size")] in int[] array, int size) + { + _data = new int[size]; + array.CopyTo(_data, 0); + } + public void SwapArray([MarshalUsing(CountElementName = "size")] ref int[] array, int size) + { + var temp = _data; _data = array; + array = temp; } } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ICollectionMarshallingFails.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ICollectionMarshallingFails.cs index 1122d3fa9b06d..6e01be3d7e7da 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ICollectionMarshallingFails.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ICollectionMarshallingFails.cs @@ -11,20 +11,28 @@ namespace SharedTypes.ComInterfaces.MarshallingFails [Guid("A4857395-06FB-4A6E-81DB-35461BE999C5")] internal partial interface ICollectionMarshallingFails { - [return: MarshalUsing(ConstantElementCount = 10)] + [return: MarshalUsing(CountElementName = nameof(size))] [return: MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 1)] - public int[] Get(); + public int[] Get(out int size); public void Set( - [MarshalUsing(ConstantElementCount = 10)] + [MarshalUsing(CountElementName = nameof(size))] [MarshalUsing(typeof(ThrowOn4thElementMarshalled), ElementIndirectionDepth = 1)] - int[] value); + int[] value, int size); } [GeneratedComClass] internal partial class ICollectionMarshallingFailsImpl : ICollectionMarshallingFails { - int[] _data = new[] { 1, 2, 3 }; - public int[] Get() => _data; - public void Set(int[] value) => _data = value; + int[] _data = new[] { 1, 2, 3, 4, 5, 6, 7, 8 }; + public int[] Get(out int size) + { + size = _data.Length; + return _data; + } + public void Set(int[] value, int size) + { + _data = new int[size]; + value.CopyTo(_data, 0); + } } } diff --git a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ThrowOn4thElementMarshalled.cs b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ThrowOn4thElementMarshalled.cs index 6a9fe58c64713..99e01d95278e4 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ThrowOn4thElementMarshalled.cs +++ b/src/libraries/System.Runtime.InteropServices/tests/TestAssets/SharedTypes/ComInterfaces/MarshallingFails/ThrowOn4thElementMarshalled.cs @@ -12,6 +12,7 @@ internal static class ThrowOn4thElementMarshalled { static int _marshalledCount = 0; static int _unmarshalledCount = 0; + public static int FreeCount { get; private set; } public static nint ConvertToUnmanaged(int managed) { if (_marshalledCount++ == 3) @@ -31,6 +32,7 @@ public static int ConvertToManaged(nint unmanaged) } return (int)unmanaged; } + public static void Free(nint unmanaged) => ++FreeCount; } } From 525f58c17257c24547dc8b02bb04b81ba274c399 Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Fri, 21 Jul 2023 10:21:58 -0700 Subject: [PATCH 19/20] Passing tests --- .../Marshalling/CustomTypeMarshallingGenerator.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs index 417d6edff843e..d119501f9164b 100644 --- a/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs +++ b/src/libraries/System.Runtime.InteropServices/gen/Microsoft.Interop.SourceGeneration/Marshalling/CustomTypeMarshallingGenerator.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; namespace Microsoft.Interop @@ -103,7 +104,9 @@ public IEnumerable Generate(TypePositionInfo info, StubCodeCont // We don't correctly clean up the [out] parameters if (context is MarshalToLocalContext && (info.ByValueContentsMarshalKind.HasFlag(ByValueContentsMarshalKind.Out) - )) + || info.RefKind is RefKind.Out)) + break; + else if (context.Direction is MarshalDirection.UnmanagedToManaged && info.RefKind is RefKind.Out) break; else return _nativeTypeMarshaller.GenerateCleanupStatements(info, context); From 0fccde6a557da92faae28e24c42011c70d108ded Mon Sep 17 00:00:00 2001 From: Jackson Schuster <36744439+jtschuster@users.noreply.github.com> Date: Wed, 26 Jul 2023 11:29:08 -0700 Subject: [PATCH 20/20] Remove extraneous changes --- .../LibraryImportGenerator.Tests.csproj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/LibraryImportGenerator.Tests.csproj b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/LibraryImportGenerator.Tests.csproj index 62daeeb0d8a08..9b91d1800dc39 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/LibraryImportGenerator.Tests.csproj +++ b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.Tests/LibraryImportGenerator.Tests.csproj @@ -12,7 +12,8 @@ - +