mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-24 05:21:20 -08:00
printer: fix the recently optimized printing routines
Overflows of the string buffer were not correctly handled.
This commit is contained in:
parent
5f621c6e96
commit
2c135e798b
3 changed files with 3 additions and 3 deletions
|
|
@ -4741,7 +4741,7 @@ writestr_stream(const char *s, cl_object strm)
|
|||
if (i >= size) {
|
||||
si_fill_pointer_set(buffer, ecl_make_fixnum(size));
|
||||
cl_write_string(2, buffer, strm);
|
||||
si_fill_pointer_set(buffer, ecl_make_fixnum(0));
|
||||
i = 0;
|
||||
}
|
||||
}
|
||||
si_fill_pointer_set(buffer, ecl_make_fixnum(i));
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ _ecl_write_addr(void *x, cl_object stream)
|
|||
if (buffer_ndx >= buffer_size) {
|
||||
si_fill_pointer_set(buffer, ecl_make_fixnum(buffer_size));
|
||||
cl_write_string(2, buffer, stream);
|
||||
si_fill_pointer_set(buffer, ecl_make_fixnum(0));
|
||||
buffer_ndx = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ needs_to_be_escaped(cl_object s, cl_object readtable, cl_object print_case)
|
|||
if (buffer_ndx >= buffer_size) { \
|
||||
si_fill_pointer_set(buffer, ecl_make_fixnum(buffer_size)); \
|
||||
cl_write_string(2, buffer, stream); \
|
||||
si_fill_pointer_set(buffer, ecl_make_fixnum(0)); \
|
||||
buffer_ndx = 0; \
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue