Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-04-21 13:38:09 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-04-21 13:38:09 +0400
commit20d3022076d842d51d620ab725e3d8eed18e95da (patch)
tree5a8b2f539a40c85a596d8d7b655430525e256d01
parent62a02764abea8c73f14f36a5b45058ce8a7e4f36 (diff)
following on from last commit r36263.
copying metaball, lattice and armature datablocks while in editmode could segfault when they were freed, NULL these pointers on copy.
-rw-r--r--source/blender/blenkernel/intern/armature.c5
-rw-r--r--source/blender/blenkernel/intern/curve.c1
-rw-r--r--source/blender/blenkernel/intern/lattice.c4
-rw-r--r--source/blender/blenkernel/intern/mball.c3
4 files changed, 12 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index a0511f5da2e..a79637eea73 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -214,6 +214,11 @@ bArmature *copy_armature(bArmature *arm)
};
newArm->act_bone= newActBone;
+
+ newArm->edbo= NULL;
+ newArm->act_edbone= NULL;
+ newArm->sketch= NULL;
+
return newArm;
}
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index 7a5e0d5c33d..f68533803e7 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -201,6 +201,7 @@ Curve *copy_curve(Curve *cu)
cun->editnurb= NULL;
cun->editfont= NULL;
+ cun->selboxes= NULL;
#if 0 // XXX old animation system
/* single user ipo too */
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index 9d93bb1c25d..d308ccbf876 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -219,7 +219,9 @@ Lattice *copy_lattice(Lattice *lt)
ltn->dvert = MEM_mallocN (sizeof (MDeformVert)*tot, "Lattice MDeformVert");
copy_dverts(ltn->dvert, lt->dvert, tot);
}
-
+
+ ltn->editlatt= NULL;
+
return ltn;
}
diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c
index 74e31238b96..6fe9e378290 100644
--- a/source/blender/blenkernel/intern/mball.c
+++ b/source/blender/blenkernel/intern/mball.c
@@ -132,6 +132,9 @@ MetaBall *copy_mball(MetaBall *mb)
id_us_plus((ID *)mbn->mat[a]);
}
mbn->bb= MEM_dupallocN(mb->bb);
+
+ mbn->editelems= NULL;
+ mbn->lastelem= NULL;
return mbn;
}