mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 20:00:19 +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:
parent
f4cdfe6140
commit
aff31b0f99
1 changed files with 2 additions and 4 deletions
|
@ -399,7 +399,7 @@ static void
|
||||||
charsets_union (scm_t_char_set *a, scm_t_char_set *b)
|
charsets_union (scm_t_char_set *a, scm_t_char_set *b)
|
||||||
{
|
{
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
scm_t_wchar blo, bhi, n;
|
scm_t_wchar blo, bhi;
|
||||||
|
|
||||||
if (b->len == 0)
|
if (b->len == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -413,13 +413,11 @@ charsets_union (scm_t_char_set *a, scm_t_char_set *b)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This needs optimization. */
|
|
||||||
while (i < b->len)
|
while (i < b->len)
|
||||||
{
|
{
|
||||||
blo = b->ranges[i].lo;
|
blo = b->ranges[i].lo;
|
||||||
bhi = b->ranges[i].hi;
|
bhi = b->ranges[i].hi;
|
||||||
for (n = blo; n <= bhi; n++)
|
scm_i_charset_set_range (a, blo, bhi);
|
||||||
scm_i_charset_set (a, n);
|
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue