diff --git a/indra/llimage/llimagej2c.cpp b/indra/llimage/llimagej2c.cpp
index 30e2d3b44..2f762dff9 100644
--- a/indra/llimage/llimagej2c.cpp
+++ b/indra/llimage/llimagej2c.cpp
@@ -299,9 +299,6 @@ BOOL LLImageJ2C::decodeChannels(LLImageRaw *raw_imagep, F32 decode_time, S32 fir
// Update the raw discard level
updateRawDiscardLevel();
mDecoding = TRUE;
- //
- raw_imagep->decodedImageComment = LLImageMetaDataReader::ExtractEncodedComment(getData(),getDataSize());
- //
res = mImpl->decodeImpl(*this, *raw_imagep, decode_time, first_channel, max_channel_count);
}
@@ -314,6 +311,9 @@ BOOL LLImageJ2C::decodeChannels(LLImageRaw *raw_imagep, F32 decode_time, S32 fir
}
else
{
+ //
+ raw_imagep->decodedImageComment = LLImageMetaDataReader::ExtractEncodedComment(getData(),getDataSize());
+ //
mDecoding = FALSE;
}
}
diff --git a/indra/llimage/llimagemetadatareader.cpp b/indra/llimage/llimagemetadatareader.cpp
index ed6261926..bf2c64c90 100644
--- a/indra/llimage/llimagemetadatareader.cpp
+++ b/indra/llimage/llimagemetadatareader.cpp
@@ -7,8 +7,8 @@ LLJ2cParser::LLJ2cParser(U8* data,int data_size)
if(data && data_size)
{
mData.resize(data_size);
- memcpy(&(mData[0]), data, data_size);
- //std::copy(data,data+data_size,mData.begin());
+ //memcpy(&(mData[0]), data, data_size);
+ std::copy(data,data+data_size,mData.begin());
}
mIter = mData.begin();
}
@@ -83,7 +83,8 @@ std::string LLImageMetaDataReader::ExtractEncodedComment(U8* data,int data_size)
//llinfos << "FOUND PAYLOAD" << llendl;
std::vector payload(128);
S32 i;
- memcpy(&(payload[0]), &(comment[2]), 128);
+ //memcpy(&(payload[0]), &(comment[2]), 128);
+ std::copy(comment.begin()+2,comment.end(),payload.begin());
if (payload[2] == payload[127])
{
// emkdu.dll
@@ -114,6 +115,7 @@ std::string LLImageMetaDataReader::ExtractEncodedComment(U8* data,int data_size)
{
if (payload[i] == 0) break;
}
+ if(i < 4) break;
std::string result(payload.begin()+4,payload.begin()+i);
//llinfos << "FOUND COMMENT: " << result << llendl;
delete parser;
diff --git a/indra/newview/llfloateractivespeakers.cpp b/indra/newview/llfloateractivespeakers.cpp
index 4c73584f0..89b3af621 100644
--- a/indra/newview/llfloateractivespeakers.cpp
+++ b/indra/newview/llfloateractivespeakers.cpp
@@ -510,7 +510,7 @@ void LLPanelActiveSpeakers::refreshSpeakers()
name_cell->setColor(LLColor4::black);
}
//
- if(!mShowTextChatters && speakerp->mType == LLSpeaker::SPEAKER_AGENT && speakerp->mID != gAgent.getID())
+ if(!mShowTextChatters && !(speakerp->mStatus == LLSpeaker::STATUS_NOT_IN_CHANNEL) && speakerp->mID != gAgent.getID())
{
// let us check to see if they are actually in the sim
LLViewerRegion* regionp = gAgent.getRegion();