Fix T54270: Reset last_hit and last_location when reading the file

It does not make sense to read those values when loading a file and they can crash the cursor if they contain invalid coordinates.

Reviewed By: brecht

Maniphest Tasks: T54270

Differential Revision: https://developer.blender.org/D6754
This commit is contained in:
Pablo Dobarro 2020-02-19 19:07:16 +01:00 committed by Nathan Letwory
parent d62a7b2aa3
commit f642aaf12f
No known key found for this signature in database
GPG Key ID: 2C99F9D5FC4EFA4C
Notes: blender-bot 2023-02-14 09:21:21 +01:00
Referenced by issue #54270, Assert failure in brush projection code
1 changed files with 7 additions and 0 deletions

View File

@ -6891,6 +6891,13 @@ static void direct_link_scene(FileData *fd, Scene *sce)
sce->toolsettings = newdataadr(fd, sce->toolsettings);
if (sce->toolsettings) {
/* Reset last_location and last_hit, so they are not remembered across sessions. In some files
* these are also NaN, which could lead to crashes in painting. */
struct UnifiedPaintSettings *ups = &sce->toolsettings->unified_paint_settings;
zero_v3(ups->last_location);
ups->last_hit = 0;
direct_link_paint_helper(fd, sce, (Paint **)&sce->toolsettings->sculpt);
direct_link_paint_helper(fd, sce, (Paint **)&sce->toolsettings->vpaint);
direct_link_paint_helper(fd, sce, (Paint **)&sce->toolsettings->wpaint);