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
This commit is contained in:
Philipp Oeser 2021-10-18 11:03:47 +02:00
parent fb88ff8f0c
commit 0071001879
Notes: blender-bot 2023-02-14 06:00:49 +01:00
Referenced by issue #88449: Blender LTS: Maintenance Task 2.93
Referenced by issue #88449, Blender LTS: Maintenance Task 2.93
Referenced by issue #92246, Blender crashes after selecting any object in outliner hierarchy (using statistics overlay)
1 changed files with 1 additions and 1 deletions

View File

@ -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;
}