Fossil SCM

Use strchr() to improve the performance of defossilize().

drh 2019-09-12 17:11 trunk
Commit 0aaefeaba1bbca5811b7e4cb946eb2f1a2afebeeaca35d76fac05d014b43c25f
1 file changed +3 -2
+3 -2
--- src/encode.c
+++ src/encode.c
@@ -314,12 +314,13 @@
314314
/*
315315
** Decode a fossilized string in-place.
316316
*/
317317
void defossilize(char *z){
318318
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;
321322
for(j=i; (c=z[i])!=0; i++){
322323
if( c=='\\' && z[i+1] ){
323324
i++;
324325
switch( z[i] ){
325326
case 'n': c = '\n'; break;
326327
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button