Skip to content

Commit 3fbdf4c

Browse files
Manually backporting #74599 to 7.0 for RC2. (#75366)
* Manually backporting #74599 to 7.0 for RC2. * Fix a couple mis-copied lines of code and a couple nits.
1 parent fa4ba1b commit 3fbdf4c

File tree

5 files changed

+397
-105
lines changed

5 files changed

+397
-105
lines changed

src/libraries/System.Private.DataContractSerialization/src/System/Xml/XmlBinaryReader.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1350,14 +1350,14 @@ private unsafe int ReadArray(float[] array, int offset, int count)
13501350

13511351
public override int ReadArray(string localName, string namespaceUri, float[] array, int offset, int count)
13521352
{
1353-
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.FloatTextWithEndElement))
1353+
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.FloatTextWithEndElement) && BitConverter.IsLittleEndian)
13541354
return ReadArray(array, offset, count);
13551355
return base.ReadArray(localName, namespaceUri, array, offset, count);
13561356
}
13571357

13581358
public override int ReadArray(XmlDictionaryString localName, XmlDictionaryString namespaceUri, float[] array, int offset, int count)
13591359
{
1360-
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.FloatTextWithEndElement))
1360+
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.FloatTextWithEndElement) && BitConverter.IsLittleEndian)
13611361
return ReadArray(array, offset, count);
13621362
return base.ReadArray(localName, namespaceUri, array, offset, count);
13631363
}
@@ -1373,14 +1373,14 @@ private unsafe int ReadArray(double[] array, int offset, int count)
13731373

13741374
public override int ReadArray(string localName, string namespaceUri, double[] array, int offset, int count)
13751375
{
1376-
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.DoubleTextWithEndElement))
1376+
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.DoubleTextWithEndElement) && BitConverter.IsLittleEndian)
13771377
return ReadArray(array, offset, count);
13781378
return base.ReadArray(localName, namespaceUri, array, offset, count);
13791379
}
13801380

13811381
public override int ReadArray(XmlDictionaryString localName, XmlDictionaryString namespaceUri, double[] array, int offset, int count)
13821382
{
1383-
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.DoubleTextWithEndElement))
1383+
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.DoubleTextWithEndElement) && BitConverter.IsLittleEndian)
13841384
return ReadArray(array, offset, count);
13851385
return base.ReadArray(localName, namespaceUri, array, offset, count);
13861386
}
@@ -1396,14 +1396,14 @@ private unsafe int ReadArray(decimal[] array, int offset, int count)
13961396

13971397
public override int ReadArray(string localName, string namespaceUri, decimal[] array, int offset, int count)
13981398
{
1399-
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.DecimalTextWithEndElement))
1399+
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.DecimalTextWithEndElement) && BitConverter.IsLittleEndian)
14001400
return ReadArray(array, offset, count);
14011401
return base.ReadArray(localName, namespaceUri, array, offset, count);
14021402
}
14031403

14041404
public override int ReadArray(XmlDictionaryString localName, XmlDictionaryString namespaceUri, decimal[] array, int offset, int count)
14051405
{
1406-
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.DecimalTextWithEndElement))
1406+
if (IsStartArray(localName, namespaceUri, XmlBinaryNodeType.DecimalTextWithEndElement) && BitConverter.IsLittleEndian)
14071407
return ReadArray(array, offset, count);
14081408
return base.ReadArray(localName, namespaceUri, array, offset, count);
14091409
}

0 commit comments

Comments
 (0)