From dd24ef244d363f856e764e205a7b6b9b3553d02d Mon Sep 17 00:00:00 2001 From: lizzie Date: Mon, 3 Nov 2025 21:09:14 +0100 Subject: [PATCH] [dynarmic] fix assert for referencing a non-initialized part of the boost::stable_vector container (#2940) Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2940 Reviewed-by: Caio Oliveira Reviewed-by: MaranBr Co-authored-by: lizzie Co-committed-by: lizzie --- src/dynarmic/src/dynarmic/ir/basic_block.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dynarmic/src/dynarmic/ir/basic_block.cpp b/src/dynarmic/src/dynarmic/ir/basic_block.cpp index 612a3d28e9..ae9e0b103b 100644 --- a/src/dynarmic/src/dynarmic/ir/basic_block.cpp +++ b/src/dynarmic/src/dynarmic/ir/basic_block.cpp @@ -44,13 +44,13 @@ Block::iterator Block::PrependNewInst(iterator insertion_point, Opcode opcode, s // hugely benefit from the coherency of faster allocations... IR::Inst* inst; if (inlined_inst.size() < inlined_inst.max_size()) { - inst = &inlined_inst[inlined_inst.size()]; inlined_inst.emplace_back(opcode); + inst = &inlined_inst[inlined_inst.size() - 1]; } else { if (pooled_inst.empty() || pooled_inst.back().size() == pooled_inst.back().max_size()) pooled_inst.emplace_back(); - inst = &pooled_inst.back()[pooled_inst.back().size()]; pooled_inst.back().emplace_back(opcode); + inst = &pooled_inst.back()[pooled_inst.back().size() - 1]; } DEBUG_ASSERT(args.size() == inst->NumArgs()); std::for_each(args.begin(), args.end(), [&inst, index = size_t(0)](const auto& arg) mutable {