(dolist (name args)
(unless (symbolp name)
(error "can't declare a non-symbol as SPECIAL: ~S" name))
- (when (constantp name)
+ (when (sb!xc:constantp name)
(error "can't declare a constant as SPECIAL: ~S" name))
(with-single-package-locked-error
(:symbol name "globally declaring ~A special"))
(setf (classoid-state class) :sealed)
(let ((subclasses (classoid-subclasses class)))
(when subclasses
- (dohash (subclass layout subclasses)
+ (dohash ((subclass layout) subclasses :locked t)
(declare (ignore layout))
(setf (classoid-state subclass) :sealed))))))))
(optimize