aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval
Commit message (Collapse)AuthorAge
...
* eval: Fix failing testZyX2017-01-07
|
* eval: Make sure that copyID is reset when neededZyX2017-01-07
| | | | | Works by making value pushed on stack represent the exhausted list. Fixes #5901, except for dictionaries which need similar adjustment.
* eval/typval_encode.h: Use only a single macros with _INNER[_2] hackZyX2017-01-07
|
* eval/typval_encode: Dump empty dictionary before checking for refcycleZyX2017-01-06
| | | Otherwise copyID will stay forever on empty dictionaries.
* eval/typval_encode: Use TYPVAL_ENCODE_CONV_EMPTY_DICT for partialsZyX2017-01-06
|
* eval/typval_encode.h: Remove documentation that is located in *.c.hZyX2017-01-06
|
* *: Remove `// fname()` comments near typval_encode includesZyX2017-01-04
|
* eval/encode: Always check the return value of encode_vim_to_\*ZyX2017-01-04
|
* eval: Fix errorneous early exit when converting lists and dictionariesZyX2017-01-03
|
* eval/encode: Fail when stringifying NULL functionsZyX2017-01-03
|
* eval/typval_encode: Handle NULL partials properlyZyX2017-01-03
|
* eval/typval_encode: Provide proper values as dict argumentZyX2017-01-03
|
* eval/encode: Fix 4 new linter failuresZyX2017-01-03
|
* eval/typval_encode: Refactor arguments to argument macrosesZyX2017-01-03
| | | Fixed local test failures somewhere in process.
* eval/typval_encode: Rename some \*tv variablesZyX2017-01-03
| | | | | Renames `tv` function argument to `top_tv` and `cur_tv` variable to `tv`, so `tv` will mean something more or less the same in both _TYPVAL_ENCODE_CONVERT_ONE_VALUE and _TYPVAL_ENCODE_ENCODE functions.
* eval/typval_encode: Fix infinite loopZyX2017-01-03
| | | | | | | | | Occurs when trying to dump a partial with attached self dictionary which references that partial. “Infinite” loop should normally result in Neovim killed by OOM killer. Also moved the place when partials are unreferenced by clear_tv: from …FUNC_START to …FUNC_END.
* eval/typval_encode: Fix linter errorsZyX2017-01-03
|
* eval/typval_encode: Fix crashesZyX2017-01-03
|
* eval/typval_encode: Refactor big-big macros into .c.h fileZyX2017-01-03
| | | | | This makes gdb backtraces much more meaningful: specifically I now know at which line it crashes in place of seeing that it crashes at TYPVAL_ENCODE_DEFINE_CONV_FUNCTIONS macros invocation.
* eval/typval_encode: Make partial conversions not recursiveZyX2017-01-03
| | | | | | Is known to crash in the current state. Ref #5825.
* eval: encode: Fix NULL check for partial's nameJames McCoy2016-12-23
|
* Add some tests and cleanup.Michael Ennen2016-12-12
|
* Fixes.Michael Ennen2016-12-12
|
* vim-patch:7.4.1608Michael Ennen2016-12-12
| | | | | | | Problem: string() doesn't handle a partial. Solution: Make a string from a partial. https://github.com/vim/vim/commit/5c29154b521e9948190be653cfda666ecbb63b5b
* vim-patch:7.4.1559Michael Ennen2016-12-12
| | | | | | | Problem: Passing cookie to a callback is clumsy. Solution: Change function() to take arguments and return a partial. https://github.com/vim/vim/commit/1735bc988c546cc962c5f94792815b4d7cb79710
* Merge #5752 from justinmk/docJustin M. Keyes2016-12-11
|\ | | | | doc: api_info(), typval_encode.h
| * doc: eval/typval_encode.hJustin M. Keyes2016-10-31
| | | | | | | | Annotate TYPVAL_ENCODE_DEFINE_CONV_FUNCTIONS to aid code navigation.
* | Bump all nvim-specific error codes above E5000James McCoy2016-11-15
|/ | | | | | | | | | In order to not conflict with new error codes that Vim adds, all Neovim error codes should be above 5000. The three existing sub-5000 error codes (E926, E951, and E952) are now E50003, E5004, and E5005 respectively. E953 was removed in 6167ce6df2753d5474ad49aea19f5957128ab015, so just remove it from the help.
* eval: Also make clear_tv non-recursiveZyX2016-06-24
|
* kvec,typval_encode: Add new vector: the one with preallocated arrayZyX2016-06-24
|
* api/helpers: Use typval_encode.h for vim_to_objectZyX2016-06-24
| | | | | | | | | | | | | This ought to prevent stack overflow, but I do not see this actually working: *lua* code crashes with stack overflow when trying to deserialize msgpack from Neovim, Neovim is fine even if nesting level is increased 100x (though test becomes very slow); not sure how recursive function may survive this. So it looks like there are currently only two positive effects: 1. NULL lists are returned as empty (#4596). 2. Functional tests are slightly more fast. Very slightly. Checked for Release build for test/functional/eval tests because benchmarking of debug mode is not very useful.
* typval_encode: Do not use new vector typeZyX2016-05-30
| | | | | | For string() it looks like no optimization, sometimes performance is even worse. Since it was designed to avoid heap allocations in clear_tv let’s see whether it will make any difference once clear_tv uses typval_encode to avoid stack overflow in the disabled test.
* kvec,typval_encode: Add new vector: the one with preallocated arrayZyX2016-05-30
|
* eval/encode: Move main macros from encode.c to typval_encode.hZyX2016-05-30
|
* lib/kvec: Do not use kv_init unless neededZyX2016-05-30
|
* lib/kvec: Remove useless type argument from kv_push macrosZyX2016-05-30
|
* eval/encode: Simplify loop in encode_list_writeZyX2016-04-18
| | | Patch made up by oni-link.
* eval/encode: Make sure that encoder can encode NULL variablesZyX2016-04-18
| | | | | | | | | Adds two undocumented v: variables: _null_list and _null_dict because I do not know a reproducible way to get such lists (though I think I heard about this) and dictionaries (do not remember hearing about them). NULL strings are obtained using $XXX_UNEXISTENT_VAR_XXX. Fixes crash in json_encode($XXX_UNEXISTENT_VAR_XXX). Other added tests worked fine before this commit.
* eval/encode: Adjust buffer sizes passed to vim_snprintfZyX2016-04-18
|
* eval/encode: Dump FF character correctlyZyX2016-04-18
|
* *: Make set_vim_var_\* functions have proper argument typesZyX2016-04-18
|
* eval/decode: Accept `\r` as space characterZyX2016-04-18
|
* eval/decode: Do not overflow when parsing `-`ZyX2016-04-18
| | | Also makes if’s less nested.
* eval/decode: Clarify meaning of some pointer argumentsZyX2016-04-18
|
* eval/decode: Fix typo in internal error messageZyX2016-04-18
|
* eval/decode: Reject even more numbersZyX2016-04-18
| | | | Rejects leading zeroes and numbers like 1.e+5 (decimal dot with missing number with signed exponent).
* *: Fix linter errorsZyX2016-04-18
|
* eval/decode: Rewrite json_decode_string end as suggested by oni-linkZyX2016-04-18
|
* eval/decode: Reject more numbers, accept 1e5ZyX2016-04-18
|
* eval/decode: Do not loose high surrogates followed by high surrogatesZyX2016-04-18
|