diff options
author | Erwin Coumans <blender@erwincoumans.com> | 2006-04-28 21:35:03 +0400 |
---|---|---|
committer | Erwin Coumans <blender@erwincoumans.com> | 2006-04-28 21:35:03 +0400 |
commit | be282bdf3f70a0feba65523c418f8b1134bff35a (patch) | |
tree | 996787a1915c00d790e203fdfea5c1ead1913813 /source/gameengine/Converter/BL_ArmatureObject.cpp | |
parent | 702207f03fc169743c5ffe6d04f566ea2ed119ac (diff) |
- Charlie fixed some bugs related to copying armature-constraint data (these are different from Bullet rigidbody constraints like the hinge, and point 2 point!)
- fixed a crashing bug related to objects without meshes (tried to get material info from it)
Diffstat (limited to 'source/gameengine/Converter/BL_ArmatureObject.cpp')
-rw-r--r-- | source/gameengine/Converter/BL_ArmatureObject.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source/gameengine/Converter/BL_ArmatureObject.cpp b/source/gameengine/Converter/BL_ArmatureObject.cpp index 7497f10724d..91c527f1980 100644 --- a/source/gameengine/Converter/BL_ArmatureObject.cpp +++ b/source/gameengine/Converter/BL_ArmatureObject.cpp @@ -146,8 +146,16 @@ void BL_ArmatureObject::GetPose(bPose **pose) { /* If the caller supplies a null pose, create a new one. */ /* Otherwise, copy the armature's pose channels into the caller-supplied pose */ - if (!*pose) - copy_pose(pose, m_pose, 0); + + if (!*pose) { + /* probably not to good of an idea to + duplicate everying, but it clears up + a crash and memory leakage when + &BL_ActionActuator::m_pose is freed + */ + int copy_constraint_channels_hack = 1; + copy_pose(pose, m_pose, copy_constraint_channels_hack); + } else extract_pose_from_pose(*pose, m_pose); |