patch 7.4.2024
Problem:    More buf_valid() calls can be optimized.
Solution:   Use bufref_valid() instead.
diff --git a/src/main.c b/src/main.c
index 42638e4..26941bd 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1460,9 +1460,13 @@
 	for (buf = firstbuf; buf != NULL; buf = buf->b_next)
 	    if (buf->b_ml.ml_mfp != NULL)
 	    {
+		bufref_T bufref;
+
+		set_bufref(&bufref, buf);
 		apply_autocmds(EVENT_BUFUNLOAD, buf->b_fname, buf->b_fname,
 								  FALSE, buf);
-		if (!buf_valid(buf))	/* autocmd may delete the buffer */
+		if (!bufref_valid(&bufref))
+		    /* autocmd deleted the buffer */
 		    break;
 	    }
 	apply_autocmds(EVENT_VIMLEAVEPRE, NULL, NULL, FALSE, curbuf);