[IE CLDNN] program_impl::replace_all_usages causes invalid memory access. (#138)

This commit is contained in:
chxd 2020-11-17 18:45:42 +08:00 committed by GitHub
parent 15f7ab5e6e
commit 5de182a4ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -771,11 +771,12 @@ void program_impl::swap_names(program_node& node1, program_node& node2) {
} }
void program_impl::replace_all_usages(program_node& old_node, program_node& new_node) { void program_impl::replace_all_usages(program_node& old_node, program_node& new_node) {
auto itr = old_node.users.begin(); const std::list<program_node*> users(old_node.users);
auto cnt = old_node.users.size(); auto itr = users.begin();
while (cnt != 0) { bool end = (itr == users.end());
cnt--; while (!end) {
auto& usage = (*itr++); auto& usage = (*itr++);
end = (itr == users.end());
usage->replace_dependency(old_node, new_node); usage->replace_dependency(old_node, new_node);
} }
} }