tagging warehouse doesn't work right with controls #15515
Labels
C: Framework
P: normal
A defect affecting operation with a low possibility of significantly affects.
T: defect
An anomaly, which is anything that deviates from expectations.
Bug Description
Tagging warehouses return outdated/stale state w.r.t. active/inactive objects under certain circumstances.
Steps to Reproduce
The interfaces for pulling out a subset of objects from a tagging warehouse into a (regular) warehouse (e.g. getVectorTagsObjectWarehouse) create the new (sub)warehouse by looping over all active objects. This intermediate warehouse is then cached internally in the tagging warhouse so it can be reused if needed later without being rebuilt. When something (e.g. the controls system) changes the active state of objects that have been cached in these intermediate warehouses, the updateActive functions are correctly called on all the intermediate warehouses. This, however, does not do what we want - since those intermediate warehouses are currently being built using only the objects that are active at the time of their construction. So updating their active objects when the controls system changes things cannot make previously inactive objects appear in them (because they were never added to them in the first place). We need the cached intermediate warehouses to be built using all objects. This should resolve the problem. I'll put up a PR.
Impact
Hopefully nobody was relying on this broken behavior - the fix shouldn't break anything, but should allow the controls system to actually work right in more circumstances.
The text was updated successfully, but these errors were encountered: