From 668d49db621bec4c890652a730a95998b4cfd992 Mon Sep 17 00:00:00 2001 From: Vladislav Sytchenko Date: Wed, 8 Apr 2020 14:10:10 -0400 Subject: [PATCH] Don't call updateFreeMemory() if the allocation failed Change-Id: I978cb2e463914f6a48b3d4a9057c0f67e7bdb646 [ROCm/clr commit: c781f4d41941f0b627a56464c154b3e692c4f94f] --- projects/clr/rocclr/device/rocm/rocmemory.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/projects/clr/rocclr/device/rocm/rocmemory.cpp b/projects/clr/rocclr/device/rocm/rocmemory.cpp index 52a12f3797..477ddecf98 100644 --- a/projects/clr/rocclr/device/rocm/rocmemory.cpp +++ b/projects/clr/rocclr/device/rocm/rocmemory.cpp @@ -650,7 +650,8 @@ void Buffer::destroy() { dev().memFree(deviceMemory_, size()); } - if (dev().settings().apuSystem_ || !isFineGrain) { + if ((deviceMemory_ != nullptr) && + (dev().settings().apuSystem_ || !isFineGrain)) { const_cast(dev()).updateFreeMemory(size(), true); } @@ -739,7 +740,8 @@ bool Buffer::create() { owner()->parent()->commitSvmMemory(); } - if (dev().settings().apuSystem_ || !isFineGrain) { + if ((deviceMemory_ != nullptr) && + (dev().settings().apuSystem_ || !isFineGrain)) { const_cast(dev()).updateFreeMemory(size(), false); } @@ -805,7 +807,7 @@ bool Buffer::create() { deviceMemory_ = dev().hostAlloc(size(), 1, false); owner()->setHostMem(deviceMemory_); - if (dev().settings().apuSystem_) { + if ((deviceMemory_ != nullptr) && dev().settings().apuSystem_) { const_cast(dev()).updateFreeMemory(size(), false); } } @@ -1091,7 +1093,7 @@ bool Image::create() { if (originalDeviceMemory_ == nullptr) { originalDeviceMemory_ = dev().hostAlloc(alloc_size, 1, false); - if (dev().settings().apuSystem_) { + if ((originalDeviceMemory_ != nullptr) && dev().settings().apuSystem_) { const_cast(dev()).updateFreeMemory(alloc_size, false); } }