From e01270036abe6c48dda1ae381cac1e1836fc1c21 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Tue, 23 Jun 2009 20:28:07 +0000 Subject: [PATCH] Backport the r9913 fix --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 3f27152dd2..03db977c70 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -8626,6 +8626,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP while (true) { + int blockCount = members.Count; + if (blockCount > 40) + blockCount = 40; + GroupMembersReplyPacket groupMembersReply = (GroupMembersReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupMembersReply); groupMembersReply.AgentData = @@ -8634,7 +8638,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP new GroupMembersReplyPacket.GroupDataBlock(); groupMembersReply.MemberData = new GroupMembersReplyPacket.MemberDataBlock[ - members.Count]; + blockCount]; groupMembersReply.AgentData.AgentID = AgentId; groupMembersReply.GroupData.GroupID = @@ -8643,7 +8647,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP groupMembersRequestPacket.GroupData.RequestID; groupMembersReply.GroupData.MemberCount = members.Count; - for (int i = 0 ; i < 60 && members.Count > 0 ; i++) + for (int i = 0 ; i < blockCount ; i++) { GroupMembersData m = members[0]; members.RemoveAt(0);