mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 04:10:18 +02:00
fix backtraces, broken since the program-bindings format change
* module/system/vm/frame.scm (frame-bindings): Fix for new binding format; actually use the bindings accessors. (frame-lookup-binding): Clarify.
This commit is contained in:
parent
f580ec0f56
commit
cc588f740f
1 changed files with 4 additions and 7 deletions
|
@ -172,15 +172,12 @@
|
|||
|
||||
;; FIXME handle #f program-bindings return
|
||||
(define (frame-bindings frame addr)
|
||||
(do ((bs (program-bindings (frame-program frame)) (cdr bs))
|
||||
(ls '() (if (cdar bs) (cons (cdar bs) ls) (cdr ls))))
|
||||
((or (null? bs) (> (caar bs) addr))
|
||||
(apply append ls))))
|
||||
(filter (lambda (b) (and (>= addr (binding:start b))
|
||||
(<= addr (binding:end b))))
|
||||
(program-bindings (frame-program frame))))
|
||||
|
||||
(define (frame-lookup-binding frame addr sym)
|
||||
(do ((bs (frame-bindings frame addr) (cdr bs)))
|
||||
((or (null? bs) (eq? sym (binding:name (car bs))))
|
||||
(and (pair? bs) (car bs)))))
|
||||
(assq sym (reverse (frame-bindings frame addr))))
|
||||
|
||||
(define (frame-object-binding frame addr obj)
|
||||
(do ((bs (frame-bindings frame addr) (cdr bs)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue