From 78d54f80aad00c3e2d99856f29eef9cb054becc7 Mon Sep 17 00:00:00 2001 From: retropikzel Date: Wed, 23 Jul 2025 19:30:20 +0300 Subject: [PATCH] Fixing Racket uint8-ref/set! --- foreign/c/c-bytevectors.scm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/foreign/c/c-bytevectors.scm b/foreign/c/c-bytevectors.scm index 1712e9d..04d80c7 100644 --- a/foreign/c/c-bytevectors.scm +++ b/foreign/c/c-bytevectors.scm @@ -551,13 +551,19 @@ (define (c-bytevector-sint-ref c-bytevector index endness size) (let* ((high-byte (c-bytevector-u8-ref c-bytevector - (if (eq? endness 'big) - index - (+ index size -1)))) + (if (eq? endness 'big) + index + (+ index size -1)))) (uresult (c-bytevector-uint-ref c-bytevector index endness size))) + (display "High byte: ") + (display high-byte) + (newline) + (display "Uresult: ") + (display uresult) + (newline) (if (> high-byte 127) - (- uresult (expt 256 size)) - uresult))) + (- uresult (expt 256 size)) + uresult))) ; FIXME: Some of these procedures may not do enough range checking.