Skip to content

Commit c0bdc2d

Browse files
skyfish4tbjayrm
authored andcommitted
rtlib: optimization of [L/R]TrimAny function code
1 parent 1937d58 commit c0bdc2d

File tree

6 files changed

+44
-87
lines changed

6 files changed

+44
-87
lines changed

src/rtlib/str_ltrimany.c

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,8 @@ FBCALL FBSTRING *fb_LTrimAny
3030
{
3131
while ( len != 0 )
3232
{
33-
ssize_t i;
34-
for( i=0; i!=len_pattern; ++i )
35-
{
36-
if( FB_MEMCHR( pattern->data, *pachText, len_pattern )!=NULL )
37-
break;
38-
}
39-
40-
if( i==len_pattern )
41-
break;
33+
if( FB_MEMCHR( pattern->data, *pachText, len_pattern )==NULL )
34+
break;
4235

4336
--len;
4437
++pachText;

src/rtlib/str_rtrimany.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,8 @@ FBCALL FBSTRING *fb_RTrimAny( FBSTRING *src, FBSTRING *pattern )
2525
{
2626
while ( len != 0 )
2727
{
28-
ssize_t i;
2928
--len;
30-
for( i=0; i!=len_pattern; ++i )
31-
{
32-
if( FB_MEMCHR( pattern->data, pachText[len], len_pattern )!=NULL )
33-
break;
34-
}
35-
36-
if( i==len_pattern )
29+
if( FB_MEMCHR( pattern->data, pachText[len], len_pattern )==NULL )
3730
{
3831
++len;
3932
break;

src/rtlib/str_trimany.c

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -26,30 +26,16 @@ FBCALL FBSTRING *fb_TrimAny( FBSTRING *src, FBSTRING *pattern )
2626
{
2727
while ( len != 0 )
2828
{
29-
ssize_t i;
30-
for( i=0; i!=len_pattern; ++i )
31-
{
32-
if( FB_MEMCHR( pattern->data, *pachText, len_pattern )!=NULL )
33-
break;
34-
}
35-
36-
if( i==len_pattern )
29+
if( FB_MEMCHR( pattern->data, *pachText, len_pattern )==NULL )
3730
break;
3831

3932
--len;
4033
++pachText;
4134
}
4235
while ( len != 0 )
4336
{
44-
ssize_t i;
4537
--len;
46-
for( i=0; i!=len_pattern; ++i )
47-
{
48-
if( FB_MEMCHR( pattern->data, pachText[len], len_pattern )!=NULL )
49-
break;
50-
}
51-
52-
if( i==len_pattern )
38+
if( FB_MEMCHR( pattern->data, pachText[len], len_pattern )==NULL )
5339
{
5440
++len;
5541
break;

src/rtlib/strw_ltrimany.c

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,17 @@ FBCALL FB_WCHAR *fb_WstrLTrimAny ( const FB_WCHAR *src, const FB_WCHAR *pattern
1616
{
1717
ssize_t len_pattern = fb_wstr_Len( pattern );
1818
pachText = src;
19-
while ( len != 0 )
20-
{
21-
ssize_t i;
22-
for( i=0; i!=len_pattern; ++i ) {
23-
if( wcschr( pattern, *pachText )!=NULL ) {
24-
break;
25-
}
26-
}
27-
if( i==len_pattern ) {
28-
break;
29-
}
30-
--len;
31-
++pachText;
32-
}
19+
if( len_pattern != 0 )
20+
{
21+
while ( len != 0 )
22+
{
23+
if( wcschr( pattern, *pachText )==NULL ) {
24+
break;
25+
}
26+
--len;
27+
++pachText;
28+
}
29+
}
3330
}
3431

3532
if( len > 0 )

src/rtlib/strw_rtrimany.c

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,17 @@ FBCALL FB_WCHAR *fb_WstrRTrimAny ( const FB_WCHAR *src, const FB_WCHAR *pattern
1616
{
1717
ssize_t len_pattern = fb_wstr_Len( pattern );
1818
pachText = src;
19-
while ( len != 0 )
20-
{
21-
ssize_t i;
22-
--len;
23-
for( i=0; i!=len_pattern; ++i ) {
24-
if( wcschr( pattern, pachText[len] )!=NULL ) {
19+
if( len_pattern != 0 )
20+
{
21+
while ( len != 0 )
22+
{
23+
--len;
24+
if( wcschr( pattern, pachText[len] )==NULL ) {
25+
++len;
2526
break;
2627
}
27-
}
28-
if( i==len_pattern ) {
29-
++len;
30-
break;
31-
}
32-
}
28+
}
29+
}
3330
}
3431

3532
if( len > 0 )

src/rtlib/strw_trimany.c

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,34 +17,25 @@ FBCALL FB_WCHAR *fb_WstrTrimAny ( const FB_WCHAR *src, const FB_WCHAR *pattern )
1717
ssize_t len_pattern = fb_wstr_Len( pattern );
1818
pachText = src;
1919
len = fb_wstr_Len( src );
20-
while ( len != 0 )
21-
{
22-
ssize_t i;
23-
for( i=0; i!=len_pattern; ++i ) {
24-
if( wcschr( pattern, *pachText )!=NULL ) {
25-
break;
26-
}
27-
}
28-
if( i==len_pattern ) {
29-
break;
30-
}
31-
--len;
32-
++pachText;
33-
}
34-
while ( len != 0 )
35-
{
36-
ssize_t i;
37-
--len;
38-
for( i=0; i!=len_pattern; ++i ) {
39-
if( wcschr( pattern, pachText[len] )!=NULL ) {
40-
break;
41-
}
42-
}
43-
if( i==len_pattern ) {
44-
++len;
45-
break;
46-
}
47-
}
20+
if( len_pattern != 0 )
21+
{
22+
while ( len != 0 )
23+
{
24+
if( wcschr( pattern, *pachText )==NULL ) {
25+
break;
26+
}
27+
--len;
28+
++pachText;
29+
}
30+
while ( len != 0 )
31+
{
32+
--len;
33+
if( wcschr( pattern, pachText[len] )==NULL ) {
34+
++len;
35+
break;
36+
}
37+
}
38+
}
4839
}
4940

5041
if( len > 0 )

0 commit comments

Comments
 (0)