Skip to content

Commit 76b27da

Browse files
committed
Merge #777: feat: remove inefficient if check on match lex
aa722c2 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 aa722c2; successfully ran local tests; nice! sanket1729: ACK aa722c2 Tree-SHA512: d538e9f064cdb55fc2e8cbb8e56532a0ebe0563e9b1227c9a9a84140e5f23c22663ea2a976a8ac19e69bbbb7eb8b517b54d04ea7759747f2dc8370f5f45f0255
2 parents 460400d + aa722c2 commit 76b27da

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)