From 6144d1013746d3be5dff70f4058556139427e109 Mon Sep 17 00:00:00 2001 From: Michael Ragazzon Date: Sat, 17 Aug 2024 02:19:43 +0200 Subject: [PATCH] Only check data views with the same top-level variable name --- Source/Core/DataView.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/Source/Core/DataView.cpp b/Source/Core/DataView.cpp index 0293b7d67..5b2e2efc8 100644 --- a/Source/Core/DataView.cpp +++ b/Source/Core/DataView.cpp @@ -121,18 +121,12 @@ bool DataViews::Update(DataModel& model, const DirtyVariables& dirty_variables) for (const String& variable_name : dirty_variables) { DataAddress address = model.ResolveAddress(variable_name, nullptr); - if (address.size() > 1) - { - for (const DataViewPtr& view : views) - { - if (view->HasAddressDependency(address)) - dirty_views.push_back(view.get()); - } - } - else + if (address.empty()) + continue; + auto pair = name_view_map.equal_range(address.front().name); + for (auto it = pair.first; it != pair.second; ++it) { - auto pair = name_view_map.equal_range(variable_name); - for (auto it = pair.first; it != pair.second; ++it) + if (address.size() <= 1 || it->second->HasAddressDependency(address)) dirty_views.push_back(it->second); } }