(unless (eq old new)
(setf (aref data i) new))))))
((typep tree 'instance)
- (do ((i 1 (1+ i))
- (end (%instance-length tree)))
- ((= i end))
- (let* ((old (%instance-ref tree i))
- (new (circle-subst old-new-alist old)))
- (unless (eq old new)
- (setf (%instance-ref tree i) new)))))
+ (let* ((n-untagged (layout-n-untagged-slots (%instance-layout tree)))
+ (n-tagged (- (%instance-length tree) n-untagged)))
+ ;; N-TAGGED includes the layout as well (at index 0), which
+ ;; we don't grovel.
+ (do ((i 1 (1+ i)))
+ ((= i n-tagged))
+ (let* ((old (%instance-ref tree i))
+ (new (circle-subst old-new-alist old)))
+ (unless (eq old new)
+ (setf (%instance-ref tree i) new))))
+ (do ((i 0 (1+ i)))
+ ((= i n-untagged))
+ (let* ((old (%raw-instance-ref/word tree i))
+ (new (circle-subst old-new-alist old)))
+ (unless (= old new)
+ (setf (%raw-instance-ref/word tree i) new))))))
((typep tree 'funcallable-instance)
(do ((i 1 (1+ i))
(end (- (1+ (get-closure-length tree)) sb!vm:funcallable-instance-info-offset)))
((character-decoding-error
#'(lambda (decoding-error)
(declare (ignorable decoding-error))
- (style-warn "Character decoding error in a #|-comment at position ~A reading source file ~A, resyncing." (file-position stream) stream)
+ (style-warn
+ 'sb!kernel::character-decoding-error-in-dispatch-macro-char-comment
+ :sub-char sub-char :position (file-position stream) :stream stream)
(invoke-restart 'attempt-resync))))
(let ((stream (in-synonym-of stream)))
(if (ansi-stream-p stream)