Fix T53986: Crash saving during sculpt stroke
Also remove unused struct member.
This commit is contained in:
parent
e84e8cb497
commit
ceb645bc56
Notes:
blender-bot
2023-02-14 19:45:25 +01:00
Referenced by issue #53986, seg fault when saving from script Referenced by issue #53683, 2.79a release
|
@ -212,7 +212,6 @@ typedef struct SculptSession {
|
|||
/* Layer brush persistence between strokes */
|
||||
float (*layer_co)[3]; /* Copy of the mesh vertices' locations */
|
||||
|
||||
struct SculptStroke *stroke;
|
||||
struct StrokeCache *cache;
|
||||
|
||||
union {
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue