summaryrefslogtreecommitdiffstats
path: root/src/uscxml/plugins/datamodel/lua
diff options
context:
space:
mode:
authorStefan Radomski <github@mintwerk.de>2016-06-14 13:56:18 (GMT)
committerStefan Radomski <github@mintwerk.de>2016-06-14 13:56:18 (GMT)
commited6aee05e2843be65c4ab445d79e70dc8dacc07b (patch)
tree1819481be3dadd13361024ae76245989ee5dca85 /src/uscxml/plugins/datamodel/lua
parenta17466eefe7576a2c56b8a46ff03e359c04ad5ae (diff)
downloaduscxml-ed6aee05e2843be65c4ab445d79e70dc8dacc07b.zip
uscxml-ed6aee05e2843be65c4ab445d79e70dc8dacc07b.tar.gz
uscxml-ed6aee05e2843be65c4ab445d79e70dc8dacc07b.tar.bz2
Fixed issue 84
Diffstat (limited to 'src/uscxml/plugins/datamodel/lua')
-rw-r--r--src/uscxml/plugins/datamodel/lua/LuaDataModel.cpp9
1 files changed, 5 insertions, 4 deletions
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<int>());
data.type = Data::INTERPRETED;
} else if(lua.isString()) {
- data.atom = lua.tostring();
+ data.atom = lua.cast<std::string>();
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<std::string>()] = getLuaAsData(_luaState, luaVal);
} else {
assert(!isMap);
isArray = true;