fix issue ,don't iterate over [0..numBodyHandles], would fail once we allow 'removeBody'...

This commit is contained in:
Erwin Coumans
2017-05-03 11:23:01 -07:00
parent 2c8f65a2d0
commit 6f7601966d
2 changed files with 23 additions and 4 deletions

View File

@@ -2793,11 +2793,12 @@ bool PhysicsServerCommandProcessor::processCommand(const struct SharedMemoryComm
{
BT_PROFILE("CMD_SYNC_BODY_INFO");
int numHandles = m_data->m_bodyHandles.getNumHandles();
b3AlignedObjectArray<int> usedHandles;
m_data->m_bodyHandles.getUsedHandles(usedHandles);
int actualNumBodies = 0;
for (int i=0;i<numHandles;i++)
for (int i=0;i<usedHandles.size();i++)
{
InteralBodyData* body = m_data->m_bodyHandles.getHandle(i);
InteralBodyData* body = m_data->m_bodyHandles.getHandle(usedHandles[i]);
if (body && (body->m_multiBody || body->m_rigidBody))
{
serverStatusOut.m_sdfLoadedArgs.m_bodyUniqueIds[actualNumBodies++] = i;