diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/llinventoryfunctions.cpp | 5 | ||||
| -rwxr-xr-x | indra/newview/llinventorymodel.cpp | 9 | 
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()); | 
