about summary refs log tree commit diff stats
path: root/mu.arc
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2014-11-23 06:12:15 -0800
committerKartik K. Agaram <vc@akkartik.com>2014-11-23 06:12:15 -0800
commitc3d777e9c211c6fb32671c6334d9863685fb44b6 (patch)
treefa32fc2313c7ed0e8f7d4b427b9a6c1097a02d4b /mu.arc
parent019444d597088bfbfe64a3346303d824216829d9 (diff)
downloadmu-c3d777e9c211c6fb32671c6334d9863685fb44b6.tar.gz
301 - yes, close-offset simplifies nicely
Diffstat (limited to 'mu.arc')
-rw-r--r--mu.arc32
1 files changed, 14 insertions, 18 deletions
diff --git a/mu.arc b/mu.arc
index b874bee1..a481c1ea 100644
--- a/mu.arc
+++ b/mu.arc
@@ -750,25 +750,21 @@
             (++ pc))))))))
 
 (def close-offset (pc locs)
+  (point return
 ;?   (tr "close " pc " " locs)
-  (let close 0
-    (with (stacksize 0
-           done nil)
-      (each (state loc) locs
-;?         (tr stacksize "/" done " " state " " loc)
-        (if (<= loc pc)
-              nil  ; do nothing
-            (no done)
-              (do
-;?                 (tr "process " stacksize loc)
-                (if (is 'open state) (++ stacksize) (-- stacksize))
-                ; last time
-;?                 (tr "process2 " stacksize loc)
-                (when (is -1 stacksize)
-;?                   (tr "close now " loc)
-                  (= close loc)
-                  (set done))))))
-    (- close pc 1)))
+  (let stacksize 0
+    (each (state loc) locs
+      (point continue
+;?       (tr stacksize "/" done " " state " " loc)
+      (when (<= loc pc)
+        (continue))
+;?       (tr "process " stacksize loc)
+      (if (is 'open state) (++ stacksize) (-- stacksize))
+      ; last time
+;?       (tr "process2 " stacksize loc)
+      (when (is -1 stacksize)
+;?         (tr "close now " loc)
+        (return (- loc pc 1))))))))
 
 ;; convert symbolic names to raw memory locations