X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Funcross.lisp;h=bfb3c81b62194e192b0bbd152cdb157f679d9b5a;hb=860543cc7ba0266e41e1d41ac9b6a208f3795f1a;hp=68d6e0033a5c10634f77133c7a1acb1361b970d3;hpb=95a6db7329b91dd90d165dd4057b9b5098d34aa2;p=sbcl.git diff --git a/src/code/uncross.lisp b/src/code/uncross.lisp index 68d6e00..bfb3c81 100644 --- a/src/code/uncross.lisp +++ b/src/code/uncross.lisp @@ -59,11 +59,11 @@ ;;; (:COMPILE-TOPLEVEL)) do we call UNCROSS on them to obliterate the ;;; distinction. #+sb-xc-host -(defun uncross (form) - (let ((;; KLUDGE: We don't currently try to handle circular program - ;; structure, but we do at least detect it and complain about - ;; it.. - inside? (make-hash-table))) +(let ((;; KLUDGE: We don't currently try to handle circular program + ;; structure, but we do at least detect it and complain about + ;; it.. + inside? (make-hash-table))) + (defun uncross (form) (labels ((uncross-symbol (symbol) (let ((old-symbol-package (symbol-package symbol))) (if (and old-symbol-package @@ -119,4 +119,5 @@ (if (and (eq rcr-car car) (eq rcr-cdr cdr)) form (cons rcr-car rcr-cdr))))) + (clrhash inside?) (rcr form))))