diff --git a/src/gpsl/vm/gpsl.rs b/src/gpsl/vm/gpsl.rs index e16d891..877785d 100644 --- a/src/gpsl/vm/gpsl.rs +++ b/src/gpsl/vm/gpsl.rs @@ -629,6 +629,16 @@ impl GPSL { update, stmt, } => { + let accept = self.blocks.front().unwrap().accept.clone(); + let reject = self.blocks.front().unwrap().reject.clone(); + + self.blocks.push_front(Block { + accept, + reject, + variables: HashMap::new(), + is_split: false, + }); + match init { Some(init) => { self.evaluate(init)?; @@ -672,6 +682,12 @@ impl GPSL { }; } + let p = self.blocks.pop_front(); + + if let Some(p) = p { + debug!("Free: {}", p.variables.len()); + } + return Ok(None); } Node::Block {