From 17e4adc049dd48df6e9c447409881c5c5daa037e Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Sat, 9 May 2020 16:21:11 +0800 Subject: [PATCH] Move hash calculation out of loop. --- src/engine.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine.rs b/src/engine.rs index 5b8e379e..3efc0067 100644 --- a/src/engine.rs +++ b/src/engine.rs @@ -1200,7 +1200,9 @@ impl Engine { match rhs_value { #[cfg(not(feature = "no_index"))] Dynamic(Union::Array(rhs_value)) => { + let op = "=="; let def_value = false.into(); + let fn_def = calc_fn_hash(empty(), op, repeat(EMPTY_TYPE_ID()).take(2)); // Call the `==` operator to compare each value for value in rhs_value.iter() { @@ -1210,11 +1212,9 @@ impl Engine { let args = &mut [&mut lhs_value.clone(), &mut value.clone()]; let def_value = Some(&def_value); let pos = rhs.position(); - let op = "=="; // Qualifiers (none) + function name + argument `TypeId`'s. let fn_spec = calc_fn_hash(empty(), op, args.iter().map(|a| a.type_id())); - let fn_def = calc_fn_hash(empty(), op, repeat(EMPTY_TYPE_ID()).take(2)); if self .call_fn_raw(