- Code: Select all
class MyAlloc : public dgMemoryAllocator
{
public:
static void* MyMalloc(unsigned Size)
{
return ::malloc(Size);
}
static void MyFree(void* Ptr, unsigned Size)
{
::free(Ptr);
}
FORCEINLINE MyAlloc()
: dgMemoryAllocator(MyMalloc, MyFree)
{
}
};
int _tmain(int argc, _TCHAR* argv[])
{
MyAlloc* Alloc = new MyAlloc();
dgWorld* World = new (Alloc)dgWorld(Alloc);
dgDynamicBody* Body = new (Alloc)dgDynamicBody();
dgCollisionBox* Box = new (Alloc)dgCollisionBox(Alloc, 0, 1, 1, 1);
dgMatrix Identity = dgGetIdentityMatrix();
dgCollisionInstance* Instance = new (Alloc)dgCollisionInstance(World, Box, 0, Identity);
World->InitBody(Body, Instance, Identity);
delete Instance;
World->DestroyBody(Body);
delete World;
int Mem = dgGetMemoryUsed();
std::cout << Mem << std::endl;
delete Alloc;
return 0;
}
I wrote very simple code like above.
but Memory is not collect perfectly.
I think, the logic is valid because that code assembled from Newton.h and Newton.cpp without MasterList features.
Please check it and tell me why memory leaked.