-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix TrackCache conflict when tracks have same name but different type #86687
Fix TrackCache conflict when tracks have same name but different type #86687
Conversation
1090488
to
573365c
Compare
573365c
to
c32cdc5
Compare
3f9b49d
to
c440f8b
Compare
c440f8b
to
6ef2bfb
Compare
1b3c71a
to
33a871d
Compare
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
33a871d
to
a51958a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great!
Confirmed that it fixes the MRP in #85572.
Thanks! |
It breaks compatibility, so not suitable for cherry-picking. |
We discussed before how this could be done without breaking compat (basically, public API would remain the same, but internally we'd use ObjectIDs instead). So this could be submitted as a backport without breaking compat in this manner, if desired. |
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.