Commit: 92c9111cae4f7ddfa4701372b34e594c1e930c82
Author: Martin Felke
Date:   Tue Apr 9 17:57:50 2019 +0200
Branches: sculpt-mode-features
https://developer.blender.org/rB92c9111cae4f7ddfa4701372b34e594c1e930c82

odd crashes on deleting objects and on load seem to be solved

turned out I needed to copy the csg operand list as well, so the walk
function has it available when it needs it.

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

M       source/blender/makesrna/intern/rna_modifier.c
M       source/blender/modifiers/intern/MOD_remesh.c

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

diff --git a/source/blender/makesrna/intern/rna_modifier.c 
b/source/blender/makesrna/intern/rna_modifier.c
index d4192e04fe2..8477485681a 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -643,6 +643,11 @@ static void rna_CSGVolume_object_set(PointerRNA *ptr, 
PointerRNA value)
        Object *ob = (Object *)value.data;
        id_lib_extern((ID *)ob);
        vcob->object = ob;
+       if (ob) {
+               ob->dt = OB_WIRE;
+               DEG_id_tag_update(&ob->id, ID_RECALC_TRANSFORM);
+               WM_main_add_notifier(NC_OBJECT | ND_DRAW, ob);
+       }
 }
 
 static void rna_RemeshModifier_voxel_size_set(PointerRNA *ptr, float value)
@@ -4255,6 +4260,7 @@ static void rna_def_modifier_remesh(BlenderRNA *brna)
 
        prop = RNA_def_property(srna, "object", PROP_POINTER, PROP_NONE);
        RNA_def_property_struct_type(prop, "Object");
+       RNA_def_property_pointer_sdna(prop, NULL, "object");
        RNA_def_property_pointer_funcs(prop, "rna_CSGVolume_object_get",
                                             "rna_CSGVolume_object_set",
                                             NULL,
diff --git a/source/blender/modifiers/intern/MOD_remesh.c 
b/source/blender/modifiers/intern/MOD_remesh.c
index e7d6e6af11e..09b06e40aca 100644
--- a/source/blender/modifiers/intern/MOD_remesh.c
+++ b/source/blender/modifiers/intern/MOD_remesh.c
@@ -373,7 +373,10 @@ static void foreachObjectLink(
 
        for (vcob = rmd->csg_operands.first; vcob; vcob = vcob->next)
        {
-               walk(userData, ob, &vcob->object, IDWALK_CB_NOP);
+               if (vcob->object)
+               {
+                       walk(userData, ob, &vcob->object, IDWALK_CB_NOP);
+               }
        }
 }
 
@@ -393,6 +396,15 @@ static void updateDepsgraph(ModifierData *md, const 
ModifierUpdateDepsgraphConte
        DEG_add_modifier_to_transform_relation(ctx->node, "Remesh Modifier");
 }
 
+static void copyData(const ModifierData *md_src, ModifierData *md_dst, const 
int flag)
+{
+       RemeshModifierData *rmd_src = (RemeshModifierData*)md_src;
+       RemeshModifierData *rmd_dst = (RemeshModifierData*)md_dst;
+
+       modifier_copyData_generic(md_src, md_dst, flag);
+       BLI_duplicatelist(&rmd_dst->csg_operands, &rmd_src->csg_operands);
+}
+
 ModifierTypeInfo modifierType_Remesh = {
        /* name */              "Remesh",
        /* structName */        "RemeshModifierData",
@@ -403,7 +415,7 @@ ModifierTypeInfo modifierType_Remesh = {
                                eModifierTypeFlag_SupportsEditmode |
                                eModifierTypeFlag_SupportsMapping,
 
-       /* copyData */          modifier_copyData_generic,
+       /* copyData */          copyData,
 
        /* deformVerts */       NULL,
        /* deformMatrices */    NULL,

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to