From 11c47ab848ba62fd7381ce0cf55672e0edee4f9b Mon Sep 17 00:00:00 2001 From: Thays Grazia Date: Mon, 27 Feb 2023 18:45:22 -0300 Subject: [PATCH 1/6] trying to fix 45190 --- .../src/HotReload/WebAssemblyHotReload.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs index af79ebff2daf..cf54d4317bd1 100644 --- a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs +++ b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs @@ -26,11 +26,6 @@ public static class WebAssemblyHotReload internal static async Task InitializeAsync() { - // Analyzer has a bug where it doesn't handle ConditionalAttribute: https://github.com/dotnet/roslyn/issues/63464 -#pragma warning disable IDE0200 // Remove unnecessary lambda expression - _hotReloadAgent = new HotReloadAgent(m => Debug.WriteLine(m)); -#pragma warning restore IDE0200 // Remove unnecessary lambda expression - if (Environment.GetEnvironmentVariable("__ASPNETCORE_BROWSER_TOOLS") == "true") { // Attempt to read previously applied hot reload deltas if the ASP.NET Core browser tools are available (indicated by the presence of the Environment variable). @@ -51,13 +46,19 @@ internal static async Task InitializeAsync() public static void ApplyHotReloadDelta(string moduleIdString, byte[] metadataDelta, byte[] ilDelta, byte[] pdbBytes) { var moduleId = Guid.Parse(moduleIdString, CultureInfo.InvariantCulture); +#pragma warning disable IDE0200 // Remove unnecessary lambda expression + if (_hotReloadAgent == null) + { + _hotReloadAgent = new HotReloadAgent(m => Debug.WriteLine(m)); + } +#pragma warning restore IDE0200 // Remove unnecessary lambda expression _updateDeltas[0].ModuleId = moduleId; _updateDeltas[0].MetadataDelta = metadataDelta; _updateDeltas[0].ILDelta = ilDelta; _updateDeltas[0].PdbBytes = pdbBytes; - _hotReloadAgent!.ApplyDeltas(_updateDeltas); + _hotReloadAgent.ApplyDeltas(_updateDeltas); } /// From b7faea474e560832cbaa28649a02aaade8e163d5 Mon Sep 17 00:00:00 2001 From: Thays Grazia Date: Mon, 27 Feb 2023 18:54:49 -0300 Subject: [PATCH 2/6] change initialization order --- .../WebAssembly/src/HotReload/WebAssemblyHotReload.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs index cf54d4317bd1..da59a5949212 100644 --- a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs +++ b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs @@ -45,7 +45,6 @@ internal static async Task InitializeAsync() [JSInvokable(nameof(ApplyHotReloadDelta))] public static void ApplyHotReloadDelta(string moduleIdString, byte[] metadataDelta, byte[] ilDelta, byte[] pdbBytes) { - var moduleId = Guid.Parse(moduleIdString, CultureInfo.InvariantCulture); #pragma warning disable IDE0200 // Remove unnecessary lambda expression if (_hotReloadAgent == null) { @@ -53,6 +52,7 @@ public static void ApplyHotReloadDelta(string moduleIdString, byte[] metadataDel } #pragma warning restore IDE0200 // Remove unnecessary lambda expression + var moduleId = Guid.Parse(moduleIdString, CultureInfo.InvariantCulture); _updateDeltas[0].ModuleId = moduleId; _updateDeltas[0].MetadataDelta = metadataDelta; _updateDeltas[0].ILDelta = ilDelta; From 9e656ae4b71043b2a9f0f2e5fd906665e27720b4 Mon Sep 17 00:00:00 2001 From: Thays Grazia Date: Mon, 27 Feb 2023 18:56:19 -0300 Subject: [PATCH 3/6] keeping old \n --- .../WebAssembly/src/HotReload/WebAssemblyHotReload.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs index da59a5949212..afd637bdfee2 100644 --- a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs +++ b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs @@ -53,6 +53,7 @@ public static void ApplyHotReloadDelta(string moduleIdString, byte[] metadataDel #pragma warning restore IDE0200 // Remove unnecessary lambda expression var moduleId = Guid.Parse(moduleIdString, CultureInfo.InvariantCulture); + _updateDeltas[0].ModuleId = moduleId; _updateDeltas[0].MetadataDelta = metadataDelta; _updateDeltas[0].ILDelta = ilDelta; From 0e486eebc62c7537dcf6afef0d9124eee1c0b61b Mon Sep 17 00:00:00 2001 From: Thays Grazia Date: Mon, 27 Feb 2023 18:59:25 -0300 Subject: [PATCH 4/6] keeping the comment --- .../WebAssembly/src/HotReload/WebAssemblyHotReload.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs index afd637bdfee2..d7c7bd175a77 100644 --- a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs +++ b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs @@ -45,6 +45,7 @@ internal static async Task InitializeAsync() [JSInvokable(nameof(ApplyHotReloadDelta))] public static void ApplyHotReloadDelta(string moduleIdString, byte[] metadataDelta, byte[] ilDelta, byte[] pdbBytes) { +// Analyzer has a bug where it doesn't handle ConditionalAttribute: https://github.com/dotnet/roslyn/issues/63464 #pragma warning disable IDE0200 // Remove unnecessary lambda expression if (_hotReloadAgent == null) { From 844e51360be095bb9bb897b159e6fb6ad2cba457 Mon Sep 17 00:00:00 2001 From: Thays Grazia Date: Mon, 27 Feb 2023 19:00:04 -0300 Subject: [PATCH 5/6] keeping the comment --- .../WebAssembly/src/HotReload/WebAssemblyHotReload.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs index d7c7bd175a77..3a4af957f949 100644 --- a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs +++ b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs @@ -45,7 +45,7 @@ internal static async Task InitializeAsync() [JSInvokable(nameof(ApplyHotReloadDelta))] public static void ApplyHotReloadDelta(string moduleIdString, byte[] metadataDelta, byte[] ilDelta, byte[] pdbBytes) { -// Analyzer has a bug where it doesn't handle ConditionalAttribute: https://github.com/dotnet/roslyn/issues/63464 + // Analyzer has a bug where it doesn't handle ConditionalAttribute: https://github.com/dotnet/roslyn/issues/63464 #pragma warning disable IDE0200 // Remove unnecessary lambda expression if (_hotReloadAgent == null) { From ef2ca007695d5af6a8b69db30cc69a2e88b16b12 Mon Sep 17 00:00:00 2001 From: Thays Grazia Date: Mon, 27 Feb 2023 23:12:28 -0300 Subject: [PATCH 6/6] addressing @tmat comment --- .../WebAssembly/src/HotReload/WebAssemblyHotReload.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs index 3a4af957f949..30c93aa9a7b2 100644 --- a/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs +++ b/src/Components/WebAssembly/WebAssembly/src/HotReload/WebAssemblyHotReload.cs @@ -47,10 +47,7 @@ public static void ApplyHotReloadDelta(string moduleIdString, byte[] metadataDel { // Analyzer has a bug where it doesn't handle ConditionalAttribute: https://github.com/dotnet/roslyn/issues/63464 #pragma warning disable IDE0200 // Remove unnecessary lambda expression - if (_hotReloadAgent == null) - { - _hotReloadAgent = new HotReloadAgent(m => Debug.WriteLine(m)); - } + Interlocked.CompareExchange(ref _hotReloadAgent, new HotReloadAgent(m => Debug.WriteLine(m)), null); #pragma warning restore IDE0200 // Remove unnecessary lambda expression var moduleId = Guid.Parse(moduleIdString, CultureInfo.InvariantCulture);