X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fpack.lisp;h=235b0e56da03e132a52306e37143df5eb263ef2b;hb=1071bf1ca8292aeeef4a684d277f1e6b4693865a;hp=a911dbd106695f448777de3529941ecb197e02e6;hpb=d604a358d8e5eb5587989e0a4f1d31dbe6ac5ffe;p=sbcl.git diff --git a/src/compiler/pack.lisp b/src/compiler/pack.lisp index a911dbd..235b0e5 100644 --- a/src/compiler/pack.lisp +++ b/src/compiler/pack.lisp @@ -1603,15 +1603,15 @@ (do-ir2-blocks (block component) (emit-saves block) (pack-load-tns block)))) - (when *repack-blocks* - (loop - (when (zerop (hash-table-count *repack-blocks*)) (return)) - (maphash (lambda (block v) - (declare (ignore v)) - (remhash block *repack-blocks*) - (event repack-block) - (pack-load-tns block)) - *repack-blocks*)))) + (loop + (unless *repack-blocks* (return)) + (let ((orpb *repack-blocks*)) + (setq *repack-blocks* nil) + (maphash (lambda (block v) + (declare (ignore v)) + (event repack-block) + (pack-load-tns block)) + orpb)))) (values)) (clean-up-pack-structures)))