summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llgroupmgr.cpp12
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_roles.xml4
2 files changed, 12 insertions, 4 deletions
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp
index 8bd0e520c3..72a52ba13b 100644
--- a/indra/newview/llgroupmgr.cpp
+++ b/indra/newview/llgroupmgr.cpp
@@ -1714,6 +1714,8 @@ void LLGroupMgr::sendGroupMemberEjects(const LLUUID& group_id,
for (std::vector<LLUUID>::iterator it = member_ids.begin();
it != member_ids.end(); ++it)
{
+ LLUUID& ejected_member_id = (*it);
+
// Can't use 'eject' to leave a group.
if ((*it) == gAgent.getID()) continue;
@@ -1734,7 +1736,7 @@ void LLGroupMgr::sendGroupMemberEjects(const LLUUID& group_id,
}
msg->nextBlock("EjectData");
- msg->addUUID("EjecteeID",(*it));
+ msg->addUUID("EjecteeID",ejected_member_id);
if (msg->isSendFull())
{
@@ -1746,13 +1748,15 @@ void LLGroupMgr::sendGroupMemberEjects(const LLUUID& group_id,
for (LLGroupMemberData::role_list_t::iterator rit = (*mit).second->roleBegin();
rit != (*mit).second->roleEnd(); ++rit)
{
- if ((*rit).first.notNull())
+ if ((*rit).first.notNull() && (*rit).second!=0)
{
- (*rit).second->removeMember(*it);
+ (*rit).second->removeMember(ejected_member_id);
}
}
- delete (*mit).second;
+
group_datap->mMembers.erase(*it);
+
+ delete (*mit).second;
}
}
diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml
index f19057cae3..25a0213bde 100644
--- a/indra/newview/skins/default/xui/en/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml
@@ -495,6 +495,10 @@ things in this group. There&apos;s a broad variety of Abilities.
width="300">
<scroll_list.columns
label=""
+ name="icon"
+ width="2" />
+ <scroll_list.columns
+ label=""
name="checkbox"
width="20" />
<scroll_list.columns