9 virtual ~HeapTracked() = 0;
10 void *operator new(size_t size);
11 void operator delete(void *ptr);
12 static bool isObjectAllocation(const HeapTracked *ptr);
15 HeapTracked::~HeapTracked(){}
16 void * HeapTracked::operator new(size_t size)
18 void * memPtr = ::operator new(size);
23 void HeapTracked::operator delete(void *ptr)
27 ::operator delete(ptr);
30 bool HeapTracked::isObjectAllocation(const HeapTracked *ptr)
32 if (p != const_cast<void*>(dynamic_cast<const void*>(ptr)))
37 class Mumble1: public virtual HeapTracked {
43 class Mumble2: public virtual HeapTracked {
49 class Foo: virtual public HeapTracked,
50 virtual public Mumble1,
51 virtual public Mumble2 {
59 pf->isObjectAllocation(pf);
62 pm1->isObjectAllocation(pm1);
65 pm2->isObjectAllocation(pm2);