mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.2.1973: finding a patch number can be a bit slow
Problem: Finding a patch number can be a bit slow.
Solution: Use binary search. (closes vim/vim#7279)
232f4612e2
This commit is contained in:
parent
3013d0edfc
commit
6d58f1eace
@ -1970,11 +1970,21 @@ bool has_nvim_version(const char *const version_str)
|
||||
///
|
||||
/// @return true if patch `n` has been included.
|
||||
bool has_vim_patch(int n)
|
||||
FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT
|
||||
{
|
||||
for (int i = 0; included_patches[i] != 0; i++) {
|
||||
if (included_patches[i] == n) {
|
||||
// Perform a binary search.
|
||||
int l = 0;
|
||||
int h = (int)(ARRAY_SIZE(included_patches)) - 1;
|
||||
while (l < h) {
|
||||
const int m = (l + h) / 2;
|
||||
if (included_patches[m] == n) {
|
||||
return true;
|
||||
}
|
||||
if (included_patches[m] < n) {
|
||||
h = m;
|
||||
} else {
|
||||
l = m + 1;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user