SWDEV-508435 - Added a fix for double free of hsaImageObject
Change-Id: I9397f7c9dbbad7c249b359155df312cb920eba6c
Šī revīzija ir iekļauta:
@@ -1252,6 +1252,7 @@ bool Image::create(bool alloc_local) {
|
||||
permission_ = orgImage->permission_;
|
||||
deviceMemory_ = orgImage->deviceMemory_;
|
||||
hsaImageObject_ = orgImage->hsaImageObject_;
|
||||
ownsHsaImageObject_ = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1490,7 +1491,7 @@ void Image::destroy() {
|
||||
|
||||
delete copyImageBuffer_;
|
||||
|
||||
if (hsaImageObject_.handle != 0) {
|
||||
if (hsaImageObject_.handle != 0 && ownsHsaImageObject_) {
|
||||
hsa_status_t status = hsa_ext_image_destroy(dev().getBackendDevice(), hsaImageObject_);
|
||||
assert(status == HSA_STATUS_SUCCESS);
|
||||
}
|
||||
|
||||
@@ -250,6 +250,7 @@ class Image : public roc::Memory {
|
||||
hsa_access_permission_t permission_;
|
||||
hsa_ext_image_data_info_t deviceImageInfo_;
|
||||
hsa_ext_image_t hsaImageObject_;
|
||||
bool ownsHsaImageObject_ = true;
|
||||
|
||||
void* originalDeviceMemory_;
|
||||
amd::Image* copyImageBuffer_ = nullptr;
|
||||
|
||||
Atsaukties uz šo jaunā problēmā
Block a user