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
이 커밋은 다음에 포함됨:
David Yat Sin 작성하고 Sean Keely가 2022-01-10 17:47:02 -05:00를 커밋함
1 부모 fce6ba052e
커밋 86164fbfec
1 파일이 변경됨
+2 -1
+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++;