Add stronger checking

- Add assertions to enforce that objects are of the correct kind and
  have been allocated.

- Make destructors check if objects have been allocated before
  deleting.

- Operations that require a non-NullDevice return failure if given a
  NullDevice.

- Use static_cast rather than reinterpret_cast when cohersing from a
  base class to a derived class.

Change-Id: I02ee0ea9d7982fd7ca29d49c9b02cfae111b7127
This commit is contained in:
Tony Tye
2021-01-10 02:09:00 +00:00
والد 001fd66cac
کامیت e5431676d4
11فایلهای تغییر یافته به همراه96 افزوده شده و 13 حذف شده
+9 -4
مشاهده پرونده
@@ -268,10 +268,14 @@ Device::Device()
}
Device::~Device() {
CondLog((vaCacheMap_ != nullptr) && (vaCacheMap_->size() != 0),
"Application didn't unmap all host memory!");
delete vaCacheMap_;
delete vaCacheAccess_;
if (vaCacheMap_) {
CondLog(vaCacheMap_->size() != 0, "Application didn't unmap all host memory!");
delete vaCacheMap_;
}
if (vaCacheAccess_) {
delete vaCacheAccess_;
}
// Destroy device settings
if (settings_ != nullptr) {
@@ -297,6 +301,7 @@ bool Device::ValidateComgr() {
}
bool Device::create() {
assert(!vaCacheAccess_ && !vaCacheMap_);
vaCacheAccess_ = new amd::Monitor("VA Cache Ops Lock", true);
if (nullptr == vaCacheAccess_) {
return false;