patch 8.0.0607: after :bwipe + :new bufref might still be valid
Problem: When creating a bufref, then using :bwipe and :new it might get
the same memory and bufref_valid() returns true.
Solution: Add br_fnum to check the buffer number didn't change.
diff --git a/src/quickfix.c b/src/quickfix.c
index 6de55f7..e330e6e 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -161,8 +161,8 @@
* Looking up a buffer can be slow if there are many. Remember the last one
* to make this a lot faster if there are multiple matches in the same file.
*/
-static char_u *qf_last_bufname = NULL;
-static bufref_T qf_last_bufref = {NULL, 0};
+static char_u *qf_last_bufname = NULL;
+static bufref_T qf_last_bufref = {NULL, 0, 0};
/*
* Read the errorfile "efile" into memory, line by line, building the error
@@ -2732,7 +2732,7 @@
}
/*
- * Free error list "idx".
+ * Free all the entries in the error list "idx".
*/
static void
qf_free(qf_info_T *qi, int idx)