aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/buffer.h
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-06-22 08:35:28 +0200
committerJustin M. Keyes <justinkz@gmail.com>2018-06-22 08:35:28 +0200
commite1c6109e62b4e1d12ebdab67140f82cc7dc2c0d1 (patch)
tree3bfaaf5fdba2d6c01288880f865620db1d6c1a88 /src/nvim/buffer.h
parentb7514493a0c4a4389a5921f15b0b429dae5c75e7 (diff)
parenteaf2a25f12342622414b264870f41939fe41355a (diff)
downloadrneovim-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.h33
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) \