~SharedPointer() { if(refs) { *refs = (*refs) - 1; if((*refs) == 0) { delete refs; _deleter(ptr); } } }
SharedPointer<T> & operator=(const SharedPointer<T> rhs) { if(refs) { *refs = (*refs) - 1; if((*refs) == 0) { delete refs; _deleter(ptr); } } refs = rhs.refs; ptr = rhs.ptr; if(refs) { *refs = (*refs) + 1; } return *this; }
/** Delete the managed object. */ void reset(Pointer ptr = Pointer()) { _deleter(_ptr); _ptr = ptr; }
ZGraphicsBuffer::~ZGraphicsBuffer() { _deleter(_buffer); }