~ 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