diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2013-08-06 18:03:23 -0600 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2013-08-06 18:03:23 -0600 |
commit | be8d04c358086d6650fe7a8195949ba6c11096ae (patch) | |
tree | f9c6d8b62c9dfee772c549de309a35682b4a20bc /indra/newview/llviewerregion.cpp | |
parent | ddef4d7ff74ecff49e76afca58d1d3c2486e8af3 (diff) |
fix for SH-4398: Interesting: viewer crash in LLVOCacheEntry::updateParentBoundingInfo
Diffstat (limited to 'indra/newview/llviewerregion.cpp')
-rwxr-xr-x | indra/newview/llviewerregion.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 47e59d3c00..49bb05d88e 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -866,8 +866,19 @@ void LLViewerRegion::killCacheEntry(LLVOCacheEntry* entry) //remove from the forced visible list mImpl->mVisibleEntries.erase(entry); - //kill LLViewerObject if exists - //this should be done by the rendering pipeline automatically. + //disconnect from parent if it is a child + if(entry->getParentID() > 0) + { + LLVOCacheEntry* parent = getCacheEntry(entry->getParentID()); + if(parent) + { + parent->removeChild(entry); + } + } + else if(entry->getNumOfChildren() > 0)//disconnect children if has any + { + entry->removeAllChildren(); + } entry->setState(LLVOCacheEntry::INACTIVE); |