Merge pull request #1794 from aarroyoc/uppercase-2
Fix to_upper/to_lower when string is instantiated
This commit is contained in:
@@ -2794,15 +2794,17 @@ impl Machine {
|
|||||||
|
|
||||||
match (name, arity) {
|
match (name, arity) {
|
||||||
(atom!("to_upper"), 1) => {
|
(atom!("to_upper"), 1) => {
|
||||||
let reg = self.machine_st.heap[s+1];
|
let reg = self.machine_st.deref(self.machine_st.heap[s+1]);
|
||||||
let upper_str = self.machine_st.atom_tbl.build_with(&c.to_uppercase().to_string());
|
let atom = self.machine_st.atom_tbl.build_with(&c.to_uppercase().to_string());
|
||||||
self.machine_st.unify_complete_string(upper_str, reg);
|
let upper_str = string_as_cstr_cell!(atom);
|
||||||
|
unify!(self.machine_st, reg, upper_str);
|
||||||
self.machine_st.fail = false;
|
self.machine_st.fail = false;
|
||||||
}
|
}
|
||||||
(atom!("to_lower"), 1) => {
|
(atom!("to_lower"), 1) => {
|
||||||
let reg = self.machine_st.heap[s+1];
|
let reg = self.machine_st.deref(self.machine_st.heap[s+1]);
|
||||||
let lower_str = self.machine_st.atom_tbl.build_with(&c.to_lowercase().to_string());
|
let atom = self.machine_st.atom_tbl.build_with(&c.to_lowercase().to_string());
|
||||||
self.machine_st.unify_complete_string(lower_str, reg);
|
let lower_str = string_as_cstr_cell!(atom);
|
||||||
|
unify!(self.machine_st, reg, lower_str);
|
||||||
self.machine_st.fail = false;
|
self.machine_st.fail = false;
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
|
|||||||
Reference in New Issue
Block a user