diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/lldrawable.cpp | 4 | ||||
| -rwxr-xr-x | indra/newview/llviewerregion.cpp | 15 | 
2 files changed, 16 insertions, 3 deletions
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp index 93fb484f06..598b0d2ff4 100755 --- a/indra/newview/lldrawable.cpp +++ b/indra/newview/lldrawable.cpp @@ -133,7 +133,9 @@ void LLDrawable::init(bool new_entry)  			getRegion()->addVisibleCacheEntry(vo_entry); //to load all children.  		} -		getRegion()->addActiveCacheEntry(vo_entry);		 +		getRegion()->addActiveCacheEntry(vo_entry); + +		llassert_always(!vo_entry->getGroup()); //not in the object cache octree.  	}  	llassert(!vo_entry || vo_entry->getEntry() == mEntry); diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index 55137168ee..29528a1117 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -953,6 +953,8 @@ void LLViewerRegion::addToVOCacheTree(LLVOCacheEntry* entry)  	{  		return;  	} +	 +	llassert_always(!entry->getParentID() && !entry->getEntry()->hasDrawable());  	mImpl->mVOCachePartition->addEntry(entry->getEntry());  } @@ -993,6 +995,11 @@ void LLViewerRegion::addVisibleCacheEntry(LLVOCacheEntry* entry)  F32 LLViewerRegion::updateVisibleEntries(F32 max_time)  { +	if(mDead) +	{ +		return max_time; +	} +  	if(mImpl->mVisibleGroups.empty() && mImpl->mVisibleEntries.empty())  	{  		return max_time; @@ -1100,6 +1107,10 @@ F32 LLViewerRegion::updateVisibleEntries(F32 max_time)  F32 LLViewerRegion::createVisibleObjects(F32 max_time)  { +	if(mDead) +	{ +		return max_time; +	}  	if(mImpl->mWaitingList.empty())  	{  		return max_time; @@ -1120,8 +1131,7 @@ F32 LLViewerRegion::createVisibleObjects(F32 max_time)  				break;  			}  		} -	} -	mImpl->mWaitingList.clear(); +	}	  	return max_time - update_timer.getElapsedTimeF32();  } @@ -1156,6 +1166,7 @@ BOOL LLViewerRegion::idleUpdate(F32 max_update_time)  	max_update_time = updateVisibleEntries(max_update_time);  	createVisibleObjects(max_update_time); +	mImpl->mWaitingList.clear();  	mImpl->mVisibleGroups.clear();  	return did_update;  | 
