From aff31b0f9946999d9adbf582fabbbd3e523e29e8 Mon Sep 17 00:00:00 2001 From: Michael Gran Date: Wed, 2 Sep 2009 06:20:45 -0700 Subject: [PATCH] Optimize charset union operator * libguile/srfi-14.c (charsets_union): call scm_i_charset_set_range instead of setting characters one-by-one. --- libguile/srfi-14.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/libguile/srfi-14.c b/libguile/srfi-14.c index 4f0010a62..e99a7227c 100644 --- a/libguile/srfi-14.c +++ b/libguile/srfi-14.c @@ -399,7 +399,7 @@ static void charsets_union (scm_t_char_set *a, scm_t_char_set *b) { size_t i = 0; - scm_t_wchar blo, bhi, n; + scm_t_wchar blo, bhi; if (b->len == 0) return; @@ -413,13 +413,11 @@ charsets_union (scm_t_char_set *a, scm_t_char_set *b) return; } - /* This needs optimization. */ while (i < b->len) { blo = b->ranges[i].lo; bhi = b->ranges[i].hi; - for (n = blo; n <= bhi; n++) - scm_i_charset_set (a, n); + scm_i_charset_set_range (a, blo, bhi); i++; } -- 2.20.1