Fixing kawa uint8-ref
This commit is contained in:
parent
542d30c98d
commit
f0f604aeb2
|
|
@ -1,6 +1,7 @@
|
||||||
(define arena (invoke-static java.lang.foreign.Arena 'global))
|
(define arena (invoke-static java.lang.foreign.Arena 'global))
|
||||||
(define method-handle-lookup (invoke-static java.lang.invoke.MethodHandles 'lookup))
|
(define method-handle-lookup (invoke-static java.lang.invoke.MethodHandles 'lookup))
|
||||||
(define native-linker (invoke-static java.lang.foreign.Linker 'nativeLinker))
|
(define native-linker (invoke-static java.lang.foreign.Linker 'nativeLinker))
|
||||||
|
(define INTEGER-MAX-VALUE (static-field java.lang.Integer 'MAX_VALUE))
|
||||||
|
|
||||||
(define value->object
|
(define value->object
|
||||||
(lambda (value type)
|
(lambda (value type)
|
||||||
|
|
@ -155,25 +156,35 @@
|
||||||
(lambda (pointer)
|
(lambda (pointer)
|
||||||
(invoke pointer 'equals null-pointer)))
|
(invoke pointer 'equals null-pointer)))
|
||||||
|
|
||||||
(define u8-value-layout (invoke (static-field java.lang.foreign.ValueLayout 'JAVA_BYTE) 'withByteAlignment 1))
|
(define u8-value-layout
|
||||||
|
(invoke ;(static-field java.lang.foreign.ValueLayout 'JAVA_BYTE)
|
||||||
|
(static-field java.lang.foreign.ValueLayout 'JAVA_INT)
|
||||||
|
'withByteAlignment
|
||||||
|
8))
|
||||||
|
|
||||||
(define c-bytevector-u8-set!
|
(define c-bytevector-u8-set!
|
||||||
(lambda (c-bytevector k byte)
|
(lambda (c-bytevector k byte)
|
||||||
(invoke (invoke c-bytevector 'reinterpret (static-field java.lang.Integer 'MAX_VALUE))
|
(invoke (invoke c-bytevector 'reinterpret INTEGER-MAX-VALUE)
|
||||||
'set
|
'set
|
||||||
u8-value-layout
|
u8-value-layout
|
||||||
k
|
k
|
||||||
byte)))
|
byte)))
|
||||||
|
|
||||||
(define c-bytevector-u8-ref
|
(define c-bytevector-u8-ref
|
||||||
(lambda (c-bytevector k)
|
(lambda (c-bytevector k)
|
||||||
(invoke (invoke c-bytevector 'reinterpret (static-field java.lang.Integer 'MAX_VALUE))
|
(invoke (invoke c-bytevector 'reinterpret INTEGER-MAX-VALUE)
|
||||||
'get
|
'get
|
||||||
u8-value-layout
|
u8-value-layout
|
||||||
k)))
|
k)))
|
||||||
|
|
||||||
(define pointer-value-layout (invoke (static-field java.lang.foreign.ValueLayout 'ADDRESS) 'withByteAlignment 8))
|
(define pointer-value-layout
|
||||||
|
(invoke (static-field java.lang.foreign.ValueLayout 'ADDRESS)
|
||||||
|
'withByteAlignment
|
||||||
|
8))
|
||||||
|
|
||||||
(define c-bytevector-pointer-set!
|
(define c-bytevector-pointer-set!
|
||||||
(lambda (c-bytevector k pointer)
|
(lambda (c-bytevector k pointer)
|
||||||
(invoke (invoke c-bytevector 'reinterpret (static-field java.lang.Integer 'MAX_VALUE))
|
(invoke (invoke c-bytevector 'reinterpret INTEGER-MAX-VALUE)
|
||||||
'set
|
'set
|
||||||
pointer-value-layout
|
pointer-value-layout
|
||||||
k
|
k
|
||||||
|
|
@ -181,7 +192,7 @@
|
||||||
|
|
||||||
(define c-bytevector-pointer-ref
|
(define c-bytevector-pointer-ref
|
||||||
(lambda (c-bytevector k)
|
(lambda (c-bytevector k)
|
||||||
(invoke (invoke c-bytevector 'reinterpret (static-field java.lang.Integer 'MAX_VALUE))
|
(invoke (invoke c-bytevector 'reinterpret INTEGER-MAX-VALUE)
|
||||||
'get
|
'get
|
||||||
pointer-value-layout
|
pointer-value-layout
|
||||||
k)))
|
k)))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue