1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

Optimize charset union operator

* libguile/srfi-14.c (charsets_union): call scm_i_charset_set_range
  instead of setting characters one-by-one.
This commit is contained in:
Michael Gran 2009-09-02 06:20:45 -07:00
parent f4cdfe6140
commit aff31b0f99

View file

@ -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++;
}