Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2015-05-20 10:55:49 +0300
committerMarek Safar <marek.safar@gmail.com>2015-05-20 10:55:49 +0300
commited1d3ec5260b613849b9af27c9dbcb6566c1637c (patch)
treea9c32f30a1c4d45801c7da12e141b98dc0f4bd04 /mcs/class/corlib/System.IO
parent11b58305d0c62dbd81e48c0c8c83aae4c093c70f (diff)
[corlib] BinaryReader with Unicode encoding needs to read bytes in a pair. Fixes #30171mono-4.0.1.44
Diffstat (limited to 'mcs/class/corlib/System.IO')
-rw-r--r--mcs/class/corlib/System.IO/BinaryReader.cs7
1 files changed, 7 insertions, 0 deletions
diff --git a/mcs/class/corlib/System.IO/BinaryReader.cs b/mcs/class/corlib/System.IO/BinaryReader.cs
index 73235c9c23d..bbcd8174e71 100644
--- a/mcs/class/corlib/System.IO/BinaryReader.cs
+++ b/mcs/class/corlib/System.IO/BinaryReader.cs
@@ -253,6 +253,13 @@ namespace System.IO {
m_buffer [pos ++] = (byte)read_byte;
bytes_read ++;
+ if (m_encoding is UnicodeEncoding) {
+ CheckBuffer (pos + 1);
+ read_byte = m_stream.ReadByte();
+ if (read_byte != -1) {
+ m_buffer [pos++] = (byte)read_byte;
+ }
+ }
int n = m_encoding.GetChars (m_buffer, 0, pos, buffer, index + chars_read);
if (n > 0)