ashinn / chibi-scheme

Official chibi-scheme repository
Other
1.2k stars 142 forks source link

SRFI 231: make-interval fix #971

Closed gambiteer closed 2 months ago

gambiteer commented 2 months ago

Copy the argument vectors so if later code modifies them it doesn't affect the built interval:

diff --git a/lib/srfi/231/base.scm b/lib/srfi/231/base.scm
index 5b09a38b..fa1bf58b 100644
--- a/lib/srfi/231/base.scm
+++ b/lib/srfi/231/base.scm
@@ -67,7 +67,7 @@
                (translation? hi)
                (= (vector-length lo) (vector-length hi))
                (vector-every <= lo hi)))
-  (%%make-interval lo hi))
+  (%%make-interval (vector-copy lo) (vector-copy hi)))

 (define (make-interval x . o)
   (if (pair? o)