[Bf-blender-cvs] [8e46ef2fa5e] master: Sculpt: Fix crash when sculpting after disabling dyntopo

Joseph Eagar noreply at git.blender.org
Thu Dec 8 13:41:57 CET 2022


Commit: 8e46ef2fa5e63b145e1f448a77a1878d5f265d54
Author: Joseph Eagar
Date:   Thu Dec 8 04:40:42 2022 -0800
Branches: master
https://developer.blender.org/rB8e46ef2fa5e63b145e1f448a77a1878d5f265d54

Sculpt: Fix crash when sculpting after disabling dyntopo

Attributes weren't being reinitialized properly.

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

M	release/scripts/addons
M	source/blender/blenkernel/intern/paint.cc

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

diff --git a/release/scripts/addons b/release/scripts/addons
index fdfd24de034..0b0052bd53a 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit fdfd24de034d4bba4fb67731d0aae81dc4940239
+Subproject commit 0b0052bd53ad8249ed07dfb87705c338af698bde
diff --git a/source/blender/blenkernel/intern/paint.cc b/source/blender/blenkernel/intern/paint.cc
index a39e53662aa..200eb3e8732 100644
--- a/source/blender/blenkernel/intern/paint.cc
+++ b/source/blender/blenkernel/intern/paint.cc
@@ -2571,15 +2571,19 @@ static bool sculpt_attr_update(Object *ob, SculptAttribute *attr)
     if (bad) {
       MEM_SAFE_FREE(attr->data);
     }
+    else {
+      attr->data_for_bmesh = false;
+    }
   }
   else {
     CustomData *cdata = sculpt_get_cdata(ob, attr->domain);
 
     if (cdata) {
       int layer_index = CustomData_get_named_layer_index(cdata, attr->proptype, attr->name);
-      bad = layer_index == -1;
 
-      if (ss->bm) {
+      bad |= (ss->bm != nullptr) != attr->data_for_bmesh;
+
+      if (attr->data_for_bmesh) {
         attr->bmesh_cd_offset = cdata->layers[layer_index].offset;
       }
     }



More information about the Bf-blender-cvs mailing list