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:
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user