Skip to content

Commit 414538c

Browse files
committed
Minor adjustments
1 parent ff9eea5 commit 414538c

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ pub fn define_pushable(_: TokenStream) -> TokenStream {
307307
fn bitcoin_script_push(self, builder: Builder) -> Builder {
308308
let (optimal, replacement_opcode) =
309309
check_optimality(builder.last_opcode(), self.first_opcode());
310-
let mut script_vec = vec![];
310+
let mut script_vec = Vec::with_capacity(builder.0.as_bytes().len() + self.as_bytes().len());
311311
if optimal {
312312
script_vec.extend_from_slice(builder.as_bytes());
313313
script_vec.extend_from_slice(self.as_bytes());

src/parse.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ macro_rules! abort {
4242

4343
pub fn parse(tokens: TokenStream) -> Vec<(Syntax, Span)> {
4444
let mut tokens = tokens.into_iter().peekable();
45-
let mut syntax = Vec::with_capacity(64);
45+
let mut syntax = Vec::with_capacity(2048);
4646

4747
while let Some(token) = tokens.next() {
4848
let token_str = token.to_string();
@@ -63,9 +63,10 @@ pub fn parse(tokens: TokenStream) -> Vec<(Syntax, Span)> {
6363
// Not a native Bitcoin opcode
6464
// Allow functions without arguments to be identified by just their name
6565
_ => {
66-
let mut pseudo_stream = TokenStream::from(token.clone());
66+
let span = token.span();
67+
let mut pseudo_stream = TokenStream::from(token);
6768
pseudo_stream.extend(TokenStream::from_str("()"));
68-
(Syntax::Escape(pseudo_stream), token.span())
69+
(Syntax::Escape(pseudo_stream), span)
6970
}
7071
}
7172
}
@@ -100,7 +101,7 @@ where
100101
{
101102
// Use a Vec here to get rid of warnings when the variable is overwritten
102103
let mut escape = quote! {
103-
let mut script_var = vec![];
104+
let mut script_var = Vec::with_capacity(256);
104105
};
105106
escape.extend(std::iter::once(token.clone()));
106107

tests/test.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,12 @@ fn test_performance_loop() {
144144
OP_ADD
145145
OP_ADD
146146
OP_ADD
147+
script_from_func
147148
};
148149

149150
let script = script! {
150151
for _ in 0..5_000_000 {
151-
{ loop_script.clone() }
152+
{loop_script.clone()}
152153
}
153154
};
154155

0 commit comments

Comments
 (0)