Print a meaningful warning message instead of aborting in debug
mode builds and failing silently in release mode builds.
Change-Id: I44143c5fbe6b6af87bdf5bd231cfaf9a3c9c33f8
Task-number: QTBUG-17582
Reviewed-by: Rohan McGovern
(cherry picked from commit
a8dc321b6669dd263a25a0cb5766e5b7150c6e20)
{
void *ptr;
MyData() : ptr(this) {}
- ~MyData() { Q_ASSERT(ptr == this); }
+ ~MyData()
+ {
+ if (ptr != this) qWarning("MyData::~MyData(): object has moved");
+ }
MyData(const MyData& o) : ptr(this) { Q_ASSERT(o.ptr == &o); }
MyData &operator=(const MyData &o)
{
- Q_ASSERT(ptr == this);
- Q_ASSERT(o.ptr == &o);
+ if (ptr != this) qWarning("MyData::operator=(): object has moved");
+ if (o.ptr != &o) qWarning("MyData::operator=(): other object has moved");
return *this;
}
bool operator==(const MyData &o) const
{
- Q_ASSERT(ptr == this);
- Q_ASSERT(o.ptr == &o);
+ if (ptr != this) qWarning("MyData::operator==(): object has moved");
+ if (o.ptr != &o) qWarning("MyData::operator==(): other object has moved");
return true;
}
};