diff options
| -rwxr-xr-x | indra/newview/llappearancemgr.cpp | 8 | ||||
| -rwxr-xr-x | indra/newview/llvoavatar.cpp | 9 | 
2 files changed, 14 insertions, 3 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 963317affd..ec859b8709 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -3422,12 +3422,14 @@ void LLAppearanceMgr::serverAppearanceUpdateCoro()              if (cofVersion < lastRcv)              {                  LL_WARNS("Avatar") << "Have already received update for cof version " << lastRcv -                    << " but re-requesting for " << cofVersion << LL_ENDL; +                    << " ignoring request for " << cofVersion << LL_ENDL; +                return;              } -            if (lastReq >= cofVersion) +            if (lastReq > cofVersion)              {                  LL_WARNS("Avatar") << "Request already in flight for cof version " << lastReq -                    << " re-requesting for " << cofVersion << LL_ENDL; +                    << " ignoring request for " << cofVersion << LL_ENDL; +                return;              }         } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 17722e31ca..62ee1a6424 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -7356,6 +7356,7 @@ bool resolve_appearance_version(const LLAppearanceMessageContents& contents, S32  //-----------------------------------------------------------------------------  void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )  { +    static S32 largestCOFSeen(LLViewerInventoryCategory::VERSION_UNKNOWN);  	LL_DEBUGS("Avatar") << "starts" << LL_ENDL;  	bool enable_verbose_dumps = gSavedSettings.getBOOL("DebugAvatarAppearanceMessage"); @@ -7393,6 +7394,14 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )  	S32 this_update_cof_version = contents.mCOFVersion;  	S32 last_update_request_cof_version = mLastUpdateRequestCOFVersion; +    if (largestCOFSeen > this_update_cof_version) +    { +        LL_WARNS("Avatar") << "Already processed appearance for COF version " << +            largestCOFSeen << ", discarding appearance with COF " << this_update_cof_version << LL_ENDL; +        return; +    } +    largestCOFSeen = this_update_cof_version; +  	if( isSelf() )  	{  		LL_DEBUGS("Avatar") << "this_update_cof_version " << this_update_cof_version  | 
