]> Repositorios git - scryer-prolog.git/commitdiff
correct loading of variable name strings in write_term/3
authorMark Thom <[email protected]>
Wed, 9 Mar 2022 05:00:12 +0000 (22:00 -0700)
committerMark Thom <[email protected]>
Wed, 9 Mar 2022 05:00:12 +0000 (22:00 -0700)
src/machine/machine_state.rs

index 5b859fa91bc21ed4e3d2885f7638b939f89a487b..a6b375b6068a8efe892dddf2a84eed6c2d6be179 100644 (file)
@@ -641,7 +641,18 @@ impl MachineState {
                                     continue;
                                 }
 
-                                var_names.insert(var, Rc::new(cell_as_atom!(atom).as_str().to_owned()));
+                                read_heap_cell!(atom,
+                                    (HeapCellValueTag::Char, c) => {
+                                        var_names.insert(var, Rc::new(c.to_string()));
+                                    }
+                                    (HeapCellValueTag::Atom, (name, _arity)) => {
+                                        debug_assert_eq!(_arity, 0);
+                                        var_names.insert(var, Rc::new(name.as_str().to_owned()));
+                                    }
+                                    _ => {
+                                        unreachable!();
+                                    }
+                                );
                             }
                         }
                         _ => {