Fix realiased streams causing close/1 to leave a dangling stream

This commit is contained in:
Emilie Burgun
2025-02-03 14:26:33 +01:00
parent 0cf46d3ec4
commit 949d316773
2 changed files with 26 additions and 4 deletions

View File

@@ -5162,7 +5162,7 @@ impl Machine {
#[inline(always)]
pub(crate) fn set_stream_options(&mut self) -> CallResult {
let mut stream = self.machine_st.get_stream_or_alias(
let stream = self.machine_st.get_stream_or_alias(
self.machine_st.registers[1],
&self.indices,
atom!("open"),
@@ -5174,10 +5174,12 @@ impl Machine {
let reposition = self.machine_st.registers[4];
let stream_type = self.machine_st.registers[5];
let options =
let new_options =
self.machine_st
.get_stream_options(alias, eof_action, reposition, stream_type);
*stream.options_mut() = options;
self.indices.update_stream_options(stream, |options| {
*options = new_options;
});
Ok(())
}