*.log
*.scc
+# Visual Studio
+.vs/
+
# Visual C++ cache files
ipch/
*.aps
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>ccfe6da198c5f05534863bbb1bff66e830e0c6ab</Sha>
</Dependency>
- <Dependency Name="Microsoft.Dotnet.Sdk.Internal" Version="8.0.100-preview.2.23113.1">
+ <Dependency Name="Microsoft.Dotnet.Sdk.Internal" Version="8.0.100-preview.2.23124.7">
<Uri>https://github.com/dotnet/installer</Uri>
- <Sha>0004325188fe0c920870901208d774c8e9ff6753</Sha>
+ <Sha>dc69610af915341dfcb759812ed46acc00e36ae4</Sha>
</Dependency>
- <Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="8.0.0-preview.2.23107.2">
+ <Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="8.0.0-preview.2.23124.5">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
- <Sha>cec7fbf64e63af88a9165cbbf14aa4ab6f8cc76d</Sha>
+ <Sha>a11fec5fad546a315b4565af534f9efccec010b9</Sha>
</Dependency>
- <Dependency Name="Microsoft.AspNetCore.App.Ref" Version="8.0.0-preview.2.23107.2">
+ <Dependency Name="Microsoft.AspNetCore.App.Ref" Version="8.0.0-preview.2.23124.5">
<Uri>https://github.com/dotnet/aspnetcore</Uri>
- <Sha>cec7fbf64e63af88a9165cbbf14aa4ab6f8cc76d</Sha>
+ <Sha>a11fec5fad546a315b4565af534f9efccec010b9</Sha>
</Dependency>
- <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="8.0.0-preview.2.23107.1">
+ <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="8.0.0-preview.2.23124.2">
<Uri>https://github.com/dotnet/runtime</Uri>
- <Sha>e71a4fb10d7ea6b502dd5efe7a8fcefa2b9c1550</Sha>
+ <Sha>9281022e56856094d2bade01908060a7536c3b75</Sha>
</Dependency>
- <Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.7.0" Version="8.0.0-preview.2.23107.1">
+ <Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.8.0" Version="8.0.0-preview.2.23124.2">
<Uri>https://github.com/dotnet/runtime</Uri>
- <Sha>e71a4fb10d7ea6b502dd5efe7a8fcefa2b9c1550</Sha>
+ <Sha>9281022e56856094d2bade01908060a7536c3b75</Sha>
</Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.23123.2">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<!-- Latest symstore version updated by darc -->
<MicrosoftSymbolStoreVersion>1.0.412101</MicrosoftSymbolStoreVersion>
<!-- Latest shared runtime version updated by darc -->
- <VSRedistCommonNetCoreSharedFrameworkx6480Version>8.0.0-preview.2.23107.1</VSRedistCommonNetCoreSharedFrameworkx6480Version>
- <MicrosoftNETCoreAppRuntimewinx64Version>8.0.0-preview.2.23107.1</MicrosoftNETCoreAppRuntimewinx64Version>
+ <VSRedistCommonNetCoreSharedFrameworkx6480Version>8.0.0-preview.2.23124.2</VSRedistCommonNetCoreSharedFrameworkx6480Version>
+ <MicrosoftNETCoreAppRuntimewinx64Version>8.0.0-preview.2.23124.2</MicrosoftNETCoreAppRuntimewinx64Version>
<!-- Latest shared aspnetcore version updated by darc -->
- <MicrosoftAspNetCoreAppRefInternalVersion>8.0.0-preview.2.23107.2</MicrosoftAspNetCoreAppRefInternalVersion>
- <MicrosoftAspNetCoreAppRefVersion>8.0.0-preview.2.23107.2</MicrosoftAspNetCoreAppRefVersion>
+ <MicrosoftAspNetCoreAppRefInternalVersion>8.0.0-preview.2.23124.5</MicrosoftAspNetCoreAppRefInternalVersion>
+ <MicrosoftAspNetCoreAppRefVersion>8.0.0-preview.2.23124.5</MicrosoftAspNetCoreAppRefVersion>
<!-- dotnet/installer: Testing version of the SDK. Needed for the signed & entitled host. -->
- <MicrosoftDotnetSdkInternalVersion>8.0.100-preview.2.23113.1</MicrosoftDotnetSdkInternalVersion>
+ <MicrosoftDotnetSdkInternalVersion>8.0.100-preview.2.23124.7</MicrosoftDotnetSdkInternalVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Runtime versions to test -->
<!-- The SDK runtime version used to build single-file apps (currently hardcoded) -->
<SingleFileRuntime60Version>$(MicrosoftNETCoreApp60Version)</SingleFileRuntime60Version>
<SingleFileRuntime70Version>$(MicrosoftNETCoreApp70Version)</SingleFileRuntime70Version>
- <SingleFileRuntimeLatestVersion>8.0.0-preview.2.23107.1</SingleFileRuntimeLatestVersion>
+ <SingleFileRuntimeLatestVersion>8.0.0-preview.2.23124.2</SingleFileRuntimeLatestVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Opt-in/out repo features -->
var cd = _heap.GetObject(address);
if (!cd.IsValid)
- throw new InvalidOperationException("Adress does not correspond to a ConcurrentDictionary");
+ throw new InvalidOperationException("Address does not correspond to a ConcurrentDictionary");
var tables = cd.ReadObjectField(tablesFieldName);
if (!tables.IsValid)
throw new InvalidOperationException($"ConcurrentDictionary does not own {tablesFieldName} attribute");
for (int i = 0; i < bucketsArray.Length; i++)
{
- var node = bucketsArray.GetObjectValue(i);
- IAddressableTypedEntity keyField = null, valueField = null;
+ ClrObject node;
+ // This field is only in .NET 8 and above. Currently can't use "_clr.ClrInfo.Version.Major >= 8" because
+ // this version isn't the runtime version for single-file apps.
+ if (cd.Type?.GetFieldByName("_comparerIsDefaultForClasses") != null)
+ {
+ // On .NET 8 or more, the array entry is a VolatileNode wrapper (struct)
+ ClrValueType volatileNode = bucketsArray.GetStructValue(i);
+ node = volatileNode.ReadObjectField("_node");
+ }
+ else
+ {
+ // For older runtimes, the array entry is the Node object
+ node = bucketsArray.GetObjectValue(i);
+ }
+ IAddressableTypedEntity keyField, valueField;
if (!node.IsNull && node.IsValid)
{
keyField = node.GetFieldFrom(keyFieldName);