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.
parent
8b2939934f
commit
67b56f41c7
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue