[Bf-blender-cvs] [00710018790] master: Fix T92246: sculpt crash displaying statistics in certain situations

Philipp Oeser noreply at git.blender.org
Mon Oct 18 16:57:11 CEST 2021


Commit: 00710018790b9bbb18fe4fe588976b631c688a3b
Author: Philipp Oeser
Date:   Mon Oct 18 11:03:47 2021 +0200
Branches: master
https://developer.blender.org/rB00710018790b9bbb18fe4fe588976b631c688a3b

Fix T92246: sculpt crash displaying statistics in certain situations

It seems possible to switch object selection (if `Lock Object Modes` is
turned off) and end up with an object that has a SculptSession but a
NULL PBVH.
(I was not able to repro from scratch, but file from the report was
clearly in that state).

This would crash in displaying scene statistics.

While there might be a deeper fix (making sure PBVH is available early
enough -- possibly using `BKE_sculpt_object_pbvh_ensure`,
`sculpt_update_object` or friends), there are also many checks in tools
for PBVH, so the situation seems to be somewhat vaild/expected also in
other places.
So to fix this, just check for a non-NULL PBVH, returning early
otherwise.
Note: this leaves us with displaying 0/0 Faces & Vertices in the borked
case until an operation takes place that updates the PBVH.

Maniphest Tasks: T92246

Differential Revision: https://developer.blender.org/D12904

===================================================================

M	source/blender/editors/space_info/info_stats.c

===================================================================

diff --git a/source/blender/editors/space_info/info_stats.c b/source/blender/editors/space_info/info_stats.c
index e749e1a7947..13d15bc50a6 100644
--- a/source/blender/editors/space_info/info_stats.c
+++ b/source/blender/editors/space_info/info_stats.c
@@ -372,7 +372,7 @@ static void stats_object_sculpt(const Object *ob, SceneStats *stats)
 
   SculptSession *ss = ob->sculpt;
 
-  if (!ss) {
+  if (ss == NULL || ss->pbvh == NULL) {
     return;
   }



More information about the Bf-blender-cvs mailing list