1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-08 04:30:45 -08:00

insert-file-contents likely-end memory objects

* src/fileio.c (Finsert_file_contents): Treat memory objects like
regular files when inferring likely end.  Simplify likely end
computation.
This commit is contained in:
Paul Eggert 2025-07-16 11:16:13 -07:00
parent 8a1d368b62
commit 92dee45c5e

View file

@ -4255,22 +4255,18 @@ by calling `format-decode', which see. */)
/* Check now whether the buffer will become too large,
in the likely case where the file's length is not changing.
This saves a lot of needless work before a buffer overflow. */
if (regular)
This saves a lot of needless work before a buffer overflow.
If LIKELY_END is nonnegative, it is likely where we will stop reading.
We could read more (or less), if the file grows (or shrinks). */
off_t likely_end = min (end_offset, file_size_hint);
if (beg_offset < likely_end)
{
/* The likely offset where we will stop reading. We could read
more (or less), if the file grows (or shrinks) as we read it. */
off_t likely_end = min (end_offset, file_size_hint);
if (beg_offset < likely_end)
{
ptrdiff_t buf_bytes
= Z_BYTE - (!NILP (replace) ? ZV_BYTE - BEGV_BYTE : 0);
ptrdiff_t buf_growth_max = BUF_BYTES_MAX - buf_bytes;
off_t likely_growth = likely_end - beg_offset;
if (buf_growth_max < likely_growth)
buffer_overflow ();
}
ptrdiff_t buf_bytes
= Z_BYTE - (!NILP (replace) ? ZV_BYTE - BEGV_BYTE : 0);
ptrdiff_t buf_growth_max = BUF_BYTES_MAX - buf_bytes;
off_t likely_growth = likely_end - beg_offset;
if (buf_growth_max < likely_growth)
buffer_overflow ();
}
/* Prevent redisplay optimizations. */