summaryrefslogtreecommitdiff
path: root/indra/newview/llinventoryobserver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinventoryobserver.cpp')
-rw-r--r--indra/newview/llinventoryobserver.cpp29
1 files changed, 24 insertions, 5 deletions
diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp
index 3ccf593d27..2d9ea21b5f 100644
--- a/indra/newview/llinventoryobserver.cpp
+++ b/indra/newview/llinventoryobserver.cpp
@@ -55,7 +55,7 @@
#include "lldbstrings.h"
#include "llviewerstats.h"
#include "llmutelist.h"
-#include "llnotifications.h"
+#include "llnotificationsutil.h"
#include "llcallbacklist.h"
#include "llpreview.h"
#include "llviewercontrol.h"
@@ -63,6 +63,15 @@
#include "llsdutil.h"
#include <deque>
+LLInventoryObserver::LLInventoryObserver()
+{
+}
+
+// virtual
+LLInventoryObserver::~LLInventoryObserver()
+{
+}
+
void LLInventoryCompletionObserver::changed(U32 mask)
{
// scan through the incomplete items and move or erase them as
@@ -112,10 +121,20 @@ void LLInventoryFetchObserver::changed(U32 mask)
LLViewerInventoryItem* item = gInventory.getItem(*it);
if(!item)
{
- // BUG: This can cause done() to get called prematurely below.
- // This happens with the LLGestureInventoryFetchObserver that
- // loads gestures at startup. JC
- it = mIncomplete.erase(it);
+ if (mRetryIfMissing)
+ {
+ // BAP changed to skip these items, so we should keep retrying until they arrive.
+ // Did not make this the default behavior because of uncertainty about impact -
+ // could cause some observers that currently complete to wait forever.
+ ++it;
+ }
+ else
+ {
+ // BUG: This can cause done() to get called prematurely below.
+ // This happens with the LLGestureInventoryFetchObserver that
+ // loads gestures at startup. JC
+ it = mIncomplete.erase(it);
+ }
continue;
}
if(item->isComplete())