Backport the r9913 fix

0.6.5-post-fixes
Melanie Thielker 2009-06-23 20:28:07 +00:00
parent 501df1ce2b
commit e01270036a
1 changed files with 6 additions and 2 deletions

View File

@ -8626,6 +8626,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
while (true) while (true)
{ {
int blockCount = members.Count;
if (blockCount > 40)
blockCount = 40;
GroupMembersReplyPacket groupMembersReply = (GroupMembersReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupMembersReply); GroupMembersReplyPacket groupMembersReply = (GroupMembersReplyPacket)PacketPool.Instance.GetPacket(PacketType.GroupMembersReply);
groupMembersReply.AgentData = groupMembersReply.AgentData =
@ -8634,7 +8638,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
new GroupMembersReplyPacket.GroupDataBlock(); new GroupMembersReplyPacket.GroupDataBlock();
groupMembersReply.MemberData = groupMembersReply.MemberData =
new GroupMembersReplyPacket.MemberDataBlock[ new GroupMembersReplyPacket.MemberDataBlock[
members.Count]; blockCount];
groupMembersReply.AgentData.AgentID = AgentId; groupMembersReply.AgentData.AgentID = AgentId;
groupMembersReply.GroupData.GroupID = groupMembersReply.GroupData.GroupID =
@ -8643,7 +8647,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
groupMembersRequestPacket.GroupData.RequestID; groupMembersRequestPacket.GroupData.RequestID;
groupMembersReply.GroupData.MemberCount = members.Count; 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]; GroupMembersData m = members[0];
members.RemoveAt(0); members.RemoveAt(0);