void CCLuaStack::pushCCLuaValueDict(const CCLuaValueDict& dict) { lua_newtable(m_state); /* L: table */ for (CCLuaValueDictIterator it = dict.begin(); it != dict.end(); ++it) { lua_pushstring(m_state, it->first.c_str()); /* L: table key */ pushCCLuaValue(it->second); /* L: table key value */ lua_rawset(m_state, -3); /* table.key = value, L: table */ } }
void CCLuaStack::pushCCLuaValueArray(const CCLuaValueArray& array) { lua_newtable(m_state); /* L: table */ int index = 1; for (CCLuaValueArrayIterator it = array.begin(); it != array.end(); ++it) { pushCCLuaValue(*it); /* L: table value */ lua_rawseti(m_state, -2, index); /* table[index] = value, L: table */ ++index; } }
int CCLuaEngine::pushCCLuaValueDict(const CCLuaValueDict& dict) { lua_newtable(m_state); /* stack: table */ for (CCLuaValueDictIterator it = dict.begin(); it != dict.end(); ++it) { lua_pushstring(m_state, it->first.c_str()); /* stack: table key */ pushCCLuaValue(it->second); /* stack: table key value */ lua_rawset(m_state, -3); /* table.key = value, stack: table */ } return lua_gettop(m_state); }
int CCLuaEngine::pushCCLuaValueArray(const CCLuaValueArray& array) { lua_newtable(m_state); /* stack: table */ int index = 1; for (CCLuaValueArrayIterator it = array.begin(); it != array.end(); ++it) { pushCCLuaValue(*it); /* stack: table value */ lua_rawseti(m_state, -2, index); /* table[index] = value, stack: table */ ++index; } return lua_gettop(m_state); }