diff options
author | Tigran Gasparian <gaspariantigran@gmail.com> | 2019-08-08 09:50:32 +0200 |
---|---|---|
committer | Tigran Gasparian <gaspariantigran@gmail.com> | 2019-08-08 09:50:32 +0200 |
commit | 822c24e8678164ea632f725204bef913031824e6 (patch) | |
tree | 9c0210eecb2a4a1ff3d2d5341ba6c8416c895eba | |
parent | 666e1a8bad7dbebc2f40f15cb763dddc86154df6 (diff) | |
download | bullet3-822c24e8678164ea632f725204bef913031824e6.tar.gz |
Clears body and user data caches when syncBodyInfo and syncUserData are called
-rw-r--r-- | examples/SharedMemory/PhysicsClientSharedMemory.cpp | 5 | ||||
-rw-r--r-- | examples/SharedMemory/PhysicsDirect.cpp | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/examples/SharedMemory/PhysicsClientSharedMemory.cpp b/examples/SharedMemory/PhysicsClientSharedMemory.cpp index daebb7afd..20d6adade 100644 --- a/examples/SharedMemory/PhysicsClientSharedMemory.cpp +++ b/examples/SharedMemory/PhysicsClientSharedMemory.cpp @@ -1270,6 +1270,7 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() case CMD_SYNC_BODY_INFO_COMPLETED: { + m_data->m_bodyJointMap.clear(); break; } case CMD_STATE_LOGGING_START_COMPLETED: @@ -1553,6 +1554,8 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() { B3_PROFILE("CMD_SYNC_USER_DATA_COMPLETED"); // Remove all cached user data entries. + m_data->m_userDataMap.clear(); + m_data->m_userDataHandleLookup.clear(); for (int i = 0; i < m_data->m_bodyJointMap.size(); i++) { BodyJointInfoCache** bodyJointsPtr = m_data->m_bodyJointMap.getAtIndex(i); @@ -1560,8 +1563,6 @@ const SharedMemoryStatus* PhysicsClientSharedMemory::processServerStatus() { (*bodyJointsPtr)->m_userDataIds.clear(); } - m_data->m_userDataMap.clear(); - m_data->m_userDataHandleLookup.clear(); } const int numIdentifiers = serverCmd.m_syncUserDataArgs.m_numUserDataIdentifiers; if (numIdentifiers > 0) diff --git a/examples/SharedMemory/PhysicsDirect.cpp b/examples/SharedMemory/PhysicsDirect.cpp index d838cc7ba..69d4b4ff5 100644 --- a/examples/SharedMemory/PhysicsDirect.cpp +++ b/examples/SharedMemory/PhysicsDirect.cpp @@ -912,6 +912,7 @@ void PhysicsDirect::postProcessStatus(const struct SharedMemoryStatus& serverCmd break; } case CMD_SYNC_BODY_INFO_COMPLETED: + m_data->m_bodyJointMap.clear(); case CMD_MJCF_LOADING_COMPLETED: case CMD_SDF_LOADING_COMPLETED: { @@ -1193,6 +1194,8 @@ void PhysicsDirect::postProcessStatus(const struct SharedMemoryStatus& serverCmd { B3_PROFILE("CMD_SYNC_USER_DATA_COMPLETED"); // Remove all cached user data entries. + m_data->m_userDataMap.clear(); + m_data->m_userDataHandleLookup.clear(); for (int i = 0; i < m_data->m_bodyJointMap.size(); i++) { BodyJointInfoCache2** bodyJointsPtr = m_data->m_bodyJointMap.getAtIndex(i); @@ -1200,8 +1203,6 @@ void PhysicsDirect::postProcessStatus(const struct SharedMemoryStatus& serverCmd { (*bodyJointsPtr)->m_userDataIds.clear(); } - m_data->m_userDataMap.clear(); - m_data->m_userDataHandleLookup.clear(); } const int numIdentifiers = serverCmd.m_syncUserDataArgs.m_numUserDataIdentifiers; int* identifiers = new int[numIdentifiers]; |