diff options
author | Andy Wingo <wingo@pobox.com> | 2014-05-04 14:09:42 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2014-05-04 14:09:42 +0200 |
commit | f5cb70e94a37a069e04244312937ca2868de5135 (patch) | |
tree | 2d0b831233a4469968ad8846dc9126cb6898f501 /module/system/vm/traps.scm | |
parent | 7c080187bc55e84159b99faa9b7ae9f0a8ae90d2 (diff) | |
download | guile-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.scm | 6 |
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))))) |