~ chicken-core (master) ca5f80cad3fa3adae40a5d6e03a1ea5a3f3ea22a


commit ca5f80cad3fa3adae40a5d6e03a1ea5a3f3ea22a
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Mar 21 15:57:48 2026 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Sat Mar 21 15:57:48 2026 +0100

    check argument type earlier

diff --git a/library.scm b/library.scm
index fb3e20bd..06a5f9b7 100644
--- a/library.scm
+++ b/library.scm
@@ -7800,8 +7800,8 @@ static C_word C_curdir(C_word buf, C_word size) {
 
 (set! scheme#string->vector
  (lambda (s #!optional start end)
+  (##sys#check-string s 'string->vector)
   (let ((s->v (lambda (s start end)
-                (##sys#check-string s 'string->vector)
                 (let* ((len (##sys#slot s 1)))
                   (##sys#check-range/including start 0 end 'string->vector)
                   (##sys#check-range/including end start len 'string->vector)
Trap