Eliminate unnecessary consing in char-set-empty?.
authorChris Hanson <org/chris-hanson/cph>
Sat, 12 Jan 2019 21:03:05 +0000 (13:03 -0800)
committerChris Hanson <org/chris-hanson/cph>
Sat, 12 Jan 2019 21:03:05 +0000 (13:03 -0800)
src/runtime/char-set.scm

index 0f4277c2e010b24c09fefaf12afa65df4694d638..bca760cb0986aceff68f34f18dcc1a5bda47fcf4 100644 (file)
@@ -446,6 +446,10 @@ USA.
                              (%char-set-high char-set))))
         char-sets))
 
+(define (char-set-empty? cs)
+  (and (fix:= 0 (bytevector-length (%char-set-low cs)))
+       (fix:= 0 (bytevector-length (%char-set-high cs)))))
+
 (define (char-set-hash char-set)
   (primitive-object-hash-2 (%char-set-low char-set)
                           (%char-set-high char-set)))
@@ -458,9 +462,6 @@ USA.
                    ranges))
        (reverse! ranges))))
 
-(define (char-set-empty? cs)
-  (char-set=? (char-set) cs))
-
 (define (char-sets-disjoint? char-set . char-sets)
   (every (lambda (char-set*)
           (char-set-empty? (char-set-intersection char-set char-set*)))