patch 7.4.2018
Problem: buf_valid() can be slow when there are many buffers.
Solution: Add bufref_valid(), only go through the buffer list when a buffer
was freed.
diff --git a/src/structs.h b/src/structs.h
index 05f4617..e092e6b 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -69,6 +69,14 @@
typedef int scid_T; /* script ID */
typedef struct file_buffer buf_T; /* forward declaration */
+/* Reference to a buffer that stores the value of buf_free_count.
+ * bufref_valid() only needs to check "buf" when the count differs.
+ */
+typedef struct {
+ buf_T *br_buf;
+ int br_buf_free_count;
+} bufref_T;
+
/*
* This is here because regexp.h needs pos_T and below regprog_T is used.
*/