diff options
author | Marek Safar <marek.safar@gmail.com> | 2015-05-20 10:55:49 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2015-05-20 10:55:49 +0300 |
commit | ed1d3ec5260b613849b9af27c9dbcb6566c1637c (patch) | |
tree | a9c32f30a1c4d45801c7da12e141b98dc0f4bd04 /mcs/class/corlib/System.IO | |
parent | 11b58305d0c62dbd81e48c0c8c83aae4c093c70f (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.cs | 7 |
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) |