diff --git a/scheme/base.sld b/scheme/base.sld index 1d9c90e9..9a26cf58 100644 --- a/scheme/base.sld +++ b/scheme/base.sld @@ -1818,11 +1818,13 @@ ;; Record-type definitions (define record-marker (list 'record-marker)) (define (register-simple-type name parent field-tags) - (let ((new (make-vector 3 #f))) - (vector-set! new 0 record-marker) - (vector-set! new 1 name) - (vector-set! new 2 field-tags) - new)) + (vector record-marker name field-tags) + ;(let ((new (make-vector 3 #f))) + ; (vector-set! new 0 record-marker) + ; (vector-set! new 1 name) + ; (vector-set! new 2 field-tags) + ; new) +) (define (make-type-predicate pred name) (lambda (obj) (and (vector? obj) @@ -1832,12 +1834,15 @@ (lambda () (let* ((field-tags (vector-ref name 2)) (field-values (make-vector (length field-tags) #f)) - (new (make-vector 3 #f)) + ; (new (make-vector 3 #f)) ) - (vector-set! new 0 record-marker) - (vector-set! new 1 name) - (vector-set! new 2 field-values) - new))) + ; (vector-set! new 0 record-marker) + ; (vector-set! new 1 name) + ; (vector-set! new 2 field-values) + ; new + (vector record-marker name field-values) + ) + )); (define (type-slot-offset name sym) (let ((field-tags (vector-ref name 2))) (_list-index sym field-tags)))