diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2013-11-20 11:43:09 -0700 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2013-11-20 11:43:09 -0700 |
commit | 5979467198e9a8d4c065de908cf48c7d73101cd7 (patch) | |
tree | 82a31195c96a27bc0a72533d5710434df0b26e42 /indra/newview/llviewerregion.cpp | |
parent | 65b1c7a9dc98169fd3a961f90b2d6e5a2f463009 (diff) |
revert changeset 05606ef22574: fix for SH-4629: Interesting: crash at LLViewerRegion::killObject
Diffstat (limited to 'indra/newview/llviewerregion.cpp')
-rwxr-xr-x | indra/newview/llviewerregion.cpp | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index f71d0a7a64..2eb065c1ef 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -923,21 +923,6 @@ void LLViewerRegion::addActiveCacheEntry(LLVOCacheEntry* entry) mImpl->mActiveSet.insert(entry); } -//remove vo entry which is in mImpl->mActiveSet but not in rendering pipeline. -//this is caused by mImpl->mActiveSet failing to remove this entry somehow. -void LLViewerRegion::removeDanglingEntry(LLVOCacheEntry* entry) -{ - if(mDead || !entry) - { - return; - } - - mImpl->mVisibleEntries.erase(entry); - mImpl->mActiveSet.erase(entry); - mImpl->mWaitingSet.erase(entry); - entry->setState(LLVOCacheEntry::INACTIVE); -} - void LLViewerRegion::removeActiveCacheEntry(LLVOCacheEntry* entry, LLDrawable* drawablep) { if(mDead || !entry) @@ -1418,8 +1403,6 @@ void LLViewerRegion::killInvisibleObjects(F32 max_time) } std::vector<LLDrawable*> delete_list; - std::vector<LLVOCacheEntry*> dangling_list; - S32 update_counter = llmin(max_update, mImpl->mActiveSet.size()); LLVOCacheEntry::vocache_entry_set_t::iterator iter = mImpl->mActiveSet.upper_bound(mLastVisitedEntry); @@ -1435,13 +1418,6 @@ void LLViewerRegion::killInvisibleObjects(F32 max_time) } LLVOCacheEntry* vo_entry = *iter; - if(!vo_entry->getEntry() || !vo_entry->getEntry()->getDrawable()) - { - //sometimes mImpl->mActiveSet fails to erase some entry, causing this dangling case. - dangling_list.push_back(vo_entry); - continue; - } - if(!vo_entry->isAnyVisible(camera_origin, local_origin, back_threshold) && vo_entry->mLastCameraUpdated < sLastCameraUpdated) { killObject(vo_entry, delete_list); @@ -1474,14 +1450,6 @@ void LLViewerRegion::killInvisibleObjects(F32 max_time) delete_list.clear(); } - if(!dangling_list.empty()) - { - for(S32 i = 0; i < dangling_list.size(); i++) - { - removeDanglingEntry(dangling_list[i]); - } - } - return; } |