]> Repositorios git - scryer-prolog.git/commitdiff
use more fixnums in cryptographic routines
authorMarkus Triska <[email protected]>
Tue, 19 May 2020 15:02:15 +0000 (17:02 +0200)
committerMarkus Triska <[email protected]>
Tue, 19 May 2020 15:03:02 +0000 (17:03 +0200)
src/prolog/machine/system_calls.rs

index fe90950d71622590f6eb73fc402b7fe6785f82d5..1fd341c0364eb397477e31e6fbd8c1dfa4f55adc 100644 (file)
@@ -5252,7 +5252,7 @@ impl MachineState {
                                                    _ =>            { unreachable!() }
                                                 },
                                                 &bytes);
-                                 Addr::HeapCell(self.heap.to_list(ints.as_ref().iter().map(|b| HeapCellValue::Integer(Rc::new(Integer::from(*b))))))
+                                 Addr::HeapCell(self.heap.to_list(ints.as_ref().iter().map(|b| HeapCellValue::from(Addr::Fixnum(*b as isize)))))
                                }
                         };
 
@@ -5308,7 +5308,7 @@ impl MachineState {
                                  _ => { self.fail = true; return Ok(()); }
                              }
 
-                             Addr::HeapCell(self.heap.to_list(bytes.iter().map(|b| HeapCellValue::Integer(Rc::new(Integer::from(*b))))))
+                             Addr::HeapCell(self.heap.to_list(bytes.iter().map(|b| HeapCellValue::from(Addr::Fixnum(*b as isize)))))
                         };
 
                 self.unify(self[temp_v!(6)], ints_list);
@@ -5341,7 +5341,7 @@ impl MachineState {
                                            NonZeroU32::new(iterations as u32).unwrap(), &salt,
                                            &data, &mut bytes);
 
-                             Addr::HeapCell(self.heap.to_list(bytes.iter().map(|b| HeapCellValue::Integer(Rc::new(Integer::from(*b))))))
+                             Addr::HeapCell(self.heap.to_list(bytes.iter().map(|b| HeapCellValue::from(Addr::Fixnum(*b as isize)))))
                         };
 
                 self.unify(self[temp_v!(4)], ints_list);
@@ -5366,7 +5366,7 @@ impl MachineState {
                       };
 
                 let tag_list =
-                      Addr::HeapCell(self.heap.to_list(tag.as_ref().iter().map(|b| HeapCellValue::Integer(Rc::new(Integer::from(*b))))));
+                      Addr::HeapCell(self.heap.to_list(tag.as_ref().iter().map(|b| HeapCellValue::from(Addr::Fixnum(*b as isize)))));
 
                 let complete_string = {
                           let buffer = String::from_iter(in_out.iter().map(|b| *b as char));