~ chicken-core (chicken-5) 4dcc98a116ee72c0b3e13f0337236f96360f44dc
commit 4dcc98a116ee72c0b3e13f0337236f96360f44dc Author: megane <meganeka@gmail.com> AuthorDate: Sat May 22 07:53:54 2021 +0300 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Fri Jul 30 13:13:07 2021 +1200 FFI: Remove annotation of locative as return type for c-pointer The c-pointers are converted to pointers or #f, not locatives. See foreign-result-conversion Signed-off-by: Evan Hanson <evhan@foldling.org> diff --git a/support.scm b/support.scm index 19702271..c7408903 100644 --- a/support.scm +++ b/support.scm @@ -1389,7 +1389,9 @@ unsigned-long) 'integer) ((c-pointer) - '(or false pointer locative)) + (if (eq? 'arg mode) + '(or false pointer locative) + '(or false pointer))) ((nonnull-c-pointer) 'pointer) ((c-string c-string* unsigned-c-string unsigned-c-string*) '(or false string)) @@ -1401,7 +1403,9 @@ (cond ((pair? t) (case (car t) ((ref pointer function c-pointer) - '(or false pointer locative)) + (if (eq? 'arg mode) + '(or false pointer locative) + '(or false pointer))) ((const) (foreign-type->scrutiny-type (cadr t) mode)) ((enum) 'integer) ((nonnull-pointer nonnull-c-pointer) 'pointer)Trap