Fix for segfault after removing PrefetchRange from map
The start iterator becomes invalid after it is removed from std::map prefetch_map_. This was causing a segfault when the iterator is incremented afterwards. Signed-off-by: David Yat Sin <david.yatsin@amd.com> Change-Id: I4b0b763d2cb4ee99c0b8571c2c526b834e74077a
This commit is contained in:
1 parent
fce6ba052e
commit
86164fbfec
1 file changed
+2
-1
@@ -2030,7 +2030,8 @@ hsa_status_t Runtime::SvmPrefetch(void* ptr, size_t size, hsa_agent_t agent,
|
||||
start->second.prev->second.next = start->second.next;
|
||||
if (!isEndNode(start)) start->second.next->second.prev = start->second.prev;
|
||||
}
|
||||
prefetch_map_.erase(start);
|
||||
start = prefetch_map_.erase(start);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
start++;
|
||||
|
||||
Reference in new issue
Block a user