From 1ffbf1a8cbea3a3f4abf933afc042a17caa276ad Mon Sep 17 00:00:00 2001 From: Masato Imai Date: Tue, 23 Aug 2022 10:57:50 +0900 Subject: [PATCH] fix for init stmt scope --- src/gpsl/vm/gpsl.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 {