From 602c73b253d9fdeaddcec7fd9c12643c9ba8c41c Mon Sep 17 00:00:00 2001 From: Jonathan Lambrechts <jonathan.lambrechts@uclouvain.be> Date: Tue, 9 Mar 2010 11:53:15 +0000 Subject: [PATCH] improve lua bindings of std::vector --- Common/LuaBindings.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Common/LuaBindings.h b/Common/LuaBindings.h index b625cef9aa..65d5ca74c1 100644 --- a/Common/LuaBindings.h +++ b/Common/LuaBindings.h @@ -142,13 +142,19 @@ class luaStack<std::vector<type > >{ size_t size=lua_objlen(L,ia); v.resize(size); for(size_t i=0;i<size;i++){ - lua_pushinteger(L,i+1); - lua_gettable(L,ia); + lua_rawgeti(L, ia, i+1); v[i]=luaStack<type>::get(L,-1); lua_pop(L,1); } return v; } + static void push(lua_State *L, const std::vector<type>& v){ + lua_createtable(L, v.size(), 0); + for(size_t i=0;i<v.size;i++){ + luaStack<type>::push(L,v[i]); + lua_rawseti(L, 2, i+1); + } + } static std::string getName(){ std::string name="vector of "; return name+luaStack<type>::getName(); -- GitLab