summaryrefslogtreecommitdiff
path: root/src/System.Private.CoreLib/shared/System/Buffers/Text/Utf8Parser
diff options
context:
space:
mode:
authorTanner Gooding <tagoo@outlook.com>2018-11-12 23:03:20 -0800
committerGitHub <noreply@github.com>2018-11-12 23:03:20 -0800
commitaf659aff6dc7f91a3b82d5e39d877e69b567e580 (patch)
tree013ff160e4bae419e46af2e92def00ec4743d320 /src/System.Private.CoreLib/shared/System/Buffers/Text/Utf8Parser
parentb9975c7e1b3f941caaa8809d36c712af6e500a91 (diff)
downloadcoreclr-af659aff6dc7f91a3b82d5e39d877e69b567e580.tar.gz
coreclr-af659aff6dc7f91a3b82d5e39d877e69b567e580.tar.bz2
coreclr-af659aff6dc7f91a3b82d5e39d877e69b567e580.zip
Fixing Utf8Parser.Number to not modify the value of 'c' (#20967)
Diffstat (limited to 'src/System.Private.CoreLib/shared/System/Buffers/Text/Utf8Parser')
-rw-r--r--src/System.Private.CoreLib/shared/System/Buffers/Text/Utf8Parser/Utf8Parser.Number.cs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/System.Private.CoreLib/shared/System/Buffers/Text/Utf8Parser/Utf8Parser.Number.cs b/src/System.Private.CoreLib/shared/System/Buffers/Text/Utf8Parser/Utf8Parser.Number.cs
index 41fdc36cf5..f39d99fb22 100644
--- a/src/System.Private.CoreLib/shared/System/Buffers/Text/Utf8Parser/Utf8Parser.Number.cs
+++ b/src/System.Private.CoreLib/shared/System/Buffers/Text/Utf8Parser/Utf8Parser.Number.cs
@@ -84,8 +84,9 @@ namespace System.Buffers.Text
while (srcIndex != source.Length)
{
c = source[srcIndex];
+ int value = (byte)(c - (byte)('0'));
- if ((c -= (byte)('0')) > 9)
+ if (value > 9)
{
break;
}
@@ -102,7 +103,7 @@ namespace System.Buffers.Text
// for an input that falls evenly between two representable
// results.
- hasNonZeroTail |= c;
+ hasNonZeroTail |= value;
}
}
number.HasNonZeroTail = (hasNonZeroTail != 0);
@@ -138,8 +139,9 @@ namespace System.Buffers.Text
while (srcIndex != source.Length)
{
c = source[srcIndex];
+ int value = (byte)(c - (byte)('0'));
- if ((c -= (byte)('0')) > 9)
+ if (value > 9)
{
break;
}
@@ -156,7 +158,7 @@ namespace System.Buffers.Text
// for an input that falls evenly between two representable
// results.
- hasNonZeroTail |= c;
+ hasNonZeroTail |= value;
}
}
number.HasNonZeroTail = (hasNonZeroTail != 0);