Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git] / src / bindings / lua / lua_host.c
index 5faa252..a862a2a 100644 (file)
@@ -23,12 +23,12 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(lua_host, bindings, "Lua bindings (host module)"
  * \param index an index in the Lua stack
  * \return the C host corresponding to this Lua host
  */
-m_host_t sglua_check_host(lua_State * L, int index)
+msg_host_t sglua_check_host(lua_State * L, int index)
 {
-  m_host_t *pi, ht;
+  msg_host_t *pi, ht;
   luaL_checktype(L, index, LUA_TTABLE);
   lua_getfield(L, index, "__simgrid_host");
-  pi = (m_host_t *) luaL_checkudata(L, lua_gettop(L), HOST_MODULE_NAME);
+  pi = (msg_host_t *) luaL_checkudata(L, lua_gettop(L), HOST_MODULE_NAME);
   if (pi == NULL)
     luaL_typerror(L, index, HOST_MODULE_NAME);
   ht = *pi;
@@ -50,12 +50,12 @@ static int l_host_get_by_name(lua_State * L)
 {
   const char *name = luaL_checkstring(L, 1);
   XBT_DEBUG("Getting Host from name...");
-  m_host_t msg_host = MSG_get_host_by_name(name);
+  msg_host_t msg_host = MSG_get_host_by_name(name);
   if (!msg_host) {
     luaL_error(L, "null Host : MSG_get_host_by_name failed");
   }
   lua_newtable(L);              /* create a table, put the userdata on top of it */
-  m_host_t *lua_host = (m_host_t *) lua_newuserdata(L, sizeof(m_host_t));
+  msg_host_t *lua_host = (msg_host_t *) lua_newuserdata(L, sizeof(msg_host_t));
   *lua_host = msg_host;
   luaL_getmetatable(L, HOST_MODULE_NAME);
   lua_setmetatable(L, -2);
@@ -75,7 +75,7 @@ static int l_host_get_by_name(lua_State * L)
  */
 static int l_host_get_name(lua_State * L)
 {
-  m_host_t ht = sglua_check_host(L, 1);
+  msg_host_t ht = sglua_check_host(L, 1);
   lua_pushstring(L, MSG_host_get_name(ht));
   return 1;
 }
@@ -89,7 +89,9 @@ static int l_host_get_name(lua_State * L)
  */
 static int l_host_number(lua_State * L)
 {
-  lua_pushnumber(L, xbt_dynar_length(MSG_hosts_as_dynar()));
+  xbt_dynar_t hosts = MSG_hosts_as_dynar();
+  lua_pushnumber(L, xbt_dynar_length(hosts));
+  xbt_dynar_free(&hosts);
   return 1;
 }
 
@@ -104,13 +106,15 @@ static int l_host_number(lua_State * L)
 static int l_host_at(lua_State * L)
 {
   int index = luaL_checkinteger(L, 1);
-  m_host_t host = xbt_dynar_get_as(MSG_hosts_as_dynar(),index - 1,m_host_t);// lua indexing start by 1 (lua[1] <=> C[0])
+  xbt_dynar_t hosts = MSG_hosts_as_dynar();
+  msg_host_t host = xbt_dynar_get_as(hosts,index - 1,msg_host_t);// lua indexing start by 1 (lua[1] <=> C[0])
   lua_newtable(L);              /* create a table, put the userdata on top of it */
-  m_host_t *lua_host = (m_host_t *) lua_newuserdata(L, sizeof(m_host_t));
+  msg_host_t *lua_host = (msg_host_t *) lua_newuserdata(L, sizeof(msg_host_t));
   *lua_host = host;
   luaL_getmetatable(L, HOST_MODULE_NAME);
   lua_setmetatable(L, -2);
   lua_setfield(L, -2, "__simgrid_host");        /* put the userdata as field of the table */
+  xbt_dynar_free(&hosts);
   return 1;
 }
 
@@ -124,10 +128,10 @@ static int l_host_at(lua_State * L)
 static int l_host_self(lua_State * L)
 {
                                   /* -- */
-  m_host_t host = MSG_host_self();
+  msg_host_t host = MSG_host_self();
   lua_newtable(L);
                                   /* table */
-  m_host_t* lua_host = (m_host_t*) lua_newuserdata(L, sizeof(m_host_t));
+  msg_host_t* lua_host = (msg_host_t*) lua_newuserdata(L, sizeof(msg_host_t));
                                   /* table ud */
   *lua_host = host;
   luaL_getmetatable(L, HOST_MODULE_NAME);
@@ -150,7 +154,7 @@ static int l_host_self(lua_State * L)
  */
 static int l_host_get_property_value(lua_State * L)
 {
-  m_host_t ht = sglua_check_host(L, 1);
+  msg_host_t ht = sglua_check_host(L, 1);
   const char *prop = luaL_checkstring(L, 2);
   lua_pushstring(L,MSG_host_get_property_value(ht,prop));
   return 1;
@@ -179,8 +183,8 @@ static int l_host_sleep(lua_State *L)
  */
 static int l_host_destroy(lua_State *L)
 {
-  m_host_t ht = sglua_check_host(L, 1);
-  __MSG_host_destroy(ht);
+  msg_host_t ht = sglua_check_host(L, 1);
+  __MSG_host_destroy(MSG_host_priv(ht));
   return 0;
 }