Fix TrackCache conflict when tracks have same name but different type #86687
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Co-authored-by: Rémi Verschelde rverschelde@gmail.com
Using it could easily lead to use-after-free crashes, as the object may have been freed. Caching object pointers like this is unsafe. Instead, we rely only on the ObjectID and query ObjectDB with it each time we need access to the instance.
This PR is a salvaged version of #49411 with more proper solution. Merge Value and Bezier track into the same cache. Also, make the hash generated from those track types and track paths the key of the cache map instead of the only track path.
However, as I mentioned in #49411 (comment), the Bezier and Value Tracks have different paths in most cases, and will not blend unless the paths are manually matched. So I believe it will be necessary to rework Bezier tracks to match path name with Value Tracks and manage subpath in a different way from current in the future.