~ chicken-core (chicken-5) 37abad1e9144e97536c332c402dc47a653ff4e4a


commit 37abad1e9144e97536c332c402dc47a653ff4e4a
Author:     megane <meganeka@gmail.com>
AuthorDate: Sat May 22 09:08:19 2021 +0300
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Fri Jul 30 13:25:56 2021 +1200

    Fix types.db entry for ##sys#foreign-pointer-argument
    
    This procedure returns its input value after checking its type, so its
    argument and return types should match, and it should accept a pointer
    or locative, not false.
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/types.db b/types.db
index ae989220..922c07af 100644
--- a/types.db
+++ b/types.db
@@ -1392,8 +1392,10 @@
 			       ((string) #(1)))
 (##sys#foreign-symbol-argument (#(procedure #:clean #:enforce) ##sys#foreign-symbol-argument (symbol) symbol)
 			       ((symbol) #(1)))
-(##sys#foreign-pointer-argument (#(procedure #:clean #:enforce) ##sys#foreign-pointer-argument ((or pointer false)) pointer)
-				((pointer) #(1)))
+(##sys#foreign-pointer-argument (forall ((p (or locative pointer)))
+					(#(procedure #:clean #:enforce) ##sys#foreign-pointer-argument (p) p))
+				((pointer) (pointer) #(1))
+				((locative) (locative) #(1)))
 
 (##sys#check-blob (#(procedure #:clean #:enforce) ##sys#check-blob (blob #!optional *) *)
 		  ((blob) (let ((#(tmp) #(1))) '#t))
Trap