From ad9a6778af8983febf10e3ff5f608a4ad6210d7c Mon Sep 17 00:00:00 2001 From: retropikzel Date: Sat, 15 Mar 2025 06:55:49 +0200 Subject: [PATCH] Simplify Chibi code --- retropikzel/pffi/chibi.scm | 3 +-- src/chibi/pffi.stub | 11 +---------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/retropikzel/pffi/chibi.scm b/retropikzel/pffi/chibi.scm index 9a015ed..e6bef02 100644 --- a/retropikzel/pffi/chibi.scm +++ b/retropikzel/pffi/chibi.scm @@ -165,8 +165,7 @@ (define argument->pointer (lambda (value type) - (cond ((pffi-pointer? value) value) - ((procedure? value) (scheme-procedure-to-pointer value)) + (cond ((procedure? value) (scheme-procedure-to-pointer value)) (else (let ((pointer (pffi-pointer-allocate (size-of-type type)))) (pffi-pointer-set! pointer type 0 value) pointer))))) diff --git a/src/chibi/pffi.stub b/src/chibi/pffi.stub index 69eb1ce..3196990 100644 --- a/src/chibi/pffi.stub +++ b/src/chibi/pffi.stub @@ -256,16 +256,7 @@ ffi_prep_cif(&cif, FFI_DEFAULT_ABI, nargs, (ffi_type*)rtype, (ffi_type**)atypes); void* c_avalues[nargs]; for(int i = 0; i < nargs; i++) { - if(atypes[i] == &ffi_type_pointer) { - if(sexp_booleanp(avalues[i])) { - void* p = NULL; - c_avalues[i] = &p; - } else { - c_avalues[i] = &sexp_cpointer_value(avalues[i]); - } - } else { - c_avalues[i] = sexp_cpointer_value(avalues[i]); - } + c_avalues[i] = sexp_cpointer_value(avalues[i]); } ffi_call(&cif, FFI_FN(fn), rvalue, c_avalues); }")