diff --git a/src/CHANGELOG b/src/CHANGELOG index 0d0aebd7a..c645dbf86 100755 --- a/src/CHANGELOG +++ b/src/CHANGELOG @@ -5,6 +5,10 @@ ECL 9.12.2: - RANDOM broken on 64-bits architectures. +* Other changes: + +- Enlarged the string buffers used for reading and parsing lisp data. + ECL 9.12.1: =========== diff --git a/src/c/read.d b/src/c/read.d index 43fbe6d1e..e2398535e 100644 --- a/src/c/read.d +++ b/src/c/read.d @@ -82,7 +82,7 @@ si_put_buffer_string(cl_object string) l = TOKEN_STRING_FILLP(ECL_CONS_CAR(pool)); } if (l < ECL_MAX_STRING_POOL_SIZE) { - if (TOKEN_STRING_DIM(string) > ECL_BUFFER_STRING_SIZE) { + if (TOKEN_STRING_DIM(string) > 32*ECL_BUFFER_STRING_SIZE) { /* String has been enlarged. Cut it. */ #ifdef ECL_UNICODE string = ecl_alloc_adjustable_extended_string(ECL_BUFFER_STRING_SIZE); diff --git a/src/h/config.h.in b/src/h/config.h.in index 6636cec49..457da5efd 100644 --- a/src/h/config.h.in +++ b/src/h/config.h.in @@ -395,7 +395,7 @@ typedef unsigned @CL_FIXNUM_TYPE@ cl_hashkey; /* We allocate a number of strings in a pool which is used to speed up reading */ #define ECL_MAX_STRING_POOL_SIZE 10 -#define ECL_BUFFER_STRING_SIZE 128 +#define ECL_BUFFER_STRING_SIZE 4192 /* * Macros that depend on these system features.