From b86e9e4ab8d2f02a32082df59f7dda240f659127 Mon Sep 17 00:00:00 2001 From: retropikzel Date: Wed, 23 Jul 2025 08:42:50 +0300 Subject: [PATCH] Fixing Racket uint8-ref --- foreign/c/pointer.scm | 4 +++- foreign/c/primitives/racket.scm | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/foreign/c/pointer.scm b/foreign/c/pointer.scm index 569c417..454724c 100644 --- a/foreign/c/pointer.scm +++ b/foreign/c/pointer.scm @@ -29,7 +29,9 @@ (else (define-c-procedure c-memset-pointer->address libc 'memset 'uint64 '(pointer uint8 int)))) ;(define-c-procedure c-memset-address libc 'memset 'pointer '(uint64 uint8 int)) ;(define-c-procedure c-printf libc 'printf 'int '(pointer pointer)) -(define-c-procedure c-malloc libc 'malloc 'pointer '(int)) +(cond-expand + (racket (define-c-procedure c-malloc libc 'malloc 'pointer '(int))) + (else (define (c-malloc size) (malloc size 'raw)))) (define-c-procedure c-strlen libc 'strlen 'int '(pointer)) (define make-c-bytevector diff --git a/foreign/c/primitives/racket.scm b/foreign/c/primitives/racket.scm index 6589941..525e8c9 100644 --- a/foreign/c/primitives/racket.scm +++ b/foreign/c/primitives/racket.scm @@ -59,11 +59,11 @@ (define c-bytevector-u8-set! (lambda (c-bytevector k byte) - (ptr-set! c-bytevector _uint8 k byte))) + (ptr-set! c-bytevector _uint8 'abs k byte))) (define c-bytevector-u8-ref (lambda (c-bytevector k) - (ptr-ref c-bytevector _uint8 k))) + (ptr-ref c-bytevector _uint8 'abs k))) (define c-bytevector-pointer-set! (lambda (c-bytevector k pointer)