build partial strings using PStrLoc in write_term_to_heap (#1627)
This commit is contained in:
@@ -390,6 +390,12 @@ impl<'a, 'b> TermWriter<'a, 'b> {
|
|||||||
put_complete_string(self.heap, src.as_str(), self.atom_tbl);
|
put_complete_string(self.heap, src.as_str(), self.atom_tbl);
|
||||||
}
|
}
|
||||||
&TermRef::PartialString(lvl, _, ref src, _) => {
|
&TermRef::PartialString(lvl, _, ref src, _) => {
|
||||||
|
if let Level::Root = lvl {
|
||||||
|
// Var tags can't refer directly to partial strings,
|
||||||
|
// so a PStrLoc cell must be pushed.
|
||||||
|
self.heap.push(pstr_loc_as_cell!(heap_loc + 1));
|
||||||
|
}
|
||||||
|
|
||||||
allocate_pstr(self.heap, src.as_str(), self.atom_tbl);
|
allocate_pstr(self.heap, src.as_str(), self.atom_tbl);
|
||||||
|
|
||||||
let h = self.heap.len();
|
let h = self.heap.len();
|
||||||
|
|||||||
Reference in New Issue
Block a user