1.0.5.32: partial fix for DISASSEMBLE bug reported by Peter Graves
[sbcl.git] / src / pcl / boot.lisp
index fbfdbe8..384d36b 100644 (file)
@@ -619,7 +619,7 @@ bootstrapping.
                     (typecase specializer-nameoid
                       (symbol (find-class specializer-nameoid nil))
                       (class specializer-nameoid)
-                      (class-eq-specializer 
+                      (class-eq-specializer
                        (specializer-class specializer-nameoid))
                       (t nil))))
              (ecase kind
@@ -1420,7 +1420,13 @@ bootstrapping.
                    (t form))))
 
       (let ((walked-lambda (walk-form method-lambda env #'walk-function)))
-        (values walked-lambda
+        ;;; FIXME: the walker's rewriting of the source code causes
+        ;;; trouble when doing code coverage. The rewrites should be
+        ;;; removed, and the same operations done using
+        ;;; compiler-macros or tranforms.
+        (values (if (sb-c:policy env (= sb-c:store-coverage-data 0))
+                    walked-lambda
+                    method-lambda)
                 call-next-method-p
                 closurep
                 next-method-p-p