summaryrefslogtreecommitdiffstats
path: root/stream.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2025-01-30 20:16:34 -0800
committerKaz Kylheku <kaz@kylheku.com>2025-01-30 20:16:34 -0800
commit2d8085fd8474b28ceeafadc32fb440ab8dfd332e (patch)
tree9e6b7ad05de26b924c9062c5683cb812c66ddf55 /stream.c
parent0a49460df0a375b7087ee8aab1d55b7be043d4de (diff)
downloadtxr-2d8085fd8474b28ceeafadc32fb440ab8dfd332e.tar.gz
txr-2d8085fd8474b28ceeafadc32fb440ab8dfd332e.tar.bz2
txr-2d8085fd8474b28ceeafadc32fb440ab8dfd332e.zip
get-csv: use unsafe version string-extend.
Another almost 16% speedup. * lib.c (us_length_STR): New static function. (string_extend): Use us_length_STR, since we know the object is of type STR. (us_string_extend_STR_CHR): New function. (length_str): Handle STR case via use_length_STR. * lib.h (us_string_extend_STR_CHR): Declared. * stream.c (get_csv): Use us_string_extend_STR_CHR instead of string_extend.
Diffstat (limited to 'stream.c')
-rw-r--r--stream.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/stream.c b/stream.c
index 1403f1b2..a2fe74ef 100644
--- a/stream.c
+++ b/stream.c
@@ -5482,10 +5482,10 @@ val get_csv(val source_opt)
if (empty(field))
state = qfield;
else
- string_extend(field, ch, nil);
+ us_string_extend_STR_CHR(field, ch, nil, self);
break;
default:
- string_extend(field, ch, nil);
+ us_string_extend_STR_CHR(field, ch, nil, self);
break;
}
break;
@@ -5495,7 +5495,7 @@ val get_csv(val source_opt)
state = quot;
break;
default:
- string_extend(field, ch, nil);
+ us_string_extend_STR_CHR(field, ch, nil, self);
break;
}
break;
@@ -5507,7 +5507,7 @@ val get_csv(val source_opt)
state = rfield;
break;
case '"':
- string_extend(field, ch, nil);
+ us_string_extend_STR_CHR(field, ch, nil, self);
state = qfield;
break;
case '\n':
@@ -5515,7 +5515,7 @@ val get_csv(val source_opt)
done = 1;
break;
default:
- string_extend(field, ch, nil);
+ us_string_extend_STR_CHR(field, ch, nil, self);
state = rfield;
break;
}