fixed some RRC valgrind errors

This commit is contained in:
Nicola Baldo
2013-01-18 18:02:09 +01:00
parent 06dee432a9
commit 338ceea7e5
3 changed files with 26 additions and 15 deletions

View File

@@ -266,13 +266,6 @@ void
UeManager::DoDispose ()
{
delete m_drbPdcpSapUser;
m_rrc->m_cmacSapProvider->RemoveUe (m_rnti);
m_rrc->m_cphySapProvider->RemoveUe (m_rnti);
if (m_rrc->m_s1SapProvider != 0)
{
m_rrc->m_s1SapProvider->UeContextRelease (m_rnti);
}
// delete eventual X2-U TEIDs
for (std::map <uint8_t, Ptr<LteDataRadioBearerInfo> >::iterator it = m_drbMap.begin ();
it != m_drbMap.end ();
@@ -1188,6 +1181,7 @@ void
LteEnbRrc::DoDispose ()
{
NS_LOG_FUNCTION (this);
m_ueMap.clear ();
delete m_cmacSapUser;
delete m_rrcSapProvider;
delete m_x2SapUser;
@@ -1735,6 +1729,12 @@ LteEnbRrc::RemoveUe (uint16_t rnti)
NS_ASSERT_MSG (it != m_ueMap.end (), "request to remove UE info with unknown rnti " << rnti);
uint16_t srsCi = (*it).second->GetSrsConfigurationIndex ();
m_ueMap.erase (it);
m_cmacSapProvider->RemoveUe (rnti);
m_cphySapProvider->RemoveUe (rnti);
if (m_s1SapProvider != 0)
{
m_s1SapProvider->UeContextRelease (rnti);
}
// need to do this after UeManager has been deleted
RemoveSrsConfigurationIndex (srsCi);
}

View File

@@ -47,6 +47,8 @@ LteUeRrcProtocolReal::LteUeRrcProtocolReal ()
m_enbRrcSapProvider (0)
{
m_ueRrcSapUser = new MemberLteUeRrcSapUser<LteUeRrcProtocolReal> (this);
m_completeSetupParameters.srb0SapUser = new LteRlcSpecificLteRlcSapUser<LteUeRrcProtocolReal> (this);
m_completeSetupParameters.srb1SapUser = new LtePdcpSpecificLtePdcpSapUser<LteUeRrcProtocolReal> (this);
}
LteUeRrcProtocolReal::~LteUeRrcProtocolReal ()
@@ -97,14 +99,7 @@ LteUeRrcProtocolReal::DoSetup (LteUeRrcSapUser::SetupParameters params)
NS_LOG_FUNCTION (this);
m_setupParameters.srb0SapProvider = params.srb0SapProvider;
m_setupParameters.srb1SapProvider = params.srb1SapProvider;
LteRlcSapUser* srb0SapUser = new LteRlcSpecificLteRlcSapUser<LteUeRrcProtocolReal> (this);
LtePdcpSapUser* srb1SapUser = new LtePdcpSpecificLtePdcpSapUser<LteUeRrcProtocolReal> (this);
m_completeSetupParameters.srb0SapUser = srb0SapUser;
m_completeSetupParameters.srb1SapUser = srb1SapUser;
m_setupParameters.srb1SapProvider = params.srb1SapProvider;
m_ueRrcSapProvider->CompleteSetup (m_completeSetupParameters);
}
@@ -374,6 +369,15 @@ LteEnbRrcProtocolReal::DoDispose ()
{
NS_LOG_FUNCTION (this);
delete m_enbRrcSapUser;
for (std::map<uint16_t, LteEnbRrcSapProvider::CompleteSetupUeParameters>::iterator
it = m_completeSetupUeParametersMap.begin ();
it != m_completeSetupUeParametersMap.end ();
++it)
{
delete it->second.srb0SapUser;
delete it->second.srb1SapUser;
}
m_completeSetupUeParametersMap.clear ();
}
TypeId
@@ -481,6 +485,12 @@ void
LteEnbRrcProtocolReal::DoRemoveUe (uint16_t rnti)
{
NS_LOG_FUNCTION (this << rnti);
std::map<uint16_t, LteEnbRrcSapProvider::CompleteSetupUeParameters>::iterator
it = m_completeSetupUeParametersMap.find (rnti);
NS_ASSERT (it != m_completeSetupUeParametersMap.end ());
delete it->second.srb0SapUser;
delete it->second.srb1SapUser;
m_completeSetupUeParametersMap.erase (it);
m_enbRrcSapProviderMap.erase (rnti);
m_setupUeParametersMap.erase (rnti);
}

View File

@@ -152,6 +152,7 @@ LteUeRrc::DoDispose ()
NS_LOG_FUNCTION (this);
delete m_cphySapUser;
delete m_cmacSapUser;
delete m_rrcSapProvider;
delete m_drbPdcpSapUser;
delete m_asSapProvider;
m_drbMap.clear ();