mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-18 07:12:26 -08:00
cmp: unwind-cjump: avoid recursive call to unwind-exit
Previously our call for conditional jumps worked like:
unwind-exit -> unwind-cjump -> unwind-exit -> unwind-{label,exit}
The roundtrip to unwind-exit makes tracking invocations harder. The new
invocation chain is:
unwind-exit -> unwind-cjump -> unwind-{label,exit}
This commit is contained in:
parent
b9605fd3e4
commit
bc01ff1a3c
1 changed files with 6 additions and 2 deletions
|
|
@ -212,7 +212,9 @@
|
|||
(unwind-jump label)))
|
||||
(unless (and constantp (not (null value)))
|
||||
(let ((*destination* 'TRASH))
|
||||
(unwind-exit *vv-nil*))))
|
||||
(if (labelp *exit*)
|
||||
(unwind-label *vv-nil*)
|
||||
(unwind-leave *vv-nil*)))))
|
||||
(JUMP-FALSE
|
||||
(cond ((not constantp)
|
||||
(case (loc-representation-type loc)
|
||||
|
|
@ -224,4 +226,6 @@
|
|||
(unwind-jump label)))
|
||||
(unless (and constantp (null value))
|
||||
(let ((*destination* 'TRASH))
|
||||
(unwind-exit *vv-t*))))))))
|
||||
(if (labelp *exit*)
|
||||
(unwind-label *vv-t*)
|
||||
(unwind-leave *vv-t*)))))))))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue