diff options
author | Xiaohong Bao <bao@lindenlab.com> | 2013-09-26 11:03:04 -0600 |
---|---|---|
committer | Xiaohong Bao <bao@lindenlab.com> | 2013-09-26 11:03:04 -0600 |
commit | 9053b9020a380f95f23051ca123127519db53e29 (patch) | |
tree | d29aa90454543b3d556d4eca0bb6e95fcbb55184 /indra | |
parent | 4aa41f80bae421109900321af1d090ba5c8e6fdb (diff) |
fix for SH-4521: Interesting viewer crash in Pipeline:RenderDrawPools
Diffstat (limited to 'indra')
-rwxr-xr-x | indra/llmath/lltreenode.h | 9 | ||||
-rw-r--r-- | indra/newview/llvieweroctree.cpp | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/indra/llmath/lltreenode.h b/indra/llmath/lltreenode.h index c66bc26176..0b479c4564 100755 --- a/indra/llmath/lltreenode.h +++ b/indra/llmath/lltreenode.h @@ -57,7 +57,14 @@ public: virtual bool remove(T* data); virtual void notifyRemoval(T* data); virtual U32 getListenerCount() { return mListeners.size(); } - virtual LLTreeListener<T>* getListener(U32 index) const { return mListeners[index]; } + virtual LLTreeListener<T>* getListener(U32 index) const + { + if(index < mListeners.size()) + { + return mListeners[index]; + } + return NULL; + } virtual void addListener(LLTreeListener<T>* listener) { mListeners.push_back(listener); } protected: diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp index 47033afea3..e1684c19df 100644 --- a/indra/newview/llvieweroctree.cpp +++ b/indra/newview/llvieweroctree.cpp @@ -957,7 +957,7 @@ public: { LLOcclusionCullingGroup* group = (LLOcclusionCullingGroup*) n->getListener(0); - if (group->isOcclusionState(mState)) + if (group && group->isOcclusionState(mState)) { OctreeTraveler::traverse(n); } |