diff options
author | Edwin Mons <edwin.mons@isode.com> | 2016-09-22 10:09:49 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2016-10-19 19:11:45 (GMT) |
commit | 08a340dbfc9208d1c0e6d574fed244a98e104f01 (patch) | |
tree | 936263f06740ee377928c18abdc4ee0a156bcf44 /Sluift/ElementConvertors | |
parent | bcd3660a3527327117b46e104d16204a64fe0b9f (diff) | |
download | swift-08a340dbfc9208d1c0e6d574fed244a98e104f01.zip swift-08a340dbfc9208d1c0e6d574fed244a98e104f01.tar.bz2 |
Always add a fields table member in FormConvertor
The fields member of the forms generated by FormConvertor is used for
lookups in the __index metafunction. If a form is parsed with no
fields (and possibly no items), there wouldn't be a member 'fields',
causing another __index lookup, triggering infinite recursion.
There will now always be a fields array, which may be empty.
Sluift/Tests/FormTest.lua has been updated to test against an empty
form.
Test-Information:
Updated FormTest.lua works without issues.
Change-Id: Idee98f23bf42e1213ca3d03707f908ed5317dad6
Diffstat (limited to 'Sluift/ElementConvertors')
-rw-r--r-- | Sluift/ElementConvertors/FormConvertor.cpp | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/Sluift/ElementConvertors/FormConvertor.cpp b/Sluift/ElementConvertors/FormConvertor.cpp index a0e3dfe..85f40a1 100644 --- a/Sluift/ElementConvertors/FormConvertor.cpp +++ b/Sluift/ElementConvertors/FormConvertor.cpp @@ -287,9 +287,7 @@ namespace { if (!payload->getInstructions().empty()) { result["instructions"] = Lua::valueRef(payload->getInstructions()); } - if (!payload->getFields().empty()) { - result["fields"] = valueRef(convertFieldListToLua(payload->getFields())); - } + result["fields"] = valueRef(convertFieldListToLua(payload->getFields())); if (!payload->getReportedFields().empty()) { result["reported_fields"] = valueRef(convertFieldListToLua(payload->getReportedFields())); } |