Rename Stream.Write(byte[]) extension method to fix compatibility with newer mono.

This commit is contained in:
Paul Chote
2018-03-01 19:49:55 +00:00
committed by Matthias Mailänder
parent 9ce0bcb0b7
commit 42f1db0d4b
4 changed files with 18 additions and 16 deletions

View File

@@ -60,26 +60,26 @@ namespace OpenRA.Network
public virtual void Send(int frame, List<byte[]> orders) public virtual void Send(int frame, List<byte[]> orders)
{ {
var ms = new MemoryStream(); var ms = new MemoryStream();
ms.Write(BitConverter.GetBytes(frame)); ms.WriteArray(BitConverter.GetBytes(frame));
foreach (var o in orders) foreach (var o in orders)
ms.Write(o); ms.WriteArray(o);
Send(ms.ToArray()); Send(ms.ToArray());
} }
public virtual void SendImmediate(List<byte[]> orders) public virtual void SendImmediate(List<byte[]> orders)
{ {
var ms = new MemoryStream(); var ms = new MemoryStream();
ms.Write(BitConverter.GetBytes(0)); ms.WriteArray(BitConverter.GetBytes(0));
foreach (var o in orders) foreach (var o in orders)
ms.Write(o); ms.WriteArray(o);
Send(ms.ToArray()); Send(ms.ToArray());
} }
public virtual void SendSync(int frame, byte[] syncData) public virtual void SendSync(int frame, byte[] syncData)
{ {
var ms = new MemoryStream(4 + syncData.Length); var ms = new MemoryStream(4 + syncData.Length);
ms.Write(BitConverter.GetBytes(frame)); ms.WriteArray(BitConverter.GetBytes(frame));
ms.Write(syncData); ms.WriteArray(syncData);
Send(ms.GetBuffer()); Send(ms.GetBuffer());
} }
@@ -198,8 +198,8 @@ namespace OpenRA.Network
public override void SendSync(int frame, byte[] syncData) public override void SendSync(int frame, byte[] syncData)
{ {
var ms = new MemoryStream(4 + syncData.Length); var ms = new MemoryStream(4 + syncData.Length);
ms.Write(BitConverter.GetBytes(frame)); ms.WriteArray(BitConverter.GetBytes(frame));
ms.Write(syncData); ms.WriteArray(syncData);
queuedSyncPackets.Add(ms.GetBuffer()); queuedSyncPackets.Add(ms.GetBuffer());
} }
@@ -210,13 +210,13 @@ namespace OpenRA.Network
try try
{ {
var ms = new MemoryStream(); var ms = new MemoryStream();
ms.Write(BitConverter.GetBytes(packet.Length)); ms.WriteArray(BitConverter.GetBytes(packet.Length));
ms.Write(packet); ms.WriteArray(packet);
foreach (var q in queuedSyncPackets) foreach (var q in queuedSyncPackets)
{ {
ms.Write(BitConverter.GetBytes(q.Length)); ms.WriteArray(BitConverter.GetBytes(q.Length));
ms.Write(q); ms.WriteArray(q);
base.Send(q); base.Send(q);
} }

View File

@@ -16,7 +16,9 @@ namespace OpenRA.Network
{ {
public static class OrderIO public static class OrderIO
{ {
public static void Write(this Stream s, byte[] buf) // Note: renamed from Write() to avoid being aliased by
// System.IO.Stream.Write(System.ReadOnlySpan) (which is not implemented in Mono)
public static void WriteArray(this Stream s, byte[] buf)
{ {
s.Write(buf, 0, buf.Length); s.Write(buf, 0, buf.Length);
} }

View File

@@ -128,8 +128,8 @@ namespace OpenRA.Network
public void SendSync(int frame, byte[] syncData) public void SendSync(int frame, byte[] syncData)
{ {
var ms = new MemoryStream(4 + syncData.Length); var ms = new MemoryStream(4 + syncData.Length);
ms.Write(BitConverter.GetBytes(frame)); ms.WriteArray(BitConverter.GetBytes(frame));
ms.Write(syncData); ms.WriteArray(syncData);
sync.Add(ms.GetBuffer()); sync.Add(ms.GetBuffer());
// Store the current frame so Receive() can return the next chunk of orders. // Store the current frame so Receive() can return the next chunk of orders.

View File

@@ -63,7 +63,7 @@ namespace OpenRA.Network
catch (IOException) { } catch (IOException) { }
} }
file.Write(initialContent); file.WriteArray(initialContent);
writer = new BinaryWriter(file); writer = new BinaryWriter(file);
} }