add release() method

This commit is contained in:
dockes 2009-08-13 06:34:32 +00:00
parent 9b44f94629
commit 18a2454a03

View File

@ -32,12 +32,18 @@ public:
(*pcount)++; (*pcount)++;
return *this; return *this;
} }
~RefCntr() void release()
{ {
if (pcount && --(*pcount) == 0) { if (pcount && --(*pcount) == 0) {
delete rep; delete rep;
delete pcount; delete pcount;
} }
rep = 0;
pcount = 0;
}
~RefCntr()
{
release();
} }
X *operator->() {return rep;} X *operator->() {return rep;}
X *getptr() const {return rep;} X *getptr() const {return rep;}