diff --git a/src/rose/rose_build_program.cpp b/src/rose/rose_build_program.cpp index 3ddf2fcd..8e179e36 100644 --- a/src/rose/rose_build_program.cpp +++ b/src/rose/rose_build_program.cpp @@ -204,6 +204,15 @@ void RoseProgram::add_block(RoseProgram &&block) { make_move_iterator(block.prog.end())); } +template +void RoseProgram::replace(Iter it, std::unique_ptr ri) { + assert(!prog.empty()); + + const RoseInstruction *old_ptr = it->get(); + *it = move(ri); + update_targets(prog.begin(), prog.end(), old_ptr, it->get()); +} + bytecode_ptr writeProgram(RoseEngineBlob &blob, const RoseProgram &program) { u32 total_len = 0; diff --git a/src/rose/rose_build_program.h b/src/rose/rose_build_program.h index 6ad5529c..1882279d 100644 --- a/src/rose/rose_build_program.h +++ b/src/rose/rose_build_program.h @@ -124,13 +124,7 @@ public: * \brief Replace the instruction pointed to by the given iterator. */ template - void replace(Iter it, std::unique_ptr ri) { - assert(!prog.empty()); - - const RoseInstruction *old_ptr = it->get(); - *it = move(ri); - update_targets(prog.begin(), prog.end(), old_ptr, it->get()); - } + void replace(Iter it, std::unique_ptr ri); }; bytecode_ptr writeProgram(RoseEngineBlob &blob,