]> Repositorios git - scryer-prolog.git/commitdiff
FIXED: correct dereferencing in atom_codes/2 and number_codes/2.
authorMarkus Triska <[email protected]>
Mon, 29 May 2023 09:12:00 +0000 (11:12 +0200)
committerMark <[email protected]>
Fri, 23 Jun 2023 20:11:31 +0000 (14:11 -0600)
This addresses #1818.

Test case:

    run :-
    length(Ls, L),
    portray_clause(L),
    maplist(=(X), Ls),
    X = Y,
    Y = 12,
    atom_codes(_, Ls),
    false.

src/machine/system_calls.rs

index a871750a4a427029e0f02ea5b25894cd93c48532..5fc5d4511f06a30c2a9c43fae9664ea563e590f1 100644 (file)
@@ -1010,6 +1010,8 @@ impl MachineState {
         let mut string = String::new();
 
         for addr in addrs {
+            let addr = self.store(self.deref(addr));
+
             match Number::try_from(addr) {
                 Ok(Number::Fixnum(n)) => {
                     match u32::try_from(n.get_num()) {