Bugfix #6864:
authorJoshua Leung <aligorith@gmail.com>
Wed, 20 Jun 2007 05:23:31 +0000 (05:23 +0000)
committerJoshua Leung <aligorith@gmail.com>
Wed, 20 Jun 2007 05:23:31 +0000 (05:23 +0000)
Copying Displace modifiers by themselves did not work correctly. The code was incorrectly just copying memory for source modifier to the new copy, causing problems due to the ModifierData struct at the start of the DisplaceModifierData struct (linked list pointers still referring to old stack).

source/blender/blenkernel/intern/modifier.c

index 707f050d56e27068449b42ebed3424248a2c482e..e23fb415d1422fb755c2dd66a88d2103fb5f6dfc 100644 (file)
@@ -2577,7 +2577,14 @@ static void displaceModifier_copyData(ModifierData *md, ModifierData *target)
        DisplaceModifierData *dmd = (DisplaceModifierData*) md;
        DisplaceModifierData *tdmd = (DisplaceModifierData*) target;
 
-       *tdmd = *dmd;
+       tdmd->texture = dmd->texture;
+       tdmd->strength = dmd->strength;
+       tdmd->direction = dmd->direction;
+       strncpy(tdmd->defgrp_name, dmd->defgrp_name, 32);
+       tdmd->midlevel = dmd->midlevel;
+       tdmd->texmapping = dmd->texmapping;
+       tdmd->map_object = dmd->map_object;
+       strncpy(tdmd->uvlayer_name, dmd->uvlayer_name, 32);
 }
 
 CustomDataMask displaceModifier_requiredDataMask(ModifierData *md)