Use standard CLOS functions in actor load forms (SBCL internal functions no longer exist)
This commit is contained in:
parent
19fb9fb9fb
commit
11e0f2f0df
|
@ -100,14 +100,14 @@
|
||||||
(declare (ignore environment))
|
(declare (ignore environment))
|
||||||
(values
|
(values
|
||||||
;; cons form
|
;; cons form
|
||||||
`(sb-kernel::new-instance ,(class-name (class-of obj)))
|
`(allocate-instance (find-class ',(class-name (class-of obj))))
|
||||||
;; init form
|
;; init form
|
||||||
(loop for slot in (sb-mop:class-slots (class-of obj))
|
(loop for slot in (sb-mop:class-slots (class-of obj))
|
||||||
for slot-name = (sb-mop:slot-definition-name slot)
|
for slot-name = (sb-mop:slot-definition-name slot)
|
||||||
collect slot-name into slots
|
nconc `((slot-value ,obj ',slot-name)
|
||||||
collect (make-value-init-form (slot-value obj slot-name))
|
,(make-value-init-form (slot-value obj slot-name)))
|
||||||
into values
|
into setfs
|
||||||
finally (return `(sb-pcl::set-slots ,obj ,slots ,@values)))
|
finally (return `(setf ,@setfs)))
|
||||||
))
|
))
|
||||||
|
|
||||||
(defun make-value-init-form (x)
|
(defun make-value-init-form (x)
|
||||||
|
|
Loading…
Reference in New Issue