Update NetMessage to pass in MemoryStream (#21796)

This commit is contained in:
metalgearsloth
2023-11-28 19:11:16 +11:00
committed by GitHub
parent eeebb3ffd3
commit d783b32d92
5 changed files with 15 additions and 8 deletions

View File

@@ -57,7 +57,8 @@ namespace Content.Shared.Chat
public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer)
{
var length = buffer.ReadVariableInt32();
using var stream = buffer.ReadAlignedMemory(length);
using var stream = new MemoryStream(length);
buffer.ReadAlignedMemory(stream, length);
serializer.DeserializeDirect(stream, out Message);
}

View File

@@ -16,8 +16,9 @@ namespace Content.Shared.Eui
{
Id = buffer.ReadUInt32();
var len = buffer.ReadVariableInt32();
var stream = buffer.ReadAlignedMemory(len);
var length = buffer.ReadVariableInt32();
using var stream = new MemoryStream(length);
buffer.ReadAlignedMemory(stream, length);
Message = ser.Deserialize<EuiMessageBase>(stream);
}

View File

@@ -16,8 +16,9 @@ namespace Content.Shared.Eui
{
Id = buffer.ReadUInt32();
var len = buffer.ReadVariableInt32();
var stream = buffer.ReadAlignedMemory(len);
var length = buffer.ReadVariableInt32();
using var stream = new MemoryStream(length);
buffer.ReadAlignedMemory(stream, length);
State = ser.Deserialize<EuiStateBase>(stream);
}

View File

@@ -18,14 +18,17 @@ namespace Content.Shared.Preferences
public override void ReadFromBuffer(NetIncomingMessage buffer, IRobustSerializer serializer)
{
var length = buffer.ReadVariableInt32();
using (var stream = buffer.ReadAlignedMemory(length))
using (var stream = new MemoryStream())
{
buffer.ReadAlignedMemory(stream, length);
serializer.DeserializeDirect(stream, out Preferences);
}
length = buffer.ReadVariableInt32();
using (var stream = buffer.ReadAlignedMemory(length))
using (var stream = new MemoryStream())
{
buffer.ReadAlignedMemory(stream, length);
serializer.DeserializeDirect(stream, out Settings);
}
}

View File

@@ -19,7 +19,8 @@ namespace Content.Shared.Preferences
{
Slot = buffer.ReadInt32();
var length = buffer.ReadVariableInt32();
using var stream = buffer.ReadAlignedMemory(length);
using var stream = new MemoryStream(length);
buffer.ReadAlignedMemory(stream, length);
Profile = serializer.Deserialize<ICharacterProfile>(stream);
}