30 lines
663 B
C++
30 lines
663 B
C++
|
#include <osg/Referenced>
|
||
|
#include <osg/Notify>
|
||
|
#include <typeinfo>
|
||
|
|
||
|
namespace osg
|
||
|
{
|
||
|
|
||
|
static std::auto_ptr<DeleteHandler> s_deleteHandler(0);
|
||
|
|
||
|
void Referenced::setDeleteHandler(DeleteHandler* handler)
|
||
|
{
|
||
|
s_deleteHandler.reset(handler);
|
||
|
}
|
||
|
|
||
|
DeleteHandler* Referenced::getDeleteHandler()
|
||
|
{
|
||
|
return s_deleteHandler.get();
|
||
|
}
|
||
|
|
||
|
Referenced::~Referenced()
|
||
|
{
|
||
|
if (_refCount>0)
|
||
|
{
|
||
|
notify(WARN)<<"Warning: deleting still referenced object "<<this<<" of type '"<<typeid(this).name()<<"'"<<std::endl;
|
||
|
notify(WARN)<<" the final reference count was "<<_refCount<<", memory corruption possible."<<std::endl;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}; // end of namespace osg
|