From ed6aee05e2843be65c4ab445d79e70dc8dacc07b Mon Sep 17 00:00:00 2001 From: Stefan Radomski Date: Tue, 14 Jun 2016 15:56:18 +0200 Subject: Fixed issue 84 --- src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp | 9 +++++---- test/issues/test-issue84.scxml | 22 ++++++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 test/issues/test-issue84.scxml diff --git a/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp b/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp index 67294da..717def9 100644 --- a/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp +++ b/src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp @@ -73,18 +73,19 @@ static Data getLuaAsData(lua_State* _luaState, const luabridge::LuaRef& lua) { data.atom = toStr(lua.cast()); data.type = Data::INTERPRETED; } else if(lua.isString()) { - data.atom = lua.tostring(); + data.atom = lua.cast(); data.type = Data::VERBATIM; } else if(lua.isTable()) { bool isArray = false; bool isMap = false; for (luabridge::Iterator iter (lua); !iter.isNil(); ++iter) { - luabridge::LuaRef luaKey = iter.key(); + luabridge::LuaRef luaKey = iter.key(); luabridge::LuaRef luaVal = *iter; if (luaKey.isString()) { - assert(!isArray); + assert(!isArray); isMap = true; - data.compound[luaKey.tostring()] = getLuaAsData(_luaState, luaVal); + // luaKey.tostring() is not working?! see issue84 + data.compound[luaKey.cast()] = getLuaAsData(_luaState, luaVal); } else { assert(!isMap); isArray = true; diff --git a/test/issues/test-issue84.scxml b/test/issues/test-issue84.scxml new file mode 100644 index 0000000..09fd265 --- /dev/null +++ b/test/issues/test-issue84.scxml @@ -0,0 +1,22 @@ + + + { + a=555,b=777,c=888 +} + + + + + + + + + + + + -- cgit v0.12