diff --git a/hipamd/src/hip_code_object.cpp b/hipamd/src/hip_code_object.cpp index a5a3fb5861..723b947010 100644 --- a/hipamd/src/hip_code_object.cpp +++ b/hipamd/src/hip_code_object.cpp @@ -1170,13 +1170,17 @@ hipError_t StatCO::removeFatBinary(FatBinaryInfo** module) { auto it = managedVars_.begin(); while (it != managedVars_.end()) { if ((*it)->moduleInfo() == module) { + hipError_t err; for (auto dev : g_devices) { DeviceVar* dvar = nullptr; IHIP_RETURN_ONFAIL((*it)->getStatDeviceVar(&dvar, dev->deviceId())); // free also deletes the device ptr - hipError_t err = ihipFree(dvar->device_ptr()); + err = ihipFree(dvar->device_ptr()); assert(err == hipSuccess); } + err = ihipFree(*(static_cast((*it)->getManagedVarPtr()))); + assert(err == hipSuccess); + delete *it; it = managedVars_.erase(it); } else { ++it;