diff --git a/Userland/Libraries/LibRegex/RegexByteCode.cpp b/Userland/Libraries/LibRegex/RegexByteCode.cpp index 07df3077d3..9a0c9f3818 100644 --- a/Userland/Libraries/LibRegex/RegexByteCode.cpp +++ b/Userland/Libraries/LibRegex/RegexByteCode.cpp @@ -186,10 +186,10 @@ ALWAYS_INLINE OpCode& ByteCode::get_opcode_by_id(OpCodeId id) const OpCode& ByteCode::get_opcode(MatchState& state) const { OpCodeId opcode_id; - if (state.instruction_position >= size()) - opcode_id = OpCodeId::Exit; + if (auto opcode_ptr = static_cast const&>(*this).find(state.instruction_position)) + opcode_id = (OpCodeId)*opcode_ptr; else - opcode_id = (OpCodeId)at(state.instruction_position); + opcode_id = OpCodeId::Exit; auto& opcode = get_opcode_by_id(opcode_id); opcode.set_state(state);