ctype->layout in scheme/foreign; prototype Objective-C binding in ffi collection
svn: r12890 original commit: 2c95f77c3141a0827bd094d8d93b3e3fa39ef8b5
This commit is contained in:
parent
ad2792fb85
commit
588e3b23a5
|
@ -58,7 +58,7 @@
|
||||||
(unsafe malloc) (unsafe free) (unsafe end-stubborn-change)
|
(unsafe malloc) (unsafe free) (unsafe end-stubborn-change)
|
||||||
cpointer? ptr-equal? ptr-add (unsafe ptr-ref) (unsafe ptr-set!)
|
cpointer? ptr-equal? ptr-add (unsafe ptr-ref) (unsafe ptr-set!)
|
||||||
ptr-offset ptr-add! offset-ptr? set-ptr-offset!
|
ptr-offset ptr-add! offset-ptr? set-ptr-offset!
|
||||||
ctype? make-ctype make-cstruct-type (unsafe make-sized-byte-string)
|
ctype? make-ctype make-cstruct-type (unsafe make-sized-byte-string) ctype->layout
|
||||||
_void _int8 _uint8 _int16 _uint16 _int32 _uint32 _int64 _uint64
|
_void _int8 _uint8 _int16 _uint16 _int32 _uint32 _int64 _uint64
|
||||||
_fixint _ufixint _fixnum _ufixnum
|
_fixint _ufixint _fixnum _ufixnum
|
||||||
_float _double _double*
|
_float _double _double*
|
||||||
|
@ -1494,6 +1494,26 @@
|
||||||
(if v (apply values v) (msg/fail-thunk))))]
|
(if v (apply values v) (msg/fail-thunk))))]
|
||||||
[else (msg/fail-thunk)]))))
|
[else (msg/fail-thunk)]))))
|
||||||
|
|
||||||
|
;; ----------------------------------------------------------------------------
|
||||||
|
;;
|
||||||
|
|
||||||
|
(define prim-synonyms
|
||||||
|
#hasheq((double* . double)
|
||||||
|
(fixint . long)
|
||||||
|
(ufixint . ulong)
|
||||||
|
(fixnum . long)
|
||||||
|
(ufixnum . ulong)
|
||||||
|
(path . bytes)
|
||||||
|
(symbol . bytes)
|
||||||
|
(scheme . pointer)))
|
||||||
|
|
||||||
|
(define (ctype->layout c)
|
||||||
|
(let ([b (ctype-basetype c)])
|
||||||
|
(cond
|
||||||
|
[(ctype? b) (ctype->layout b)]
|
||||||
|
[(list? b) (map ctype->layout b)]
|
||||||
|
[else (hash-ref prim-synonyms b b)])))
|
||||||
|
|
||||||
;; ----------------------------------------------------------------------------
|
;; ----------------------------------------------------------------------------
|
||||||
;; Misc utilities
|
;; Misc utilities
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user