summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2013-11-22 20:55:57 -0700
committerXiaohong Bao <bao@lindenlab.com>2013-11-22 20:55:57 -0700
commit04aece3282025ed0f117a9ade96edc0bf906b3cf (patch)
tree5ef06f17145996b8180460b617f0bc13f2caa99f
parent0954d4f5d563740d0425fb9e8d118a95a34bd283 (diff)
fix for SH-4635: Interesting: Some objects do not load on the second visit
-rwxr-xr-xindra/newview/llviewerregion.cpp21
-rwxr-xr-xindra/newview/llviewerregion.h4
2 files changed, 6 insertions, 19 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index bcb7943d7f..939c6dbed1 100755
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -847,7 +847,7 @@ void LLViewerRegion::replaceVisibleCacheEntry(LLVOCacheEntry* old_entry, LLVOCac
}
//physically delete the cache entry
-void LLViewerRegion::killCacheEntry(LLVOCacheEntry* entry, bool kill_obj)
+void LLViewerRegion::killCacheEntry(LLVOCacheEntry* entry)
{
if(!entry)
{
@@ -857,14 +857,6 @@ void LLViewerRegion::killCacheEntry(LLVOCacheEntry* entry, bool kill_obj)
//remove from active list and waiting list
if(entry->isState(LLVOCacheEntry::ACTIVE))
{
- if(kill_obj && entry->getEntry())
- {
- LLDrawable* drawablep = (LLDrawable*)entry->getEntry()->getDrawable();
- if(drawablep)
- {
- gObjectList.killObject(drawablep->getVObj());
- }
- }
mImpl->mActiveSet.erase(entry);
}
else
@@ -894,20 +886,15 @@ void LLViewerRegion::killCacheEntry(LLVOCacheEntry* entry, bool kill_obj)
{
entry->removeAllChildren();
}
-
- if(kill_obj)
- {
- entry->setState(LLVOCacheEntry::INACTIVE);
- }
//remove from mCacheMap, real deletion
mImpl->mCacheMap.erase(entry->getLocalID());
}
//physically delete the cache entry
-void LLViewerRegion::killCacheEntry(U32 local_id, bool kill_obj)
+void LLViewerRegion::killCacheEntry(U32 local_id)
{
- killCacheEntry(getCacheEntry(local_id), kill_obj);
+ killCacheEntry(getCacheEntry(local_id));
}
U32 LLViewerRegion::getNumOfActiveCachedObjects() const
@@ -2063,7 +2050,7 @@ void LLViewerRegion::decodeBoundingInfo(LLVOCacheEntry* entry)
if(obj)
{
//remove from old region
- old_regionp->killCacheEntry(obj->getLocalID(), false);
+ old_regionp->killCacheEntry(obj->getLocalID());
//change region
obj->setRegion(this);
diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h
index 0f27def8a5..a789cc6715 100755
--- a/indra/newview/llviewerregion.h
+++ b/indra/newview/llviewerregion.h
@@ -235,7 +235,7 @@ public:
void addVisibleCacheEntry(LLVOCacheEntry* entry);
void addActiveCacheEntry(LLVOCacheEntry* entry);
void removeActiveCacheEntry(LLVOCacheEntry* entry, LLDrawable* drawablep);
- void killCacheEntry(U32 local_id, bool kill_obj = true); //physically delete the cache entry
+ void killCacheEntry(U32 local_id); //physically delete the cache entry
// Like idleUpdate, but forces everything to complete regardless of
// how long it takes.
@@ -385,7 +385,7 @@ private:
void killObject(LLVOCacheEntry* entry, std::vector<LLDrawable*>& delete_list);
void removeFromVOCacheTree(LLVOCacheEntry* entry);
void replaceVisibleCacheEntry(LLVOCacheEntry* old_entry, LLVOCacheEntry* new_entry);
- void killCacheEntry(LLVOCacheEntry* entry, bool kill_obj = true); //physically delete the cache entry
+ void killCacheEntry(LLVOCacheEntry* entry); //physically delete the cache entry
void killInvisibleObjects(F32 max_time);
void createVisibleObjects(F32 max_time);
void updateVisibleEntries(F32 max_time); //update visible entries