mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-06-07 16:06:15 +00:00
Added small performance improvements in SystemTextJsonMessageAccessor
This commit is contained in:
parent
a85bfb4432
commit
02432e5109
@ -242,6 +242,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
|
|||||||
{
|
{
|
||||||
_stream?.Dispose();
|
_stream?.Dispose();
|
||||||
_stream = null;
|
_stream = null;
|
||||||
|
_document?.Dispose();
|
||||||
_document = null;
|
_document = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,6 +262,14 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
var firstByte = data.Span[0];
|
||||||
|
if (firstByte != 0x7b && firstByte != 0x5b)
|
||||||
|
{
|
||||||
|
// Value doesn't start with `{` or `[`, prevent deserialization attempt as it's slow
|
||||||
|
IsJson = false;
|
||||||
|
return new CallResult(new ServerError("Not a json value"));
|
||||||
|
}
|
||||||
|
|
||||||
_document = JsonDocument.Parse(data);
|
_document = JsonDocument.Parse(data);
|
||||||
IsJson = true;
|
IsJson = true;
|
||||||
return new CallResult(null);
|
return new CallResult(null);
|
||||||
@ -289,6 +298,7 @@ namespace CryptoExchange.Net.Converters.SystemTextJson
|
|||||||
public override void Clear()
|
public override void Clear()
|
||||||
{
|
{
|
||||||
_bytes = null;
|
_bytes = null;
|
||||||
|
_document?.Dispose();
|
||||||
_document = null;
|
_document = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user