198 |
|
|
199 |
(define (process-class-pre-define-accessor name) |
(define (process-class-pre-define-accessor name) |
200 |
(let ((var (module-variable (current-module) name))) |
(let ((var (module-variable (current-module) name))) |
201 |
(if (not (and var |
(cond ((or (not var) |
202 |
(variable-bound? var) |
(not (variable-bound? var))) |
203 |
(or (is-a? (variable-ref var) <accessor>) |
(process-define-accessor name)) |
204 |
(is-a? (variable-ref var) <extended-generic-with-setter>)))) |
((or (is-a? (variable-ref var) <accessor>) |
205 |
(process-define-accessor name)))) |
(is-a? (variable-ref var) <extended-generic-with-setter>))) |
206 |
|
((is-a? (variable-ref var) <generic>) |
207 |
|
;;*fixme* don't mutate an imported object! |
208 |
|
(variable-set! var (ensure-accessor (variable-ref var) name))) |
209 |
|
(else |
210 |
|
(process-define-accessor name))))) |
211 |
|
|
212 |
;;; This code should be implemented in C. |
;;; This code should be implemented in C. |
213 |
;;; |
;;; |