From 5238a39b5458a34b727ca842c456db47ef13d1b7 Mon Sep 17 00:00:00 2001
From: Merov Linden <merov@lindenlab.com>
Date: Thu, 29 Nov 2012 20:33:17 -0800
Subject: [PATCH] CHUI-552 : Fixed : Filter out participant creation with the
 same id than the session id

---
 indra/newview/llparticipantlist.cpp | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index 9f89b5f809f..6c838f8a452 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -366,8 +366,11 @@ bool LLParticipantList::onSpeakerMuteEvent(LLPointer<LLOldEvents::LLEvent> event
 
 void LLParticipantList::addAvatarIDExceptAgent(const LLUUID& avatar_id)
 {
-	// Do not add if already in there or excluded for some reason
-	if (findParticipant(avatar_id)) return;
+	// Do not add if already in there, is the session id (hence not an avatar) or excluded for some reason
+	if (findParticipant(avatar_id) || (avatar_id == mUUID))
+	{
+		return;
+	}
 
 	bool is_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(avatar_id);
 
@@ -391,7 +394,7 @@ void LLParticipantList::addAvatarIDExceptAgent(const LLUUID& avatar_id)
 
 	// *TODO : Need to update the online/offline status of the participant
 	// Hack for this: LLAvatarTracker::instance().isBuddyOnline(avatar_id))
-
+	
 	// Add the participant model to the session's children list
 	addParticipant(participant);
 
@@ -413,12 +416,12 @@ void LLParticipantList::adjustParticipant(const LLUUID& speaker_id)
 bool LLParticipantList::SpeakerAddListener::handleEvent(LLPointer<LLOldEvents::LLEvent> event, const LLSD& userdata)
 {
 	/**
-	 * We need to filter speaking objects. These objects shouldn't appear in the list
+	 * We need to filter speaking objects. These objects shouldn't appear in the list.
 	 * @see LLFloaterChat::addChat() in llviewermessage.cpp to get detailed call hierarchy
 	 */
 	const LLUUID& speaker_id = event->getValue().asUUID();
 	LLPointer<LLSpeaker> speaker = mParent.mSpeakerMgr->findSpeaker(speaker_id);
-	if(speaker.isNull() || speaker->mType == LLSpeaker::SPEAKER_OBJECT)
+	if (speaker.isNull() || (speaker->mType == LLSpeaker::SPEAKER_OBJECT))
 	{
 		return false;
 	}
-- 
GitLab