This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -906,6 +906,8 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "prolog_parser"
|
name = "prolog_parser"
|
||||||
version = "0.8.67"
|
version = "0.8.67"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "f16bb270c3f20e0ccd6e0b7f1367d4a1ac9070227e40733512913cdf24fe9152"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"lexical",
|
"lexical",
|
||||||
"num-rug-adapter",
|
"num-rug-adapter",
|
||||||
|
|||||||
@@ -1675,6 +1675,12 @@ impl MachineState {
|
|||||||
Ok(Number::Integer(n)) => {
|
Ok(Number::Integer(n)) => {
|
||||||
n.to_string()
|
n.to_string()
|
||||||
}
|
}
|
||||||
|
Ok(Number::Rational(r)) => {
|
||||||
|
// n has already been confirmed as an integer, and
|
||||||
|
// internally, Rational is assumed reduced, so its denominator
|
||||||
|
// must be 1.
|
||||||
|
r.numer().to_string()
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
unreachable!()
|
unreachable!()
|
||||||
}
|
}
|
||||||
@@ -5502,15 +5508,20 @@ impl MachineState {
|
|||||||
let stub2 = MachineError::functor_stub(clause_name!("crypto_password_hash"), 3);
|
let stub2 = MachineError::functor_stub(clause_name!("crypto_password_hash"), 3);
|
||||||
let salt = self.integers_to_bytevec(temp_v!(2), stub2);
|
let salt = self.integers_to_bytevec(temp_v!(2), stub2);
|
||||||
|
|
||||||
|
let iterations = self.store(self.deref(self[temp_v!(3)]));
|
||||||
|
|
||||||
let iterations =
|
let iterations =
|
||||||
match Number::try_from((self[temp_v!(3)], &self.heap)) {
|
match Number::try_from((iterations, &self.heap)) {
|
||||||
Ok(Number::Fixnum(n)) => {
|
Ok(Number::Fixnum(n)) => {
|
||||||
u64::try_from(n).unwrap()
|
u64::try_from(n).unwrap()
|
||||||
}
|
}
|
||||||
Ok(Number::Integer(n)) => {
|
Ok(Number::Integer(n)) => {
|
||||||
match n.to_u64() {
|
match n.to_u64() {
|
||||||
Some(i) => { i }
|
Some(i) => { i }
|
||||||
None => { self.fail = true; return Ok(()); }
|
None => {
|
||||||
|
self.fail = true;
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
|
|||||||
Reference in New Issue
Block a user