aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/doc/eval.txt13
-rw-r--r--src/nvim/eval.c1
2 files changed, 8 insertions, 6 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index d12871f4ab..5c2b570695 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -4654,7 +4654,8 @@ msgpackparse({list}) {Nvim} *msgpackparse()*
let fname = expand('~/.nvim/shada/main.shada')
let mpack = readfile(fname, 'b')
let shada_objects = msgpackparse(mpack)
-< This will read |shada-file| to `shada_objects` list.
+< This will read ~/.nvim/shada/main.shada file to
+ `shada_objects` list.
Limitations:
1. Mapping ordering is not preserved unless messagepack
@@ -4668,10 +4669,10 @@ msgpackparse({list}) {Nvim} *msgpackparse()*
Some messagepack strings may be parsed to special
dictionaries. Special dictionaries are dictionaries which
- 1. Contain exactly two keys: `_TYPE` and `_VALUE`.
+ 1. Contain exactly two keys: `_TYPE` and `_VAL`.
2. `_TYPE` key is one of the types found in |v:msgpack_types|
variable.
- 3. Value for `_VALUE` has the following format (Key column
+ 3. Value for `_VAL` has the following format (Key column
contains name of the key from |v:msgpack_types|):
Key Value ~
@@ -4682,9 +4683,9 @@ msgpackparse({list}) {Nvim} *msgpackparse()*
bits, number with bits from 62nd to 31st, lowest 31
bits. I.e. to get actual number one will need to use
code like >
- _VALUE[0] * ((_VALUE[1] << 62)
- & (_VALUE[2] << 31)
- & _VALUE[3])
+ _VAL[0] * ((_VAL[1] << 62)
+ & (_VAL[2] << 31)
+ & _VAL[3])
< Special dictionary with this type will appear in
|msgpackparse()| output under one of the following
circumstances:
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 48f9faa777..aa9e656913 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -584,6 +584,7 @@ void eval_init(void)
for (size_t i = 0; i < ARRAY_SIZE(msgpack_type_names); i++) {
list_T *const type_list = list_alloc();
type_list->lv_lock = VAR_FIXED;
+ type_list->lv_refcount = 1;
dictitem_T *const di = dictitem_alloc((char_u *) msgpack_type_names[i]);
di->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX;
di->di_tv = (typval_T) {