diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2025-01-30 20:16:34 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2025-01-30 20:16:34 -0800 |
commit | 2d8085fd8474b28ceeafadc32fb440ab8dfd332e (patch) | |
tree | 9e6b7ad05de26b924c9062c5683cb812c66ddf55 /stream.c | |
parent | 0a49460df0a375b7087ee8aab1d55b7be043d4de (diff) | |
download | txr-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.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -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; } |