Remove redundant order copies.

This commit is contained in:
Paul Chote
2022-11-27 16:28:31 +00:00
committed by abcdefg30
parent c2208ce8fe
commit 06edc3dff1
2 changed files with 5 additions and 5 deletions

View File

@@ -57,12 +57,12 @@ namespace OpenRA.Network
void IConnection.Send(int frame, IEnumerable<Order> o) void IConnection.Send(int frame, IEnumerable<Order> o)
{ {
orders.Enqueue((frame, new OrderPacket(o.ToArray()))); orders.Enqueue((frame, new OrderPacket(o)));
} }
void IConnection.SendImmediate(IEnumerable<Order> o) void IConnection.SendImmediate(IEnumerable<Order> o)
{ {
immediateOrders.Enqueue(new OrderPacket(o.ToArray())); immediateOrders.Enqueue(new OrderPacket(o));
} }
void IConnection.SendSync(int frame, int syncHash, ulong defeatState) void IConnection.SendSync(int frame, int syncHash, ulong defeatState)
@@ -230,14 +230,14 @@ namespace OpenRA.Network
void IConnection.Send(int frame, IEnumerable<Order> orders) void IConnection.Send(int frame, IEnumerable<Order> orders)
{ {
var o = new OrderPacket(orders.ToArray()); var o = new OrderPacket(orders);
sentOrders.Enqueue((frame, o)); sentOrders.Enqueue((frame, o));
Send(o.Serialize(frame)); Send(o.Serialize(frame));
} }
void IConnection.SendImmediate(IEnumerable<Order> orders) void IConnection.SendImmediate(IEnumerable<Order> orders)
{ {
var o = new OrderPacket(orders.ToArray()); var o = new OrderPacket(orders);
sentImmediateOrders.Enqueue(o); sentImmediateOrders.Enqueue(o);
Send(o.Serialize(0)); Send(o.Serialize(0));
} }

View File

@@ -18,7 +18,7 @@ namespace OpenRA.Network
public class OrderPacket public class OrderPacket
{ {
readonly MemoryStream data; readonly MemoryStream data;
public OrderPacket(Order[] orders) public OrderPacket(IEnumerable<Order> orders)
{ {
// Orders may refer to actors that no longer exist by the time // Orders may refer to actors that no longer exist by the time
// that the order is resolved. In order to ensure consistent // that the order is resolved. In order to ensure consistent