Check that we have an object before trying to unwrap it in class-field-*.
svn: r18443
This commit is contained in:
parent
ce23d92a95
commit
3fb2e1d9ae
|
@ -3695,11 +3695,15 @@
|
||||||
(values (λ (class name)
|
(values (λ (class name)
|
||||||
(let* ([p (check-and-get-index 'class-field-accessor class name)]
|
(let* ([p (check-and-get-index 'class-field-accessor class name)]
|
||||||
[ref (vector-ref (class-ext-field-refs class) p)])
|
[ref (vector-ref (class-ext-field-refs class) p)])
|
||||||
(λ (o) (ref ((object-unwrapper o) o)))))
|
(λ (o) (if (object? o)
|
||||||
|
(ref ((object-unwrapper o) o))
|
||||||
|
(raise-type-error 'class-field-accessor "object" o)))))
|
||||||
(λ (class name)
|
(λ (class name)
|
||||||
(let* ([p (check-and-get-index 'class-field-mutator class name)]
|
(let* ([p (check-and-get-index 'class-field-mutator class name)]
|
||||||
[set (vector-ref (class-ext-field-sets class) p)])
|
[set (vector-ref (class-ext-field-sets class) p)])
|
||||||
(λ (o v) (set ((object-unwrapper o) o) v)))))))
|
(λ (o v) (if (object? o)
|
||||||
|
(set ((object-unwrapper o) o) v)
|
||||||
|
(raise-type-error 'class-field-mutator "object" o))))))))
|
||||||
|
|
||||||
(define-struct generic (name applicable))
|
(define-struct generic (name applicable))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user