aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/viml/executor
Commit message (Collapse)AuthorAge
* executor/converter: Use readable lua numbers for handlesZyX2017-03-27
|
* executor/converter: Allow converting self-referencing lua objectsZyX2017-03-27
|
* functests: Test for error conditionsZyX2017-03-27
| | | | | | | | | | | | | | | | | | | | | | | During testing found the following bugs: 1. msgpack-gen.lua script is completely unprepared for Float values either in return type or in arguments. Specifically: 1. At the time of writing relevant code FLOAT_OBJ did not exist as well as FLOATING_OBJ, but it would be used by msgpack-gen.lua should return type be Float. I added FLOATING_OBJ macros later because did not know that msgpack-gen.lua uses these _OBJ macros, otherwise it would be FLOAT_OBJ. 2. msgpack-gen.lua should use .data.floating in place of .data.float. But it did not expect that .data subattribute may have name different from lowercased type name. 2. vim_replace_termcodes returned its argument as-is if it receives an empty string (as well as _vim_id*() functions did). But if something in returned argument lives in an allocated memory such action will cause double free: once when freeing arguments, then when freeing return value. It did not cause problems yet because msgpack bindings return empty string as {NULL, 0} and nothing was actually allocated. 3. New code in msgpack-gen.lua popped arguments in reversed order, making lua bindings’ signatures be different from API ones.
* executor/converter: Make it possible to supply `{}` to Dictionary argZyX2017-03-27
|
* executor/converter: Make nlua_pop_Object not recursiveZyX2017-03-27
|
* executor/converter: Fix how maxidx is determinedZyX2017-03-27
|
* executor/converter: Fix conversion of self-containing containersZyX2017-03-27
|
* executor: Make sure it works with API valuesZyX2017-03-27
|
* *: Silence linterZyX2017-03-27
|
* viml/executor: Directly generate typval_T valuesZyX2017-03-27
| | | | | Note: this will *still* crash when using API in cases similar to the one described in first commit. Just it needs different code to reproduce.
* eval: Add luaeval functionZyX2017-03-27
No tests yet, no documentation update, no :lua* stuff, no vim module. converter.c should also work with typval_T, not Object. Known problem: luaeval("1", {}) results in PANIC: unprotected error in call to Lua API (attempt to index a nil value) Ref #3823