Find a file
Sybren A. Stüvel c0c7e34bab Fix #119615: Anim, Crash with NLA tweak mode and linked Armatures
Fix a crash when inserting a key with tweak mode enabled, but where
`AnimData::actstrip` was NULL.

The root cause of this is that two pointers in the `AnimData` struct
(`act_track` and `actstrip`) are expected to be set when NLA tweak mode
is enabled, BUT these are not exposed to RNA and thus invisible to the
library overrides system. As such, they are NULL when loading from disk,
while the `ADT_NLA_EDIT_ON` flag still indicates they are to be used.

Rather than adding a NULL pointer check (and having to add that in many
more places), I used this two-pronged approach:

- Extend the 'NLA tweakmode' override apply code, to set the `act_track`
  and `actstrip` pointers when they are incorrectly NULL. This is done
  by lookup of the track and strip by name.
- Add versioning code to exit out of tweak mode whenever the
  `ADT_NLA_EDIT_ON` flag is set, but those two pointers are still NULL.

The last step was necessary with the example file attached to the bug
report, as that was saved with a buggy blender version. New saves work
just fine.

Pull Request: https://projects.blender.org/blender/blender/pulls/119632
2024-03-19 10:45:32 +01:00
.gitea Docs: Replace most wiki links with links to new developer docs 2024-01-18 16:49:38 +01:00
.github Docs: Replace most wiki links with links to new developer docs 2024-01-18 16:49:38 +01:00
build_files Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
doc Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
extern Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
intern Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
lib Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
locale I18N: Updated UI translations from git/weblate (efe372a7b46cf). 2024-03-12 15:09:03 +09:00
release Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
scripts Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
source Fix #119615: Anim, Crash with NLA tweak mode and linked Armatures 2024-03-19 10:45:32 +01:00
tests Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
tools Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
.clang-format Clang-Format: Ensure single new line at the end of files 2024-02-22 14:42:10 +01:00
.clang-tidy
.editorconfig
.git-blame-ignore-revs
.gitignore Switch SVN to Git submodules using Git-LFS 2024-02-22 13:50:55 +01:00
.gitmodules Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
AUTHORS Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
CMakeLists.txt Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
COPYING
GNUmakefile Revert changes from main commits that were merged into blender-v4.1-release 2024-03-18 15:04:12 +01:00
make.bat Switch SVN to Git submodules using Git-LFS 2024-02-22 13:50:55 +01:00
pyproject.toml Black: skip string normalisation 2024-01-22 10:09:33 +01:00
README.md Docs: Replace most wiki links with links to new developer docs 2024-01-18 16:49:38 +01:00

Blender

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.

Blender screenshot

Project Pages

Development

License

Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.

See blender.org/about/license for details.