From ceb645bc564f836bda3d87981a3d03c2ffc1419c Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 5 Feb 2018 17:53:30 +1100 Subject: Fix T53986: Crash saving during sculpt stroke Also remove unused struct member. --- source/blender/editors/util/ed_util.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source/blender/editors/util') diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c index 278b8e34311..c920c4524a1 100644 --- a/source/blender/editors/util/ed_util.c +++ b/source/blender/editors/util/ed_util.c @@ -168,7 +168,11 @@ bool ED_editors_flush_edits(const bContext *C, bool for_render) * exiting we might not have a context for edit object and multiple sculpt * objects can exist at the same time */ for (ob = bmain->object.first; ob; ob = ob->id.next) { - if (ob->mode & OB_MODE_SCULPT) { + if ((ob->mode & OB_MODE_SCULPT) && + /* Don't allow flushing while in the middle of a stroke (frees data in use). + * Auto-save prevents this from happening but scripts may cause a flush on saving: T53986. */ + ((ob->sculpt && ob->sculpt->cache) == 0)) + { /* flush multires changes (for sculpt) */ multires_force_update(ob); has_edited = true; -- cgit v1.2.3