summaryrefslogtreecommitdiff
path: root/indra/newview/llinventorymodel.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-06-04 22:16:46 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-07-07 19:56:55 +0300
commit05ee4d295c2fa7fbc34aa82354c424b017558759 (patch)
tree8516a8cd5ab53472ea2b2e45c7d4b4afc90f48ab /indra/newview/llinventorymodel.cpp
parent5d4821443adc584f0262c68f8b33fa8bb36f8406 (diff)
#5881 Optimize inventory cache loading
Diffstat (limited to 'indra/newview/llinventorymodel.cpp')
-rw-r--r--indra/newview/llinventorymodel.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 8b9aad4641..c72f1d2c35 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -2719,10 +2719,11 @@ bool LLInventoryModel::loadSkeleton(
for(LLSD::array_const_iterator it = options.beginArray(),
end = options.endArray(); it != end; ++it)
{
- LLSD name = (*it)["name"];
- LLSD folder_id = (*it)["folder_id"];
- LLSD parent_id = (*it)["parent_id"];
- LLSD version = (*it)["version"];
+ const LLSD &folder = *it;
+ const LLSD &name = folder["name"];
+ const LLSD &folder_id = folder["folder_id"];
+ const LLSD &parent_id = folder["parent_id"];
+ const LLSD &version = folder["version"];
if(name.isDefined()
&& folder_id.isDefined()
&& parent_id.isDefined()
@@ -2736,7 +2737,7 @@ bool LLInventoryModel::loadSkeleton(
cat->setParent(parent_id.asUUID());
LLFolderType::EType preferred_type = LLFolderType::FT_NONE;
- LLSD type_default = (*it)["type_default"];
+ const LLSD &type_default = folder["type_default"];
if(type_default.isDefined())
{
preferred_type = (LLFolderType::EType)type_default.asInteger();
@@ -3454,6 +3455,8 @@ bool LLInventoryModel::loadFromFile(const std::string& filename,
const LLSD& llsd_cats = inventory["categories"];
if (llsd_cats.isArray())
{
+ size_t cats_count = llsd_cats.size();
+ categories.reserve(cats_count);
LLSD::array_const_iterator iter = llsd_cats.beginArray();
LLSD::array_const_iterator end = llsd_cats.endArray();
for (; iter != end; ++iter)
@@ -3472,6 +3475,8 @@ bool LLInventoryModel::loadFromFile(const std::string& filename,
const LLSD& llsd_items = inventory["items"];
if (llsd_items.isArray())
{
+ size_t items_count = llsd_items.size();
+ items.reserve(items_count);
LLSD::array_const_iterator iter = llsd_items.beginArray();
LLSD::array_const_iterator end = llsd_items.endArray();
for (; iter != end; ++iter)