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
parent 888d180164
commit 2df040ed58
Notes: blender-bot 2023-02-14 07:31:32 +01:00
Referenced by issue #74274, Blender 2.82a proposed revisions
Referenced by issue #54270, Assert failure in brush projection code
1 changed files with 7 additions and 0 deletions

View File

@ -6603,6 +6603,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);