diff options
author | Michael Gran <spk121@yahoo.com> | 2009-09-02 06:20:45 -0700 |
---|---|---|
committer | Michael Gran <spk121@yahoo.com> | 2009-09-02 06:28:47 -0700 |
commit | aff31b0f9946999d9adbf582fabbbd3e523e29e8 (patch) | |
tree | 0f3c8052a1f6da052e6f53f7bc34537dcb71a545 /libguile/srfi-14.c | |
parent | f4cdfe6140923b5cf11d7af9a2098514d98a61a5 (diff) | |
download | guile-aff31b0f9946999d9adbf582fabbbd3e523e29e8.tar.gz |
Optimize charset union operator
* libguile/srfi-14.c (charsets_union): call scm_i_charset_set_range
instead of setting characters one-by-one.
Diffstat (limited to 'libguile/srfi-14.c')
-rw-r--r-- | libguile/srfi-14.c | 6 |
1 files 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++; } |