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:
parent
2183d66e13
commit
e578faea20
1 changed files with 5 additions and 4 deletions
|
@ -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
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue