Merge branch 'master' of https://github.com/JamesNK/Newtonsoft.Json
This commit is contained in:
@@ -609,23 +609,25 @@ namespace Newtonsoft.Json.Tests
|
||||
|
||||
Assert.AreEqual(4, value.Count);
|
||||
}
|
||||
|
||||
public class JsonArrayPool : IArrayPool<char>
|
||||
{
|
||||
public static readonly JsonArrayPool Instance = new JsonArrayPool();
|
||||
|
||||
public char[] Rent(int minimumLength)
|
||||
{
|
||||
// use System.Buffers shared pool
|
||||
return ArrayPool<char>.Shared.Rent(minimumLength);
|
||||
}
|
||||
|
||||
public void Return(char[] array)
|
||||
{
|
||||
// use System.Buffers shared pool
|
||||
ArrayPool<char>.Shared.Return(array);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !(NET20 || NET35 || NET40 || NETFX_CORE || PORTABLE || PORTABLE40 || DNXCORE50)
|
||||
public class JsonArrayPool : IArrayPool<char>
|
||||
{
|
||||
public static readonly JsonArrayPool Instance = new JsonArrayPool();
|
||||
|
||||
public char[] Rent(int minimumLength)
|
||||
{
|
||||
// use System.Buffers shared pool
|
||||
return ArrayPool<char>.Shared.Rent(minimumLength);
|
||||
}
|
||||
|
||||
public void Return(char[] array)
|
||||
{
|
||||
// use System.Buffers shared pool
|
||||
ArrayPool<char>.Shared.Return(array);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -49,6 +49,7 @@ using NUnit.Framework;
|
||||
using Newtonsoft.Json;
|
||||
using System.IO;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Newtonsoft.Json.Utilities;
|
||||
|
||||
namespace Newtonsoft.Json.Tests
|
||||
@@ -136,6 +137,33 @@ namespace Newtonsoft.Json.Tests
|
||||
Assert.AreEqual(1, arrayPool.FreeArrays.Count);
|
||||
}
|
||||
|
||||
#if !(NET20 || NET35 || NET40 || NETFX_CORE || PORTABLE || PORTABLE40 || DNXCORE50)
|
||||
[Test]
|
||||
public void BufferErroringWithInvalidSize()
|
||||
{
|
||||
JObject o = new JObject
|
||||
{
|
||||
{"BodyHtml", "<h3>Title!</h3>" + Environment.NewLine + new string(' ', 100) + "<p>Content!</p>"}
|
||||
};
|
||||
|
||||
JsonArrayPool arrayPool = new JsonArrayPool();
|
||||
|
||||
StringWriter sw = new StringWriter();
|
||||
using (JsonTextWriter writer = new JsonTextWriter(sw))
|
||||
{
|
||||
writer.ArrayPool = arrayPool;
|
||||
|
||||
o.WriteTo(writer);
|
||||
}
|
||||
|
||||
string result = o.ToString();
|
||||
|
||||
Assert.AreEqual(@"{
|
||||
""BodyHtml"": ""<h3>Title!</h3>\r\n <p>Content!</p>""
|
||||
}", result);
|
||||
}
|
||||
#endif
|
||||
|
||||
[Test]
|
||||
public void NewLine()
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"Autofac": "4.0.0-beta7-130",
|
||||
"FSharp.Core": "4.0.0.1",
|
||||
"NUnit": "2.6.2",
|
||||
"System.Buffers": "4.0.0-rc2-23623",
|
||||
"System.Buffers": "4.0.0-rc2-23826",
|
||||
"System.Collections.Immutable": "1.1.37"
|
||||
},
|
||||
"frameworks": {
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"FSharp.Core": "4.0.0.1",
|
||||
"NUnit": "2.6.4",
|
||||
"System.Collections.Immutable": "1.1.37",
|
||||
"System.Buffers": "4.0.0-rc2-23623"
|
||||
"System.Buffers": "4.0.0-rc2-23826"
|
||||
}
|
||||
},
|
||||
"net40": {
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace Newtonsoft.Json
|
||||
OptOut = 0,
|
||||
|
||||
/// <summary>
|
||||
/// Only members must be marked with <see cref="JsonPropertyAttribute"/> or <see cref="DataMemberAttribute"/> are serialized.
|
||||
/// Only members marked with <see cref="JsonPropertyAttribute"/> or <see cref="DataMemberAttribute"/> are serialized.
|
||||
/// This member serialization mode can also be set by marking the class with <see cref="DataContractAttribute"/>.
|
||||
/// </summary>
|
||||
OptIn = 1,
|
||||
@@ -55,4 +55,4 @@ namespace Newtonsoft.Json
|
||||
Fields = 2
|
||||
#pragma warning restore 1584,1711,1572,1581,1580,1574
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@ namespace Newtonsoft.Json.Utilities
|
||||
|
||||
if (writeBuffer == null || writeBuffer.Length < length)
|
||||
{
|
||||
writeBuffer = new char[length];
|
||||
writeBuffer = BufferUtils.EnsureBufferSize(bufferPool, length, writeBuffer);
|
||||
}
|
||||
|
||||
s.CopyTo(lastWritePosition, writeBuffer, 0, length);
|
||||
|
||||
Reference in New Issue
Block a user