Fossil SCM
Use strchr() to improve the performance of defossilize().
Commit
0aaefeaba1bbca5811b7e4cb946eb2f1a2afebeeaca35d76fac05d014b43c25f
Parent
c550d6e0215e33e…
1 file changed
+3
-2
+3
-2
| --- src/encode.c | ||
| +++ src/encode.c | ||
| @@ -314,12 +314,13 @@ | ||
| 314 | 314 | /* |
| 315 | 315 | ** Decode a fossilized string in-place. |
| 316 | 316 | */ |
| 317 | 317 | void defossilize(char *z){ |
| 318 | 318 | int i, j, c; |
| 319 | - for(i=0; (c=z[i])!=0 && c!='\\'; i++){} | |
| 320 | - if( c==0 ) return; | |
| 319 | + char *zSlash = strchr(z, '\\'); | |
| 320 | + if( zSlash==0 ) return; | |
| 321 | + i = zSlash - z; | |
| 321 | 322 | for(j=i; (c=z[i])!=0; i++){ |
| 322 | 323 | if( c=='\\' && z[i+1] ){ |
| 323 | 324 | i++; |
| 324 | 325 | switch( z[i] ){ |
| 325 | 326 | case 'n': c = '\n'; break; |
| 326 | 327 |
| --- src/encode.c | |
| +++ src/encode.c | |
| @@ -314,12 +314,13 @@ | |
| 314 | /* |
| 315 | ** Decode a fossilized string in-place. |
| 316 | */ |
| 317 | void defossilize(char *z){ |
| 318 | int i, j, c; |
| 319 | for(i=0; (c=z[i])!=0 && c!='\\'; i++){} |
| 320 | if( c==0 ) return; |
| 321 | for(j=i; (c=z[i])!=0; i++){ |
| 322 | if( c=='\\' && z[i+1] ){ |
| 323 | i++; |
| 324 | switch( z[i] ){ |
| 325 | case 'n': c = '\n'; break; |
| 326 |
| --- src/encode.c | |
| +++ src/encode.c | |
| @@ -314,12 +314,13 @@ | |
| 314 | /* |
| 315 | ** Decode a fossilized string in-place. |
| 316 | */ |
| 317 | void defossilize(char *z){ |
| 318 | int i, j, c; |
| 319 | char *zSlash = strchr(z, '\\'); |
| 320 | if( zSlash==0 ) return; |
| 321 | i = zSlash - z; |
| 322 | for(j=i; (c=z[i])!=0; i++){ |
| 323 | if( c=='\\' && z[i+1] ){ |
| 324 | i++; |
| 325 | switch( z[i] ){ |
| 326 | case 'n': c = '\n'; break; |
| 327 |