summaryrefslogtreecommitdiff
path: root/module/system/vm/traps.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2014-05-04 14:09:42 +0200
committerAndy Wingo <wingo@pobox.com>2014-05-04 14:09:42 +0200
commitf5cb70e94a37a069e04244312937ca2868de5135 (patch)
tree2d0b831233a4469968ad8846dc9126cb6898f501 /module/system/vm/traps.scm
parent7c080187bc55e84159b99faa9b7ae9f0a8ae90d2 (diff)
downloadguile-f5cb70e94a37a069e04244312937ca2868de5135.tar.gz
Refactorings to apply-hook and push-continuation-hook
* libguile/vm-engine.c (vm_engine): Always invoke the apply hook after the ip has been reset. Avoids problems in frame-bindings, which builds its bindings map based on the IP. Invoke push-continuation before linking the new frame, so that more locals are available to the frame inspector. * module/system/vm/traps.scm (trap-in-procedure): No need for a push-cont handler, as the apply handler will exit the frame.
Diffstat (limited to 'module/system/vm/traps.scm')
-rw-r--r--module/system/vm/traps.scm6
1 files changed, 0 insertions, 6 deletions
diff --git a/module/system/vm/traps.scm b/module/system/vm/traps.scm
index 77823e1aa..ca6acddfa 100644
--- a/module/system/vm/traps.scm
+++ b/module/system/vm/traps.scm
@@ -186,10 +186,6 @@
(if (our-frame? frame)
(enter-proc frame)))
- (define (push-cont-hook frame)
- (if in-proc?
- (exit-proc frame)))
-
(define (pop-cont-hook frame . values)
(if in-proc?
(exit-proc frame))
@@ -206,7 +202,6 @@
current-frame
(lambda (frame)
(add-hook! (vm-apply-hook) apply-hook)
- (add-hook! (vm-push-continuation-hook) push-cont-hook)
(add-hook! (vm-pop-continuation-hook) pop-cont-hook)
(add-hook! (vm-abort-continuation-hook) abort-hook)
(if (and frame (our-frame? frame))
@@ -215,7 +210,6 @@
(if in-proc?
(exit-proc frame))
(remove-hook! (vm-apply-hook) apply-hook)
- (remove-hook! (vm-push-continuation-hook) push-cont-hook)
(remove-hook! (vm-pop-continuation-hook) pop-cont-hook)
(remove-hook! (vm-abort-continuation-hook) abort-hook)))))