1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-11 14:21:10 +02:00

Tweak `read-line'.

* libguile/rdelim.c (LINE_BUFFER_SIZE): Set to 1 KiB instead of 4 KiB.
  (scm_read_line): Initialize STRING to #f so we actually use the fast
  path.
This commit is contained in:
Ludovic Courtès 2011-01-26 22:59:45 +01:00
parent 2183d66e13
commit e578faea20

View file

@ -122,7 +122,7 @@ SCM_DEFINE (scm_read_line, "%read-line", 0, 1, 0,
{
/* Threshold under which the only allocation performed is that of the
resulting string and pair. */
#define LINE_BUFFER_SIZE 1024
#define LINE_BUFFER_SIZE 256
SCM line, strings, result;
scm_t_wchar buf[LINE_BUFFER_SIZE], delim;
@ -135,11 +135,11 @@ SCM_DEFINE (scm_read_line, "%read-line", 0, 1, 0,
index = 0;
delim = 0;
strings = SCM_EOL;
strings = SCM_BOOL_F;
do
{
if (index >= sizeof (buf))
if (SCM_UNLIKELY (index >= sizeof (buf)))
{
/* The line is getting longer than BUF so store its current
contents in STRINGS. */
@ -164,7 +164,8 @@ SCM_DEFINE (scm_read_line, "%read-line", 0, 1, 0,
}
while (delim == 0);
if (scm_is_false (strings))
if (SCM_LIKELY (scm_is_false (strings)))
/* The fast path. */
line = scm_from_utf32_stringn (buf, index);
else
{