summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/llinventoryfunctions.cpp5
-rwxr-xr-xindra/newview/llinventorymodel.cpp9
2 files changed, 12 insertions, 2 deletions
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index 386819b25a..123e55a8ee 100755
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -1024,6 +1024,11 @@ S32 compute_stock_count(LLUUID cat_uuid, bool force_count /* false */)
}
if (cat->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK)
{
+ if (cat->getVersion() == LLViewerInventoryCategory::VERSION_UNKNOWN)
+ {
+ // If the folder is not completely fetched, we do not want to return any confusing value that could lead to unlisting
+ return -1;
+ }
// Note: stock folders are *not* supposed to have nested subfolders so we stop recursion here but we count only items (subfolders will be ignored)
// Note: we *always* give a stock count for stock folders, it's useful even if the listing is unassociated
LLInventoryModel::cat_array_t* cat_array;
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 8c4be57aaa..5139564a6d 100755
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -1995,17 +1995,22 @@ bool LLInventoryModel::loadSkeleton(
// we can safely ignore anything loaded from file, but
// not sent down in the skeleton. Must have been removed from inventory.
- if(cit == not_cached)
+ if (cit == not_cached)
{
continue;
}
- if(cat->getVersion() != tcat->getVersion())
+ else if (cat->getVersion() != tcat->getVersion())
{
// if the cached version does not match the server version,
// throw away the version we have so we can fetch the
// correct contents the next time the viewer opens the folder.
tcat->setVersion(NO_VERSION);
}
+ else if (tcat->getPreferredType() == LLFolderType::FT_MARKETPLACE_STOCK)
+ {
+ // Do not trust stock folders being updated
+ tcat->setVersion(NO_VERSION);
+ }
else
{
cached_ids.insert(tcat->getUUID());