diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-02-05 09:58:31 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-02-05 09:58:31 +0300 |
commit | a1c45a453f55fd61072ff31566654cbd03e92428 (patch) | |
tree | 06381c98af570ad348d58bb4b78a7d6fa944188a /source/blender/editors/util | |
parent | 23d2f708f312b73186aff4a42e952480413e7096 (diff) | |
parent | f911fb0744a8185745193a252b4115a6d7756102 (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/editors/util')
-rw-r--r-- | source/blender/editors/util/ed_util.c | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c index b52cc20f71f..8973c96c438 100644 --- a/source/blender/editors/util/ed_util.c +++ b/source/blender/editors/util/ed_util.c @@ -175,18 +175,22 @@ bool ED_editors_flush_edits(const bContext *C, bool for_render) * objects can exist at the same time */ for (ob = bmain->object.first; ob; ob = ob->id.next) { if (ob->mode & OB_MODE_SCULPT) { - /* flush multires changes (for sculpt) */ - multires_force_update(ob); - has_edited = true; - - if (for_render) { - /* flush changes from dynamic topology sculpt */ - BKE_sculptsession_bm_to_me_for_render(ob); - } - else { - /* Set reorder=false so that saving the file doesn't reorder - * the BMesh's elements */ - BKE_sculptsession_bm_to_me(ob, false); + /* 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. */ + if ((ob->sculpt && ob->sculpt->cache) == 0) { + /* flush multires changes (for sculpt) */ + multires_force_update(ob); + has_edited = true; + + if (for_render) { + /* flush changes from dynamic topology sculpt */ + BKE_sculptsession_bm_to_me_for_render(ob); + } + else { + /* Set reorder=false so that saving the file doesn't reorder + * the BMesh's elements */ + BKE_sculptsession_bm_to_me(ob, false); + } } } else if (ob->mode & OB_MODE_EDIT) { |