diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2018-06-22 08:35:28 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2018-06-22 08:35:28 +0200 |
commit | e1c6109e62b4e1d12ebdab67140f82cc7dc2c0d1 (patch) | |
tree | 3bfaaf5fdba2d6c01288880f865620db1d6c1a88 /src/nvim/buffer.h | |
parent | b7514493a0c4a4389a5921f15b0b429dae5c75e7 (diff) | |
parent | eaf2a25f12342622414b264870f41939fe41355a (diff) | |
download | rneovim-e1c6109e62b4e1d12ebdab67140f82cc7dc2c0d1.tar.gz rneovim-e1c6109e62b4e1d12ebdab67140f82cc7dc2c0d1.tar.bz2 rneovim-e1c6109e62b4e1d12ebdab67140f82cc7dc2c0d1.zip |
Merge #8618 'Replace b_changedtick with always-inline functions'
Diffstat (limited to 'src/nvim/buffer.h')
-rw-r--r-- | src/nvim/buffer.h | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/src/nvim/buffer.h b/src/nvim/buffer.h index d12862a0c6..e61c312fb1 100644 --- a/src/nvim/buffer.h +++ b/src/nvim/buffer.h @@ -96,7 +96,7 @@ static inline void buf_set_changedtick(buf_T *const buf, const varnumber_T changedtick) REAL_FATTR_NONNULL_ALL REAL_FATTR_ALWAYS_INLINE; -/// Set b_changedtick and corresponding variable +/// Set b:changedtick, also checking b: for consistency in debug build /// /// @param[out] buf Buffer to set changedtick in. /// @param[in] changedtick New value. @@ -114,10 +114,35 @@ static inline void buf_set_changedtick(buf_T *const buf, assert(changedtick_di->di_flags == (DI_FLAGS_RO|DI_FLAGS_FIX)); # endif assert(changedtick_di == (dictitem_T *)&buf->changedtick_di); - assert(&buf->b_changedtick // -V501 - == &buf->changedtick_di.di_tv.vval.v_number); #endif - buf->b_changedtick = changedtick; + buf->changedtick_di.di_tv.vval.v_number = changedtick; +} + +static inline varnumber_T buf_get_changedtick(const buf_T *const buf) + REAL_FATTR_NONNULL_ALL REAL_FATTR_ALWAYS_INLINE REAL_FATTR_PURE + REAL_FATTR_WARN_UNUSED_RESULT; + +/// Get b:changedtick value +/// +/// Faster then querying b:. +/// +/// @param[in] buf Buffer to get b:changedtick from. +static inline varnumber_T buf_get_changedtick(const buf_T *const buf) +{ + return buf->changedtick_di.di_tv.vval.v_number; +} + +static inline void buf_inc_changedtick(buf_T *const buf) + REAL_FATTR_NONNULL_ALL REAL_FATTR_ALWAYS_INLINE; + +/// Increment b:changedtick value +/// +/// Also checks b: for consistency in case of debug build. +/// +/// @param[in,out] buf Buffer to increment value in. +static inline void buf_inc_changedtick(buf_T *const buf) +{ + buf_set_changedtick(buf, buf_get_changedtick(buf) + 1); } #define WITH_BUFFER(b, code) \ |