From b5314aa9ce6eb73dbd06b844764c4adab99408fb Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 16 Jul 2025 11:16:13 -0700 Subject: [PATCH] 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. (cherry picked from commit 92dee45c5e4e7be1682a8a3aacdfd7d9c87cf286) --- src/fileio.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/fileio.c b/src/fileio.c index e20249379e7..2c8855dba91 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -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) - { - /* 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 (); - } + 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) + { + 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. */ -- 2.39.5