Browse Source

Shader Decompiler: Fix dangerous behavior of invalid iterator insertion.

nce_cpp
Fernando Sahmkow 4 years ago
parent
commit
335b4b81cd
  1. 6
      src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp

6
src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp

@ -964,9 +964,9 @@ private:
demote_endif_node.type = Type::EndIf; demote_endif_node.type = Type::EndIf;
demote_endif_node.data.end_if.merge = return_block_it->data.block; demote_endif_node.data.end_if.merge = return_block_it->data.block;
asl.insert(return_block_it, demote_endif_node);
asl.insert(return_block_it, demote_node);
asl.insert(return_block_it, demote_if_node);
const auto next_it_1 = asl.insert(return_block_it, demote_endif_node);
const auto next_it_2 = asl.insert(next_it_1, demote_node);
asl.insert(next_it_2, demote_if_node);
} }
ObjectPool<Statement>& stmt_pool; ObjectPool<Statement>& stmt_pool;

Loading…
Cancel
Save