fix uninitialized data in btMultiBodyPoint2Point, thanks to Valgrind

valgrind --track-origins=yes  --log-file="dump_valgrind.txt" ./App_AllBullet2Demos_codeblocks_x64_debug
This commit is contained in:
Erwin Coumans
2014-05-16 11:56:43 -07:00
parent 01ce7a0288
commit 08369dbd0a

View File

@@ -96,10 +96,18 @@ void btMultiBodyPoint2Point::createConstraintRows(btMultiBodyConstraintArray& co
{ {
// int i=1; // int i=1;
for (int i=0;i<BTMBP2PCONSTRAINT_DIM;i++) int numDim = BTMBP2PCONSTRAINT_DIM;
for (int i=0;i<numDim;i++)
{ {
btMultiBodySolverConstraint& constraintRow = constraintRows.expandNonInitializing(); btMultiBodySolverConstraint& constraintRow = constraintRows.expandNonInitializing();
//memset(&constraintRow,0xffffffff,sizeof(btMultiBodySolverConstraint));
constraintRow.m_relpos1CrossNormal.setValue(0,0,0);
constraintRow.m_contactNormal1.setValue(0,0,0);
constraintRow.m_relpos2CrossNormal.setValue(0,0,0);
constraintRow.m_contactNormal2.setValue(0,0,0);
constraintRow.m_angularComponentA.setValue(0,0,0);
constraintRow.m_angularComponentB.setValue(0,0,0);
constraintRow.m_solverBodyIdA = data.m_fixedBodyId; constraintRow.m_solverBodyIdA = data.m_fixedBodyId;
constraintRow.m_solverBodyIdB = data.m_fixedBodyId; constraintRow.m_solverBodyIdB = data.m_fixedBodyId;
@@ -148,6 +156,8 @@ void btMultiBodyPoint2Point::createConstraintRows(btMultiBodyConstraintArray& co
infoGlobal, infoGlobal,
-m_maxAppliedImpulse, m_maxAppliedImpulse -m_maxAppliedImpulse, m_maxAppliedImpulse
); );
//@todo: support the case of btMultiBody versus btRigidBody,
//see btPoint2PointConstraint::getInfo2NonVirtual
#else #else
const btVector3 dummy(0, 0, 0); const btVector3 dummy(0, 0, 0);