Skip to content

Commit 65db4c5

Browse files
committed
Merge rust-bitcoin/rust-miniscript#777: feat: remove inefficient if check on match lex
aa722c228c80aabb1e2e3a7a0f0fe5f4e348c444 feat: remove inefficient if check on match lex (ChrisCho-H) Pull request description: I'm not sure whether it's intentional, but this pattern(match and then if) could make lexer little slower for `OP_CSV` and `OP_CLTV`(and `Error::InvalidOpcode`) as they aren't caught in match arms but `if` block like below(which causes additional check). ```rust ... script::Instruction::Op(op) => { if op == opcodes::all::OP_CSV { ret.push(Token::CheckSequenceVerify); } else if op == opcodes::all::OP_CLTV { ret.push(Token::CheckLockTimeVerify); } else { return Err(Error::InvalidOpcode(op)) } } ``` ACKs for top commit: apoelstra: ACK aa722c228c80aabb1e2e3a7a0f0fe5f4e348c444; successfully ran local tests; nice! sanket1729: ACK aa722c228c80aabb1e2e3a7a0f0fe5f4e348c444 Tree-SHA512: d538e9f064cdb55fc2e8cbb8e56532a0ebe0563e9b1227c9a9a84140e5f23c22663ea2a976a8ac19e69bbbb7eb8b517b54d04ea7759747f2dc8370f5f45f0255
2 parents 7435e97 + 1b8599f commit 65db4c5

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

src/miniscript/lex.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,10 @@ pub fn lex(script: &'_ script::Script) -> Result<Vec<Token<'_>>, Error> {
138138
ret.push(Token::CheckMultiSig);
139139
ret.push(Token::Verify);
140140
}
141-
script::Instruction::Op(op) if op == opcodes::all::OP_CSV => {
141+
script::Instruction::Op(opcodes::all::OP_CSV) => {
142142
ret.push(Token::CheckSequenceVerify);
143143
}
144-
script::Instruction::Op(op) if op == opcodes::all::OP_CLTV => {
144+
script::Instruction::Op(opcodes::all::OP_CLTV) => {
145145
ret.push(Token::CheckLockTimeVerify);
146146
}
147147
script::Instruction::Op(opcodes::all::OP_FROMALTSTACK) => {

0 commit comments

Comments
 (0)