From eb68a3d2cdad4be13c14a37e5ae7303ecf953003 Mon Sep 17 00:00:00 2001 From: retropikzel Date: Wed, 23 Jul 2025 19:35:28 +0300 Subject: [PATCH] Fixing Racket uint8-ref/set! --- foreign/c/c-bytevectors.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/foreign/c/c-bytevectors.scm b/foreign/c/c-bytevectors.scm index 14f3646..f3b553e 100644 --- a/foreign/c/c-bytevectors.scm +++ b/foreign/c/c-bytevectors.scm @@ -533,7 +533,27 @@ (c-bytevector-s8-set! c-bytevector index (char->integer char))) (define (c-bytevector-uint-ref c-bytevector index endness size) - (case endness + (cond ((equal? endness 'big) + (display "BIG") + (newline) + (do ((i 0 (+ i 1)) + (result 0 (+ (* 256 result) + (c-bytevector-u8-ref c-bytevector (+ index i))))) + ((>= i size) + result))) + ((equal? endness 'little) + (display "LITTLE") + (newline) + (do ((i (- size 1) (- i 1)) + (result 0 (+ (* 256 result) + (c-bytevector-u8-ref c-bytevector (+ index i))))) + ((< i 0) + result))) + (else + (display "ELSE") + (newline) + (c-bytevector-uint-ref c-bytevector index (native-endianness) size))) + #;(case endness ((big) (display "BIG") (newline)