diff options
author | thickbrick | 2011-07-09 00:38:11 +0300 |
---|---|---|
committer | McCabe Maxsted | 2011-07-08 14:50:33 -0700 |
commit | 505b067191c29e798987722b92d7af2b92515109 (patch) | |
tree | 88591bf99c7bbbbb12038101c59fa09394083a27 | |
parent | Added debug settings RenderSculptSAThreshold and RenderSculptSAMax. Adjust th... (diff) | |
download | meta-impy-505b067191c29e798987722b92d7af2b92515109.zip meta-impy-505b067191c29e798987722b92d7af2b92515109.tar.gz meta-impy-505b067191c29e798987722b92d7af2b92515109.tar.bz2 meta-impy-505b067191c29e798987722b92d7af2b92515109.tar.xz |
Fix #985: Crash after teleport
Stale LLVOVolume pointer was caused by a leftover from porting
the sculpt->volumes list from V2, which I forgot to port. Needed for
correct volume accounting.
-rw-r--r-- | linden/indra/newview/llvovolume.cpp | 14 | ||||
-rw-r--r-- | linden/indra/newview/llvovolume.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/linden/indra/newview/llvovolume.cpp b/linden/indra/newview/llvovolume.cpp index d40ee99..b422c51 100644 --- a/linden/indra/newview/llvovolume.cpp +++ b/linden/indra/newview/llvovolume.cpp | |||
@@ -108,6 +108,20 @@ LLVOVolume::~LLVOVolume() | |||
108 | mVolumeImpl = NULL; | 108 | mVolumeImpl = NULL; |
109 | } | 109 | } |
110 | 110 | ||
111 | // virtual | ||
112 | void LLVOVolume::markDead() | ||
113 | { | ||
114 | if (!mDead) | ||
115 | { | ||
116 | if (mSculptTexture.notNull()) | ||
117 | { | ||
118 | mSculptTexture->removeVolume(this); | ||
119 | } | ||
120 | } | ||
121 | |||
122 | LLViewerObject::markDead(); | ||
123 | } | ||
124 | |||
111 | 125 | ||
112 | // static | 126 | // static |
113 | void LLVOVolume::initClass() | 127 | void LLVOVolume::initClass() |
diff --git a/linden/indra/newview/llvovolume.h b/linden/indra/newview/llvovolume.h index 25f5d95..2f53bea 100644 --- a/linden/indra/newview/llvovolume.h +++ b/linden/indra/newview/llvovolume.h | |||
@@ -91,6 +91,7 @@ public: | |||
91 | 91 | ||
92 | public: | 92 | public: |
93 | LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); | 93 | LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *regionp); |
94 | /*virtual*/ void markDead(); // Override (and call through to parent) to clean up sculpt texture references | ||
94 | 95 | ||
95 | /*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline); | 96 | /*virtual*/ LLDrawable* createDrawable(LLPipeline *pipeline); |
96 | 97 | ||