909 |
(define-method (remove-class-accessors! (c <class>)) |
(define-method (remove-class-accessors! (c <class>)) |
910 |
(for-each (lambda (m) |
(for-each (lambda (m) |
911 |
(if (is-a? m <accessor-method>) |
(if (is-a? m <accessor-method>) |
912 |
(remove-method-in-classes! m))) |
(let ((gf (slot-ref m 'generic-function))) |
913 |
|
;; remove the method from its GF |
914 |
|
(slot-set! gf 'methods |
915 |
|
(delq1! m (slot-ref gf 'methods))) |
916 |
|
(%invalidate-method-cache! gf) |
917 |
|
;; remove the method from its specializers |
918 |
|
(remove-method-in-classes! m)))) |
919 |
(class-direct-methods c))) |
(class-direct-methods c))) |
920 |
|
|
921 |
;;; |
;;; |
981 |
(make <accessor-method> |
(make <accessor-method> |
982 |
#:specializers (list class) |
#:specializers (list class) |
983 |
#:procedure (cond ((pair? g-n-s) |
#:procedure (cond ((pair? g-n-s) |
984 |
(if init-thunk |
(make-generic-bound-check-getter (car g-n-s))) |
|
(car g-n-s) |
|
|
(make-generic-bound-check-getter (car g-n-s)) |
|
|
)) |
|
985 |
(init-thunk |
(init-thunk |
986 |
(standard-get g-n-s)) |
(standard-get g-n-s)) |
987 |
(else |
(else |