Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-07-23 17:06:41 +0300
committerJacques Lucke <jacques@blender.org>2021-07-23 17:06:41 +0300
commit25fc77f46c67599f97851ee7eb32ed65bdfd492b (patch)
treeeb5f13aa5dfec2bbcae34606e5b9319445a3256f
parentde2c4ee58782a26f0e2dcac47d54bceb67a137e2 (diff)
Fix T89829: wrong active context path check in spreadsheet
The problem was that the modifier was reevaluated all the time, even between showing the attribute search and clicking on the attribute name. This freed the data referenced by attribute search. The real bug here was that the dependency graph was tagged for update even though nothing changed. This was because the spreadsheet thought its active context has changed and it wanted to compute the new value to be shown in the spreadsheet. The reason for the bug was that I confused how the tree-path of a node editor works. The second element in the tree path contains the name of the group node in the root tree that we're in (instead of the first element). Differential Revision: https://developer.blender.org/D12009
-rw-r--r--source/blender/editors/space_spreadsheet/spreadsheet_context.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/editors/space_spreadsheet/spreadsheet_context.cc b/source/blender/editors/space_spreadsheet/spreadsheet_context.cc
index 1ac2075e281..c38e765caee 100644
--- a/source/blender/editors/space_spreadsheet/spreadsheet_context.cc
+++ b/source/blender/editors/space_spreadsheet/spreadsheet_context.cc
@@ -489,7 +489,7 @@ bool ED_spreadsheet_context_path_is_active(const bContext *C, SpaceSpreadsheet *
break;
}
SpreadsheetContextNode *node_context = (SpreadsheetContextNode *)node_context_path[i];
- if (!STREQ(node_context->node_name, tree_path[i]->node_name)) {
+ if (!STREQ(node_context->node_name, tree_path[i + 1]->node_name)) {
break;
}
valid_count++;