diff options
Diffstat (limited to 'src/nvim/lib/kvec.h')
| -rw-r--r-- | src/nvim/lib/kvec.h | 14 | 
1 files changed, 13 insertions, 1 deletions
| diff --git a/src/nvim/lib/kvec.h b/src/nvim/lib/kvec.h index 584282d773..6d54c7f78d 100644 --- a/src/nvim/lib/kvec.h +++ b/src/nvim/lib/kvec.h @@ -41,6 +41,7 @@  #include <string.h>  #include "nvim/memory.h" +#include "nvim/os/os_defs.h"  #define kv_roundup32(x) \      ((--(x)), \ @@ -62,7 +63,16 @@  #define kv_pop(v) ((v).items[--(v).size])  #define kv_size(v) ((v).size)  #define kv_max(v) ((v).capacity) -#define kv_last(v) kv_A(v, kv_size(v) - 1) +#define kv_Z(v, i) kv_A(v, kv_size(v) - (i) - 1) +#define kv_last(v) kv_Z(v, 0) + +/// Drop last n items from kvec without resizing +/// +/// Previously spelled as `(void)kv_pop(v)`, repeated n times. +/// +/// @param[out]  v  Kvec to drop items from. +/// @param[in]  n  Number of elements to drop. +#define kv_drop(v, n) ((v).size -= (n))  #define kv_resize(v, s) \      ((v).capacity = (s), \ @@ -132,6 +142,8 @@ static inline void *_memcpy_free(void *const restrict dest,    return dest;  } +// -V:kvi_push:512 +  /// Resize vector with preallocated array  ///  /// @note May not resize to an array smaller then init_array: if requested, | 
