~ chicken-core (chicken-5) 43a128fc1325d1e5a3004828f5017db86736a9b1
commit 43a128fc1325d1e5a3004828f5017db86736a9b1 Author: megane <meganeka@gmail.com> AuthorDate: Sat May 22 08:13:45 2021 +0300 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Fri Jul 30 13:13:07 2021 +1200 FFI: Make scrutinizer accept locatives for nonnull-c-pointer arguments E.g. annotate (foreign-lambda* void ((nonnull-c-pointer x)) "return;") with ((or pointer locative) -> undefined) instead of current (pointer -> undefined) Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/support.scm b/support.scm index c7408903..7929334c 100644 --- a/support.scm +++ b/support.scm @@ -1392,7 +1392,10 @@ (if (eq? 'arg mode) '(or false pointer locative) '(or false pointer))) - ((nonnull-c-pointer) 'pointer) + ((nonnull-c-pointer) + (if (eq? 'arg mode) + '(or pointer locative) + 'pointer)) ((c-string c-string* unsigned-c-string unsigned-c-string*) '(or false string)) ((c-string-list c-string-list*) @@ -1408,7 +1411,10 @@ '(or false pointer))) ((const) (foreign-type->scrutiny-type (cadr t) mode)) ((enum) 'integer) - ((nonnull-pointer nonnull-c-pointer) 'pointer) + ((nonnull-pointer nonnull-c-pointer) + (if (eq? 'arg mode) + '(or pointer locative) + 'pointer)) (else '*))) (else '*)))))))Trap