Skip to content

Commit

Permalink
libdeng2: Cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Mar 27, 2013
1 parent ccaab27 commit 2706ea5
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions doomsday/libdeng2/include/de/libdeng2.h
Expand Up @@ -268,7 +268,8 @@ struct IPrivate {
virtual ~IPrivate() {}
#ifdef DENG2_DEBUG
unsigned int _privateInstVerification;
IPrivate() : _privateInstVerification(0xdeadbeef) {}
#define DENG2_IPRIVATE_VERIFICATION 0xdeadbeef
IPrivate() : _privateInstVerification(DENG2_IPRIVATE_VERIFICATION) {}
unsigned int privateInstVerification() const { return _privateInstVerification; }
#endif
};
Expand All @@ -294,7 +295,7 @@ class PrivateAutoPtr
IPrivate *ip = reinterpret_cast<IPrivate *>(ptr);
if(ip)
{
DENG2_ASSERT(ip->privateInstVerification() == 0xdeadbeef);
DENG2_ASSERT(ip->privateInstVerification() == DENG2_IPRIVATE_VERIFICATION);
delete ip;
}
ptr = p;
Expand All @@ -310,6 +311,14 @@ class PrivateAutoPtr
void swap(PrivateAutoPtr &other) {
std::swap(ptr, other.ptr);
}
bool isNull() const {
return !ptr;
}
#ifdef DENG2_DEBUG
bool isValid() const {
return ptr && reinterpret_cast<IPrivate *>(ptr)->privateInstVerification() == DENG2_IPRIVATE_VERIFICATION;
}
#endif

private:
InstType *ptr;
Expand Down

0 comments on commit 2706ea5

Please sign in to comment.