Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Fix some memleack for ns3
authornavarro <navarro@caraja.(none)>
Mon, 12 Mar 2012 10:34:01 +0000 (11:34 +0100)
committernavarro <navarro@caraja.(none)>
Mon, 12 Mar 2012 11:19:40 +0000 (12:19 +0100)
src/surf/network_ns3.c
src/surf/ns3/ns3_simulator.cc

index cf02267..6e047c7 100644 (file)
@@ -62,17 +62,11 @@ static void parse_ns3_add_host(sg_platf_host_cbarg_t host)
     );
 }
 
-static void ns3_free_dynar(void * elmts)
-{
-  free(elmts);
-  return;
-}
-
 static void parse_ns3_add_link(sg_platf_link_cbarg_t link)
 {
   XBT_DEBUG("NS3_ADD_LINK '%s'",link->id);
 
-  if(!IPV4addr) IPV4addr = xbt_dynar_new(sizeof(char*),ns3_free_dynar);
+  if(!IPV4addr) IPV4addr = xbt_dynar_new(sizeof(char*),free);
 
   tmgr_trace_t bw_trace;
   tmgr_trace_t state_trace;
index d0f68f2..c09122c 100644 (file)
@@ -41,6 +41,12 @@ static XBT_INLINE void transformSocketPtr (Ptr<Socket> localSocket){
   sprintf(socket_key,"%s",s.c_str());
 }
 
+static void delete_mysocket(void *p)
+{
+  MySocket *sock = (MySocket *)p;
+  delete(sock);
+}
+
 /*
  * This function create a flow from src to dst
  *
@@ -61,7 +67,7 @@ void NS3Sim::create_flow_NS3(
                uint32_t totalBytes,
                void * action)
 {
-       if(!dict_socket) dict_socket = xbt_dict_new_homogeneous(free);
+       if(!dict_socket) dict_socket = xbt_dict_new_homogeneous(delete_mysocket);
 
        PacketSinkHelper sink ("ns3::TcpSocketFactory",
                                                        InetSocketAddress (Ipv4Address::GetAny(),