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.

Nicky 2012-06-04 12:11:13 +02:00
parent 8b2939934f
commit 67b56f41c7
2 changed files with 7 additions and 18 deletions

View File

@ -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;
// <FS:ND> FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654
enum ETrackerState { eUndef = 0, eStarted, eDead };
ETrackerState sTrackerState;
// </FS:ND>
// 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;
}
// <FS:ND> FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654
// </FS:ND> 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<LLUUID, std::set<LLFriendObserver*> > &aContainer, LLFriendObserver const *aObserver )
@ -1039,21 +1031,18 @@ void removeDanglingObserver( std::map<LLUUID, std::set<LLFriendObserver*> > &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 );
}
// </FS:ND>

View File

@ -226,7 +226,7 @@ public:
LLAvatarTracker();
~LLAvatarTracker();
static void onObserverDied( LLFriendObserver const* ); // </FS:ND> FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654
void onObserverDied( LLFriendObserver const* ); // </FS:ND> FIRE-6077; FIRE-6227; FIRE-6431; SUP-9654
};
// collect set of LLUUIDs we're a proxy for