Fixing serialization issues introduced in previous commits:
0 maps to 0 (for getUniquePointer) use getUniquePointer for names too
This commit is contained in:
@@ -89,10 +89,12 @@ const char* btCollisionObject::serialize(void* dataBuffer, btSerializer* seriali
|
||||
dataOut->m_friction = m_friction;
|
||||
dataOut->m_restitution = m_restitution;
|
||||
dataOut->m_internalType = m_internalType;
|
||||
dataOut->m_name = (char*) serializer->findNameForPointer(this);
|
||||
|
||||
char* name = (char*) serializer->findNameForPointer(this);
|
||||
dataOut->m_name = (char*)serializer->getUniquePointer(name);
|
||||
if (dataOut->m_name)
|
||||
{
|
||||
serializer->serializeName(dataOut->m_name);
|
||||
serializer->serializeName(name);
|
||||
}
|
||||
dataOut->m_hitFraction = m_hitFraction;
|
||||
dataOut->m_ccdSweptSphereRadius = m_ccdSweptSphereRadius;
|
||||
|
||||
@@ -99,10 +99,11 @@ void btCollisionShape::calculateTemporalAabb(const btTransform& curTrans,const b
|
||||
const char* btCollisionShape::serialize(void* dataBuffer, btSerializer* serializer) const
|
||||
{
|
||||
btCollisionShapeData* shapeData = (btCollisionShapeData*) dataBuffer;
|
||||
shapeData->m_name = (char*) serializer->findNameForPointer(this);
|
||||
char* name = (char*) serializer->findNameForPointer(this);
|
||||
shapeData->m_name = (char*)serializer->getUniquePointer(name);
|
||||
if (shapeData->m_name)
|
||||
{
|
||||
serializer->serializeName(shapeData->m_name);
|
||||
serializer->serializeName(name);
|
||||
}
|
||||
shapeData->m_shapeType = m_shapeType;
|
||||
//shapeData->m_padding//??
|
||||
|
||||
@@ -105,10 +105,11 @@ const char* btTypedConstraint::serialize(void* dataBuffer, btSerializer* seriali
|
||||
|
||||
tcd->m_rbA = (btRigidBodyData*)serializer->getUniquePointer(&m_rbA);
|
||||
tcd->m_rbB = (btRigidBodyData*)serializer->getUniquePointer(&m_rbB);
|
||||
tcd->m_name = (char*) serializer->findNameForPointer(this);
|
||||
char* name = (char*) serializer->findNameForPointer(this);
|
||||
tcd->m_name = (char*)serializer->getUniquePointer(name);
|
||||
if (tcd->m_name)
|
||||
{
|
||||
serializer->serializeName(tcd->m_name);
|
||||
serializer->serializeName(name);
|
||||
}
|
||||
|
||||
tcd->m_objectType = m_objectType;
|
||||
|
||||
@@ -473,6 +473,9 @@ public:
|
||||
|
||||
virtual void* getUniquePointer(void*oldPtr)
|
||||
{
|
||||
if (!oldPtr)
|
||||
return 0;
|
||||
|
||||
btPointerUid* uptr = (btPointerUid*)m_uniquePointers.find(oldPtr);
|
||||
if (uptr)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user