aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/shada.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nvim/shada.c')
-rw-r--r--src/nvim/shada.c97
1 files changed, 50 insertions, 47 deletions
diff --git a/src/nvim/shada.c b/src/nvim/shada.c
index 84ab5190bf..2693cb0273 100644
--- a/src/nvim/shada.c
+++ b/src/nvim/shada.c
@@ -512,8 +512,8 @@ static inline void hmll_init(HMLList *const hmll, const size_t size)
///
/// @return `for` cycle header (use `HMLL_FORALL(hmll, cur_entry) {body}`).
#define HMLL_FORALL(hmll, cur_entry, code) \
- for (HMLListEntry *cur_entry = (hmll)->first; cur_entry != NULL; \
- cur_entry = cur_entry->next) { \
+ for (HMLListEntry *(cur_entry) = (hmll)->first; (cur_entry) != NULL; \
+ (cur_entry) = (cur_entry)->next) { \
code \
} \
@@ -1072,13 +1072,13 @@ static inline bool marks_equal(const pos_T a, const pos_T b)
entry, fname_cond, free_func, fin_func, \
idxadj_func, afterfree_func) \
do { \
- const int jl_len = (int)jumps_size; \
+ const int jl_len = (int)(jumps_size); \
int i; \
for (i = jl_len; i > 0; i--) { \
- const jumps_type jl_entry = jumps[i - 1]; \
- if (jl_entry.timestamp_attr <= entry.timestamp) { \
- if (marks_equal(jl_entry.mark_attr, entry.data.filemark.mark) \
- && fname_cond) { \
+ const jumps_type jl_entry = (jumps)[i - 1]; \
+ if (jl_entry.timestamp_attr <= (entry).timestamp) { \
+ if (marks_equal(jl_entry.mark_attr, (entry).data.filemark.mark) \
+ && (fname_cond)) { \
i = -1; \
} \
break; \
@@ -1086,30 +1086,30 @@ static inline bool marks_equal(const pos_T a, const pos_T b)
} \
if (i > 0) { \
if (jl_len == JUMPLISTSIZE) { \
- free_func(jumps[0]); \
+ free_func((jumps)[0]); \
i--; \
if (i > 0) { \
- memmove(&jumps[0], &jumps[1], sizeof(jumps[1]) * (size_t)i); \
+ memmove(&(jumps)[0], &(jumps)[1], sizeof((jumps)[1]) * (size_t)i); \
} \
} else if (i != jl_len) { \
- memmove(&jumps[i + 1], &jumps[i], \
- sizeof(jumps[0]) * (size_t)(jl_len - i)); \
+ memmove(&(jumps)[i + 1], &(jumps)[i], \
+ sizeof((jumps)[0]) * (size_t)(jl_len - i)); \
} \
} else if (i == 0) { \
if (jl_len == JUMPLISTSIZE) { \
i = -1; \
} else if (jl_len > 0) { \
- memmove(&jumps[1], &jumps[0], sizeof(jumps[0]) * (size_t)jl_len); \
+ memmove(&(jumps)[1], &(jumps)[0], sizeof((jumps)[0]) * (size_t)jl_len); \
} \
} \
if (i != -1) { \
- jumps[i] = fin_func(entry); \
+ (jumps)[i] = fin_func(entry); \
if (jl_len < JUMPLISTSIZE) { \
- jumps_size++; \
+ (jumps_size)++; \
} \
idxadj_func(i); \
} else { \
- shada_free_shada_entry(&entry); \
+ shada_free_shada_entry(&(entry)); \
afterfree_func(entry); \
} \
} while (0)
@@ -1304,7 +1304,7 @@ static void shada_read(ShaDaReadDef *const sd_reader, const int flags)
} else {
#define SDE_TO_XFMARK(entry) fm
#define ADJUST_IDX(i) \
- if (curwin->w_jumplistidx >= i \
+ if (curwin->w_jumplistidx >= (i) \
&& curwin->w_jumplistidx + 1 <= curwin->w_jumplistlen) { \
curwin->w_jumplistidx++; \
}
@@ -1547,7 +1547,7 @@ static ShaDaWriteResult shada_pack_entry(msgpack_packer *const packer, ShadaEntr
} \
} while (0)
#define CHECK_DEFAULT(entry, attr) \
- (sd_default_values[entry.type].data.attr == entry.data.attr)
+ (sd_default_values[(entry).type].data.attr == (entry).data.attr)
#define ONE_IF_NOT_DEFAULT(entry, attr) \
((size_t)(!CHECK_DEFAULT(entry, attr)))
switch (entry.type) {
@@ -1637,7 +1637,7 @@ static ShaDaWriteResult shada_pack_entry(msgpack_packer *const packer, ShadaEntr
do { \
if (!CHECK_DEFAULT(entry, search_pattern.attr)) { \
PACK_STATIC_STR(name); \
- if (sd_default_values[entry.type].data.search_pattern.attr) { \
+ if (sd_default_values[(entry).type].data.search_pattern.attr) { \
msgpack_pack_false(spacker); \
} else { \
msgpack_pack_true(spacker); \
@@ -2221,12 +2221,12 @@ static inline ShaDaWriteResult shada_read_when_writing(ShaDaReadDef *const sd_re
} else {
#define FREE_POSSIBLY_FREED_SHADA_ENTRY(entry) \
do { \
- if (entry.can_free_entry) { \
- shada_free_shada_entry(&entry.data); \
+ if ((entry).can_free_entry) { \
+ shada_free_shada_entry(&(entry).data); \
} \
} while (0)
#define SDE_TO_PFSDE(entry) \
- ((PossiblyFreedShadaEntry) { .can_free_entry = true, .data = entry })
+ ((PossiblyFreedShadaEntry) { .can_free_entry = true, .data = (entry) })
#define AFTERFREE_DUMMY(entry)
#define DUMMY_IDX_ADJ(i)
MERGE_JUMPS(filemarks->changes_size, filemarks->changes,
@@ -2814,8 +2814,8 @@ static ShaDaWriteResult shada_write(ShaDaWriteDef *const sd_writer, ShaDaReadDef
#define PACK_WMS_ARRAY(wms_array) \
do { \
for (size_t i_ = 0; i_ < ARRAY_SIZE(wms_array); i_++) { \
- if (wms_array[i_].data.type != kSDItemMissing) { \
- if (shada_pack_pfreed_entry(packer, wms_array[i_], max_kbyte) \
+ if ((wms_array)[i_].data.type != kSDItemMissing) { \
+ if (shada_pack_pfreed_entry(packer, (wms_array)[i_], max_kbyte) \
== kSDWriteFailed) { \
ret = kSDWriteFailed; \
goto shada_write_exit; \
@@ -2835,7 +2835,7 @@ static ShaDaWriteResult shada_write(ShaDaWriteDef *const sd_writer, ShaDaReadDef
}
#define PACK_WMS_ENTRY(wms_entry) \
do { \
- if (wms_entry.data.type != kSDItemMissing) { \
+ if ((wms_entry).data.type != kSDItemMissing) { \
if (shada_pack_pfreed_entry(packer, wms_entry, max_kbyte) \
== kSDWriteFailed) { \
ret = kSDWriteFailed; \
@@ -3312,16 +3312,16 @@ static ShaDaReadResult msgpack_read_uint64(ShaDaReadDef *const sd_reader, const
RERR "Error while reading ShaDa file: " \
entry_name " entry at position %" PRIu64 " " \
error_desc
-#define CHECK_KEY(key, expected) ( \
- key.via.str.size == sizeof(expected) - 1 \
- && STRNCMP(key.via.str.ptr, expected, sizeof(expected) - 1) == 0)
+#define CHECK_KEY(key, \
+ expected) ((key).via.str.size == (sizeof(expected) - 1) \
+ && STRNCMP((key).via.str.ptr, expected, (sizeof(expected) - 1)) == 0)
#define CLEAR_GA_AND_ERROR_OUT(ga) \
do { \
- ga_clear(&ga); \
+ ga_clear(&(ga)); \
goto shada_read_next_item_error; \
} while (0)
#define ID(s) s
-#define BINDUP(b) xmemdupz(b.ptr, b.size)
+#define BINDUP(b) xmemdupz((b).ptr, (b).size)
#define TOINT(s) ((int)(s))
#define TOLONG(s) ((long)(s))
#define TOCHAR(s) ((char)(s))
@@ -3334,28 +3334,31 @@ static ShaDaReadResult msgpack_read_uint64(ShaDaReadDef *const sd_reader, const
semsg(_(READERR(entry_name, error_desc)), initial_fpos); \
CLEAR_GA_AND_ERROR_OUT(ad_ga); \
} \
- tgt = proc(obj.via.attr); \
+ (tgt) = proc((obj).via.attr); \
} while (0)
#define CHECK_KEY_IS_STR(un, entry_name) \
- if (un.data.via.map.ptr[i].key.type != MSGPACK_OBJECT_STR) { \
+ if ((un).data.via.map.ptr[i].key.type != MSGPACK_OBJECT_STR) { \
semsg(_(READERR(entry_name, "has key which is not a string")), \
initial_fpos); \
CLEAR_GA_AND_ERROR_OUT(ad_ga); \
- } else if (un.data.via.map.ptr[i].key.via.str.size == 0) { \
+ } else if ((un).data.via.map.ptr[i].key.via.str.size == 0) { \
semsg(_(READERR(entry_name, "has empty key")), initial_fpos); \
CLEAR_GA_AND_ERROR_OUT(ad_ga); \
}
-#define CHECKED_KEY(un, entry_name, name, error_desc, tgt, condition, attr, \
- proc) \
- else if (CHECK_KEY( /* NOLINT(readability/braces) */ \
- un.data.via.map.ptr[i].key, name)) { \
- CHECKED_ENTRY(condition, "has " name " key value " error_desc, \
- entry_name, un.data.via.map.ptr[i].val, \
- tgt, attr, proc); \
+#define CHECKED_KEY(un, entry_name, name, error_desc, tgt, condition, attr, proc) \
+ else if (CHECK_KEY((un).data.via.map.ptr[i].key, name)) /* NOLINT(readability/braces) */ \
+ { \
+ CHECKED_ENTRY(condition, \
+ "has " name " key value " error_desc, \
+ entry_name, \
+ (un).data.via.map.ptr[i].val, \
+ tgt, \
+ attr, \
+ proc); \
}
#define TYPED_KEY(un, entry_name, name, type_name, tgt, objtype, attr, proc) \
CHECKED_KEY(un, entry_name, name, "which is not " type_name, tgt, \
- un.data.via.map.ptr[i].val.type == MSGPACK_OBJECT_##objtype, \
+ (un).data.via.map.ptr[i].val.type == MSGPACK_OBJECT_##objtype, \
attr, proc)
#define BOOLEAN_KEY(un, entry_name, name, tgt) \
TYPED_KEY(un, entry_name, name, "a boolean", tgt, BOOLEAN, boolean, ID)
@@ -3366,9 +3369,9 @@ static ShaDaReadResult msgpack_read_uint64(ShaDaReadDef *const sd_reader, const
BIN_CONVERTED)
#define INT_KEY(un, entry_name, name, tgt, proc) \
CHECKED_KEY(un, entry_name, name, "which is not an integer", tgt, \
- ((un.data.via.map.ptr[i].val.type \
+ (((un).data.via.map.ptr[i].val.type \
== MSGPACK_OBJECT_POSITIVE_INTEGER) \
- || (un.data.via.map.ptr[i].val.type \
+ || ((un).data.via.map.ptr[i].val.type \
== MSGPACK_OBJECT_NEGATIVE_INTEGER)), \
i64, proc)
#define INTEGER_KEY(un, entry_name, name, tgt) \
@@ -3379,12 +3382,12 @@ static ShaDaReadResult msgpack_read_uint64(ShaDaReadDef *const sd_reader, const
else { /* NOLINT(readability/braces) */ \
ga_grow(&ad_ga, 1); \
memcpy(((char *)ad_ga.ga_data) + ((size_t)ad_ga.ga_len \
- * sizeof(*un.data.via.map.ptr)), \
- un.data.via.map.ptr + i, \
- sizeof(*un.data.via.map.ptr)); \
+ * sizeof(*(un).data.via.map.ptr)), \
+ (un).data.via.map.ptr + i, \
+ sizeof(*(un).data.via.map.ptr)); \
ad_ga.ga_len++; \
}
-#define BIN_CONVERTED(b) (xmemdupz((b.ptr), (b.size)))
+#define BIN_CONVERTED(b) (xmemdupz(((b).ptr), ((b).size)))
#define SET_ADDITIONAL_DATA(tgt, name) \
do { \
if (ad_ga.ga_len) { \
@@ -3407,7 +3410,7 @@ static ShaDaReadResult msgpack_read_uint64(ShaDaReadDef *const sd_reader, const
tv_clear(&adtv); \
goto shada_read_next_item_error; \
} \
- tgt = adtv.vval.v_dict; \
+ (tgt) = adtv.vval.v_dict; \
} \
ga_clear(&ad_ga); \
} while (0)