Merge branch 'future' of https://github.com/Shyotl/SingularityViewer
Conflicts: indra/llrender/llrendertarget.cpp indra/newview/lloverlaybar.cpp
This commit is contained in:
@@ -1180,6 +1180,7 @@ LLVOAvatar::~LLVOAvatar()
|
||||
lldebugs << "LLVOAvatar Destructor (0x" << this << ") id:" << mID << llendl;
|
||||
|
||||
mRoot.removeAllChildren();
|
||||
mJointMap.clear();
|
||||
|
||||
deleteAndClearArray(mSkeleton);
|
||||
deleteAndClearArray(mCollisionVolumes);
|
||||
@@ -2341,6 +2342,7 @@ void LLVOAvatar::buildCharacter()
|
||||
// remove all of mRoot's children
|
||||
//-------------------------------------------------------------------------
|
||||
mRoot.removeAllChildren();
|
||||
mJointMap.clear();
|
||||
mIsBuilt = FALSE;
|
||||
|
||||
//-------------------------------------------------------------------------
|
||||
@@ -5888,7 +5890,20 @@ const LLUUID& LLVOAvatar::getID() const
|
||||
// RN: avatar joints are multi-rooted to include screen-based attachments
|
||||
LLJoint *LLVOAvatar::getJoint( const std::string &name )
|
||||
{
|
||||
LLJoint* jointp = mRoot.findJoint(name);
|
||||
joint_map_t::iterator iter = mJointMap.find(name);
|
||||
|
||||
LLJoint* jointp = NULL;
|
||||
|
||||
if (iter == mJointMap.end() || iter->second == NULL)
|
||||
{ //search for joint and cache found joint in lookup table
|
||||
jointp = mRoot.findJoint(name);
|
||||
mJointMap[name] = jointp;
|
||||
}
|
||||
else
|
||||
{ //return cached pointer
|
||||
jointp = iter->second;
|
||||
}
|
||||
|
||||
return jointp;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user