소스 검색

LibJS/Bytecode: Replace merged block references before copying them

Ali Mohammad Pur 3 년 전
부모
커밋
0b8d2fb62f
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      Userland/Libraries/LibJS/Bytecode/Pass/MergeBlocks.cpp

+ 2 - 2
Userland/Libraries/LibJS/Bytecode/Pass/MergeBlocks.cpp

@@ -135,6 +135,8 @@ void MergeBlocks::perform(PassPipelineExecutable& executable)
 
         auto new_block = BasicBlock::create(builder.build(), size);
         auto& block = *new_block;
+        auto first_successor_position = replace_blocks(successors, *new_block);
+        VERIFY(first_successor_position.has_value());
 
         size_t last_successor_index = successors.size() - 1;
         for (size_t i = 0; i < successors.size(); ++i) {
@@ -152,8 +154,6 @@ void MergeBlocks::perform(PassPipelineExecutable& executable)
             block.grow(copy_end);
         }
 
-        auto first_successor_position = replace_blocks(successors, *new_block);
-        VERIFY(first_successor_position.has_value());
         executable.executable.basic_blocks.insert(*first_successor_position, move(new_block));
     }