mobility: Allow AssignStreams after construction for SteadyStateRwpMobility

The SteadyStateRandomWaypointMobilityModel should support AssignStreams()
after object construction, but prior to this patch, it would cause a
segmentation fault until after initialization.  The initial benefit is
the prevention of test suite failures due to random stream assignment.
This commit is contained in:
Tom Henderson
2018-10-01 19:36:14 -07:00
parent 8127d79790
commit 1e986d449c
2 changed files with 2 additions and 2 deletions

View File

@@ -95,6 +95,7 @@ SteadyStateRandomWaypointMobilityModel::SteadyStateRandomWaypointMobilityModel (
m_u_r = CreateObject<UniformRandomVariable> ();
m_x = CreateObject<UniformRandomVariable> ();
m_y = CreateObject<UniformRandomVariable> ();
m_position = CreateObject<RandomBoxPositionAllocator> ();
}
void
@@ -115,7 +116,6 @@ SteadyStateRandomWaypointMobilityModel::DoInitializePrivate (void)
m_speed->SetAttribute ("Max", DoubleValue (m_maxSpeed));
NS_ASSERT (m_minX < m_maxX);
NS_ASSERT (m_minY < m_maxY);
m_position = CreateObject<RandomBoxPositionAllocator> ();
m_x->SetAttribute ("Min", DoubleValue (m_minX));
m_x->SetAttribute ("Max", DoubleValue (m_maxX));
m_y->SetAttribute ("Min", DoubleValue (m_minY));

View File

@@ -82,7 +82,7 @@ SteadyStateRandomWaypointTest::DoRun (void)
{
// Create a new mobility model.
Ptr<MobilityModel> model = mobilityFactory.Create ()->GetObject<MobilityModel> ();
model->AssignStreams (100 * (i + 1));
// Add this mobility model to the stack.
mobilityStack.push_back (model);
Simulator::Schedule (Seconds (0.0), &Object::Initialize, model);