One of the "new"s was not converted to a placement new during the 2.64 upgrade which should cause a mem leak for anyone using the MultiSap broadphase. In btMultiSapBroadphase.cpp line 83 the line currently reads:
Code: Select all
btChildProxy* childProxyRef = new btChildProxy();
Code: Select all
btChildProxy* childProxyRef = new (mem) btChildProxy();
Code: Select all
int key = ((unsigned int)proxyId1) | (((unsigned int)proxyId1) <<16);
Code: Select all
int key = ((unsigned int)proxyId1) | (((unsigned int)proxyId2) <<16);
While not necessarily a bug, there are a few includes that use the system path for Bullet files. This is inconsistent with the majority of the code base and is annoying if you are using a development environment that doesn't search the user include path for system includes by default.
btDiscreteDynamicsWorld.cpp line 24 : #include <LinearMath/btTransformUtil.h>
btSimpleBroadphase.cpp line 17: #include <BulletCollision/BroadphaseCollision/btDispatcher.h>
btSimpleBroadphase.cpp line 18: #include <BulletCollision/BroadphaseCollision/btCollisionAlgorithm.h>
btPolyhedralConvexShape.cpp line 16 : #include <BulletCollision/CollisionShapes/btPolyhedralConvexShape.h>
btGjkEpa.cpp line 29 : #include <LinearMath/btStackAlloc.h>
I hope the above are helpful. Overall I've been quite please with Bullet and expect to continue using it. Thanks for all the good work.
Best regards,
Stephen