mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-17 01:37:34 +02:00
Fix slot-ref
This commit is contained in:
parent
f3d2cd8176
commit
1d91ace450
1 changed files with 6 additions and 3 deletions
|
@ -1806,9 +1806,12 @@
|
||||||
(let ((vec obj)) ;; TODO: get actual slots from obj
|
(let ((vec obj)) ;; TODO: get actual slots from obj
|
||||||
(vector-set! (vector-ref vec 2) idx val)))
|
(vector-set! (vector-ref vec 2) idx val)))
|
||||||
(define (slot-ref name obj field)
|
(define (slot-ref name obj field)
|
||||||
;; TODO: type check
|
(let* ((idx (cond
|
||||||
;; TODO: support field as number or symbol
|
((symbol? field)
|
||||||
(vector-ref (vector-ref obj 2) field))
|
(type-slot-offset name field))
|
||||||
|
(else
|
||||||
|
field)))) ;; Assumes field is a number
|
||||||
|
(vector-ref (vector-ref obj 2) idx)))
|
||||||
(define (make-getter sym name idx)
|
(define (make-getter sym name idx)
|
||||||
(lambda (obj)
|
(lambda (obj)
|
||||||
(vector-ref (vector-ref obj 2) idx)))
|
(vector-ref (vector-ref obj 2) idx)))
|
||||||
|
|
Loading…
Add table
Reference in a new issue