From 0567ca5eeb53b77ee6a18b29dc14df3a4506da92 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Sun, 11 Oct 2026 23:14:18 +1100 Subject: [PATCH 1/3] Fix swapped out parameters in Base64Url.DecodeFromUtf8 --- src/Polyfill/Base64Url.cs | 2 +- src/Split/net461/Base64Url.cs | 2 +- src/Split/net462/Base64Url.cs | 2 +- src/Split/net47/Base64Url.cs | 2 +- src/Split/net471/Base64Url.cs | 2 +- src/Split/net472/Base64Url.cs | 2 +- src/Split/net48/Base64Url.cs | 2 +- src/Split/net481/Base64Url.cs | 2 +- src/Split/net5.0/Base64Url.cs | 2 +- src/Split/net6.0/Base64Url.cs | 2 +- src/Split/net7.0/Base64Url.cs | 2 +- src/Split/net8.0/Base64Url.cs | 2 +- src/Split/netcoreapp2.0/Base64Url.cs | 2 +- src/Split/netcoreapp2.1/Base64Url.cs | 2 +- src/Split/netcoreapp2.2/Base64Url.cs | 2 +- src/Split/netcoreapp3.0/Base64Url.cs | 2 +- src/Split/netcoreapp3.1/Base64Url.cs | 2 +- src/Split/netstandard2.0/Base64Url.cs | 2 +- src/Split/netstandard2.1/Base64Url.cs | 2 +- src/Split/uap10.0/Base64Url.cs | 2 +- src/Tests/Base64UrlTests.cs | 11 +++++++++++ 21 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/Polyfill/Base64Url.cs b/src/Polyfill/Base64Url.cs index 039c58cf..179a8528 100644 --- a/src/Polyfill/Base64Url.cs +++ b/src/Polyfill/Base64Url.cs @@ -369,7 +369,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net461/Base64Url.cs b/src/Split/net461/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net461/Base64Url.cs +++ b/src/Split/net461/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net462/Base64Url.cs b/src/Split/net462/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net462/Base64Url.cs +++ b/src/Split/net462/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net47/Base64Url.cs b/src/Split/net47/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net47/Base64Url.cs +++ b/src/Split/net47/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net471/Base64Url.cs b/src/Split/net471/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net471/Base64Url.cs +++ b/src/Split/net471/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net472/Base64Url.cs b/src/Split/net472/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net472/Base64Url.cs +++ b/src/Split/net472/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net48/Base64Url.cs b/src/Split/net48/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net48/Base64Url.cs +++ b/src/Split/net48/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net481/Base64Url.cs b/src/Split/net481/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net481/Base64Url.cs +++ b/src/Split/net481/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net5.0/Base64Url.cs b/src/Split/net5.0/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net5.0/Base64Url.cs +++ b/src/Split/net5.0/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net6.0/Base64Url.cs b/src/Split/net6.0/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net6.0/Base64Url.cs +++ b/src/Split/net6.0/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net7.0/Base64Url.cs b/src/Split/net7.0/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net7.0/Base64Url.cs +++ b/src/Split/net7.0/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/net8.0/Base64Url.cs b/src/Split/net8.0/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/net8.0/Base64Url.cs +++ b/src/Split/net8.0/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/netcoreapp2.0/Base64Url.cs b/src/Split/netcoreapp2.0/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/netcoreapp2.0/Base64Url.cs +++ b/src/Split/netcoreapp2.0/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/netcoreapp2.1/Base64Url.cs b/src/Split/netcoreapp2.1/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/netcoreapp2.1/Base64Url.cs +++ b/src/Split/netcoreapp2.1/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/netcoreapp2.2/Base64Url.cs b/src/Split/netcoreapp2.2/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/netcoreapp2.2/Base64Url.cs +++ b/src/Split/netcoreapp2.2/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/netcoreapp3.0/Base64Url.cs b/src/Split/netcoreapp3.0/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/netcoreapp3.0/Base64Url.cs +++ b/src/Split/netcoreapp3.0/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/netcoreapp3.1/Base64Url.cs b/src/Split/netcoreapp3.1/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/netcoreapp3.1/Base64Url.cs +++ b/src/Split/netcoreapp3.1/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/netstandard2.0/Base64Url.cs b/src/Split/netstandard2.0/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/netstandard2.0/Base64Url.cs +++ b/src/Split/netstandard2.0/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/netstandard2.1/Base64Url.cs b/src/Split/netstandard2.1/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/netstandard2.1/Base64Url.cs +++ b/src/Split/netstandard2.1/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Split/uap10.0/Base64Url.cs b/src/Split/uap10.0/Base64Url.cs index fb22774c..817dcd19 100644 --- a/src/Split/uap10.0/Base64Url.cs +++ b/src/Split/uap10.0/Base64Url.cs @@ -282,7 +282,7 @@ public static int DecodeFromUtf8(ReadOnlySpan source, Span destinati public static OperationStatus DecodeFromUtf8(ReadOnlySpan source, Span destination, out int bytesConsumed, out int bytesWritten, bool isFinalBlock = true) { var chars = BytesToChars(source); - var status = DecodeFromChars(chars, destination, out bytesWritten, out var charsConsumed, isFinalBlock); + var status = DecodeFromChars(chars, destination, out var charsConsumed, out bytesWritten, isFinalBlock); bytesConsumed = charsConsumed; return status; } diff --git a/src/Tests/Base64UrlTests.cs b/src/Tests/Base64UrlTests.cs index bd133a4b..736d3403 100644 --- a/src/Tests/Base64UrlTests.cs +++ b/src/Tests/Base64UrlTests.cs @@ -398,6 +398,17 @@ public async Task DecodeFromChars_OperationStatus_Blocks() await Assert.That(consumed).IsEqualTo(4); await Assert.That(written).IsEqualTo(3); } + + [Test] + public async Task DecodeFromUtf8_OperationStatus_Done() + { + var destination = new byte[20]; + var status = Base64Url.DecodeFromUtf8("AQID"u8, destination, out var bytesConsumed, out var bytesWritten); + await Assert.That(status).IsEqualTo(OperationStatus.Done); + await Assert.That(bytesConsumed).IsEqualTo(4); + await Assert.That(bytesWritten).IsEqualTo(3); + await Assert.That(destination.AsSpan(0, 3).ToArray()).IsEquivalentTo(new byte[] {1, 2, 3}); + } } #endif From 17bc5581dd6cb087c52864bab76710db435f374b Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Mon, 12 Oct 2026 11:04:06 +1100 Subject: [PATCH 2/3] Regenerate docs --- assemblySize.include.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assemblySize.include.md b/assemblySize.include.md index f4821472..0fc84a8a 100644 --- a/assemblySize.include.md +++ b/assemblySize.include.md @@ -41,8 +41,8 @@ | netcoreapp2.0 | 9.0KB | 560.8KB | +551.8KB | +16.6KB | +8.2KB | +14.4KB | +19.4KB | | netcoreapp2.1 | 9.0KB | 523.9KB | +514.9KB | +15.1KB | +7.2KB | +12.9KB | +18.4KB | | netcoreapp2.2 | 9.0KB | 523.9KB | +514.9KB | +15.1KB | +7.2KB | +12.9KB | +18.4KB | -| netcoreapp3.0 | 9.5KB | 502.0KB | +492.5KB | +15.6KB | +8.2KB | +14.4KB | +19.4KB | -| netcoreapp3.1 | 9.5KB | 502.0KB | +492.5KB | +15.6KB | +8.2KB | +14.4KB | +19.4KB | +| netcoreapp3.0 | 9.5KB | 501.9KB | +492.4KB | +15.6KB | +8.2KB | +14.4KB | +19.4KB | +| netcoreapp3.1 | 9.5KB | 501.9KB | +492.4KB | +15.6KB | +8.2KB | +14.4KB | +19.4KB | | net5.0 | 9.5KB | 449.4KB | +439.9KB | +16.1KB | +8.2KB | +13.9KB | +18.9KB | | net6.0 | 10.0KB | 367.6KB | +357.6KB | +17.1KB | +8.2KB | +1.1KB | +3.7KB | | net7.0 | 10.0KB | 320.2KB | +310.2KB | +17.0KB | +6.9KB | +1.1KB | +4.2KB | From c86790b318bcc813aec750dcdf44a64f421c4c09 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 12 Oct 2026 00:05:06 +0000 Subject: [PATCH 3/3] Docs changes --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index 645a9285..192638d7 100644 --- a/readme.md +++ b/readme.md @@ -140,8 +140,8 @@ Only [SDK-style projects](https://learn.microsoft.com/en-us/dotnet/core/project- | netcoreapp2.0 | 9.0KB | 560.8KB | +551.8KB | +16.6KB | +8.2KB | +14.4KB | +19.4KB | | netcoreapp2.1 | 9.0KB | 523.9KB | +514.9KB | +15.1KB | +7.2KB | +12.9KB | +18.4KB | | netcoreapp2.2 | 9.0KB | 523.9KB | +514.9KB | +15.1KB | +7.2KB | +12.9KB | +18.4KB | -| netcoreapp3.0 | 9.5KB | 502.0KB | +492.5KB | +15.6KB | +8.2KB | +14.4KB | +19.4KB | -| netcoreapp3.1 | 9.5KB | 502.0KB | +492.5KB | +15.6KB | +8.2KB | +14.4KB | +19.4KB | +| netcoreapp3.0 | 9.5KB | 501.9KB | +492.4KB | +15.6KB | +8.2KB | +14.4KB | +19.4KB | +| netcoreapp3.1 | 9.5KB | 501.9KB | +492.4KB | +15.6KB | +8.2KB | +14.4KB | +19.4KB | | net5.0 | 9.5KB | 449.4KB | +439.9KB | +16.1KB | +8.2KB | +13.9KB | +18.9KB | | net6.0 | 10.0KB | 367.6KB | +357.6KB | +17.1KB | +8.2KB | +1.1KB | +3.7KB | | net7.0 | 10.0KB | 320.2KB | +310.2KB | +17.0KB | +6.9KB | +1.1KB | +4.2KB |