From 67b56f41c79e9ebe252e16ed2aba44d5dbbd81c0 Mon Sep 17 00:00:00 2001 From: Nicky Date: Mon, 4 Jun 2012 12:11:13 +0200 Subject: [PATCH] Backout of 2dd7a775873c. That was not the golden fix for FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654. Backout so we don't differ from LLs codebase for no reason. --- indra/newview/llcallingcard.cpp | 23 ++++++----------------- indra/newview/llcallingcard.h | 2 +- 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp index 8c2cf24b81..70dfc68a4c 100644 --- a/indra/newview/llcallingcard.cpp +++ b/indra/newview/llcallingcard.cpp @@ -97,12 +97,6 @@ const F32 COARSE_FREQUENCY = 2.2f; const F32 FIND_FREQUENCY = 29.7f; // This results in a database query, so cut these back const F32 OFFLINE_SECONDS = FIND_FREQUENCY + 8.0f; - -// FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654 -enum ETrackerState { eUndef = 0, eStarted, eDead }; -ETrackerState sTrackerState; -// - // static LLAvatarTracker LLAvatarTracker::sInstance; @@ -122,12 +116,10 @@ LLAvatarTracker::LLAvatarTracker() : //mInventoryObserver(NULL), mModifyMask(0x0) { - sTrackerState = eStarted; } LLAvatarTracker::~LLAvatarTracker() { - sTrackerState = eDead; deleteTrackingData(); std::for_each(mObservers.begin(), mObservers.end(), DeletePointer()); std::for_each(mBuddyInfo.begin(), mBuddyInfo.end(), DeletePairedPointer()); @@ -1012,12 +1004,12 @@ bool LLCollectAllBuddies::operator()(const LLUUID& buddy_id, LLRelationship* bud return true; } -// FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654 +// FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654 // Make sure an observer gets removed once it dies. LLFriendObserver::~LLFriendObserver() { - LLAvatarTracker::onObserverDied( this ); + LLAvatarTracker::instance().onObserverDied( this ); } void removeDanglingObserver( std::map > &aContainer, LLFriendObserver const *aObserver ) @@ -1039,21 +1031,18 @@ void removeDanglingObserver( std::map > &aCo void LLAvatarTracker::onObserverDied( LLFriendObserver const *aObserver ) { - if( eDead == sTrackerState ) - return; - - for( observer_list_t::iterator itr = sInstance.mObservers.begin(); itr != sInstance.mObservers.end(); ++itr ) + for( observer_list_t::iterator itr = mObservers.begin(); itr != mObservers.end(); ++itr ) { if( *itr == aObserver ) { llwarns << "Removing dangling observer" << llendl; - sInstance.mObservers.erase( itr ); + mObservers.erase( itr ); break; } } - removeDanglingObserver( sInstance.mParticularFriendObserverMap, aObserver ); - removeDanglingObserver( sInstance.mFriendPermissionObserverMap, aObserver ); + removeDanglingObserver( mParticularFriendObserverMap, aObserver ); + removeDanglingObserver( mFriendPermissionObserverMap, aObserver ); } // diff --git a/indra/newview/llcallingcard.h b/indra/newview/llcallingcard.h index 62cce87ec2..b6a9dba97d 100644 --- a/indra/newview/llcallingcard.h +++ b/indra/newview/llcallingcard.h @@ -226,7 +226,7 @@ public: LLAvatarTracker(); ~LLAvatarTracker(); - static void onObserverDied( LLFriendObserver const* ); // FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654 + void onObserverDied( LLFriendObserver const* ); // FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654 }; // collect set of LLUUIDs we're a proxy for