Commit 04f6eba9 authored by Jeremy Meng's avatar Jeremy Meng

Rewrite to use GetBytes() overload available on dnxcore.

parent 7e5f3654
...@@ -601,20 +601,17 @@ unsafe void WriteRaw(Stream stream, string value, int encodedLength) ...@@ -601,20 +601,17 @@ unsafe void WriteRaw(Stream stream, string value, int encodedLength)
} }
else else
{ {
fixed (char* c = value) int charsRemaining = value.Length, charOffset = 0, bytesWritten;
fixed (byte* b = outScratch) var valueCharArray = value.ToCharArray();
while (charsRemaining > Scratch_CharsPerBlock)
{ {
int charsRemaining = value.Length, charOffset = 0, bytesWritten; bytesWritten = outEncoder.GetBytes(valueCharArray, charOffset, Scratch_CharsPerBlock, outScratch, 0, false);
while (charsRemaining > Scratch_CharsPerBlock) stream.Write(outScratch, 0, bytesWritten);
{ charOffset += Scratch_CharsPerBlock;
bytesWritten = outEncoder.GetBytes(c + charOffset, Scratch_CharsPerBlock, b, ScratchSize, false); charsRemaining -= Scratch_CharsPerBlock;
stream.Write(outScratch, 0, bytesWritten);
charOffset += Scratch_CharsPerBlock;
charsRemaining -= Scratch_CharsPerBlock;
}
bytesWritten = outEncoder.GetBytes(c + charOffset, charsRemaining, b, ScratchSize, true);
if (bytesWritten != 0) stream.Write(outScratch, 0, bytesWritten);
} }
bytesWritten = outEncoder.GetBytes(valueCharArray, charOffset, charsRemaining, outScratch, 0, true);
if (bytesWritten != 0) stream.Write(outScratch, 0, bytesWritten);
} }
} }
const int ScratchSize = 512; const int ScratchSize = 512;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment