Commit Graph

7 Commits

Author SHA1 Message Date
ZyX
ba2f615cd4 functests: Test for error conditions
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.
2017-03-27 00:11:28 +03:00
ZyX
7a013e93e0 executor/converter: Make it possible to supply {} to Dictionary arg 2017-03-27 00:11:27 +03:00
ZyX
425d348f0f executor/converter: Make nlua_pop_Object not recursive 2017-03-27 00:11:27 +03:00
ZyX
9297d941e2 executor/converter: Fix how maxidx is determined 2017-03-27 00:11:27 +03:00
ZyX
3fa4ca8188 executor/converter: Fix conversion of self-containing containers 2017-03-27 00:11:26 +03:00
ZyX
ed3115bd26 executor: Make sure it works with API values 2017-03-27 00:11:25 +03:00
ZyX
f551df17f3 viml/executor: Directly generate typval_T values
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.
2017-03-27 00:11:24 +03:00