summaryrefslogtreecommitdiff
path: root/indra/newview/llvoavatar.cpp
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2010-07-15 15:16:50 -0600
committerXiaohong Bao <bao@lindenlab.com>2010-07-15 15:16:50 -0600
commit540e2d8e5d0c5ad9cecc68fd03f86335e96a9318 (patch)
tree76676705f304dc156472480a5d13a81cb781781a /indra/newview/llvoavatar.cpp
parent2d683ebf749ed153dcf3260e0f629252507ccd40 (diff)
EXT-8301: FIXED: crash at LLViewerFetchedTexture::cleanup() [secondlife-bin llviewertexture.cpp]
Diffstat (limited to 'indra/newview/llvoavatar.cpp')
-rw-r--r--indra/newview/llvoavatar.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 07b98eaf82..53b47ec408 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -835,6 +835,7 @@ LLVOAvatar::~LLVOAvatar()
mDead = TRUE;
mAnimationSources.clear();
+ LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList) ;
lldebugs << "LLVOAvatar Destructor end" << llendl;
}
@@ -848,7 +849,7 @@ void LLVOAvatar::markDead()
sNumVisibleChatBubbles--;
}
mVoiceVisualizer->markDead();
- LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList, this) ;
+ LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList) ;
LLViewerObject::markDead();
}
@@ -4255,13 +4256,13 @@ void LLVOAvatar::checkTextureLoading()
{
if(pause)//pause texture fetching.
{
- tex->pauseLoadedCallbacks(this) ;
+ tex->pauseLoadedCallbacks(&mCallbackTextureList) ;
}
else//unpause
{
static const F32 START_AREA = 100.f ;
- tex->unpauseLoadedCallbacks(this) ;
+ tex->unpauseLoadedCallbacks(&mCallbackTextureList) ;
tex->addTextureStats(START_AREA); //jump start the fetching again
}
}
@@ -6210,11 +6211,9 @@ void LLVOAvatar::updateMeshTextures()
const BOOL self_customizing = isSelf() && gAgentCamera.cameraCustomizeAvatar(); // During face edit mode, we don't use baked textures
const BOOL other_culled = !isSelf() && mCulled;
LLLoadedCallbackEntry::source_callback_list_t* src_callback_list = NULL ;
- void* callback_src = NULL ;
BOOL paused = FALSE;
if(!isSelf())
{
- callback_src = this ;
src_callback_list = &mCallbackTextureList ;
paused = mLoadedCallbacksPaused ;
}
@@ -6290,10 +6289,10 @@ void LLVOAvatar::updateMeshTextures()
if ( (baked_img->getID() != IMG_INVISIBLE) && ((i == BAKED_HEAD) || (i == BAKED_UPPER) || (i == BAKED_LOWER)) )
{
baked_img->setLoadedCallback(onBakedTextureMasksLoaded, MORPH_MASK_REQUESTED_DISCARD, TRUE, TRUE, new LLTextureMaskData( mID ),
- callback_src, src_callback_list, paused);
+ src_callback_list, paused);
}
baked_img->setLoadedCallback(onBakedTextureLoaded, SWITCH_TO_BAKED_DISCARD, FALSE, FALSE, new LLUUID( mID ),
- callback_src, src_callback_list, paused );
+ src_callback_list, paused );
}
}
else if (mBakedTextureDatas[i].mTexLayerSet
@@ -6754,11 +6753,9 @@ void LLVOAvatar::onFirstTEMessageReceived()
mFirstTEMessageReceived = TRUE;
LLLoadedCallbackEntry::source_callback_list_t* src_callback_list = NULL ;
- void* callback_src = NULL ;
BOOL paused = FALSE ;
if(!isSelf())
{
- callback_src = this ;
src_callback_list = &mCallbackTextureList ;
paused = mLoadedCallbacksPaused ;
}
@@ -6777,10 +6774,10 @@ void LLVOAvatar::onFirstTEMessageReceived()
if ( (image->getID() != IMG_INVISIBLE) && ((i == BAKED_HEAD) || (i == BAKED_UPPER) || (i == BAKED_LOWER)) )
{
image->setLoadedCallback( onBakedTextureMasksLoaded, MORPH_MASK_REQUESTED_DISCARD, TRUE, TRUE, new LLTextureMaskData( mID ),
- callback_src, src_callback_list, paused);
+ src_callback_list, paused);
}
image->setLoadedCallback( onInitialBakedTextureLoaded, MAX_DISCARD_LEVEL, FALSE, FALSE, new LLUUID( mID ),
- callback_src, src_callback_list, paused );
+ src_callback_list, paused );
}
}